コード例 #1
0
ファイル: GameClient.cs プロジェクト: npaulsen/eumel
        public Task GuessGiven(GuessGivenDto data)
        {
            var ctx = new GameEventContext(data.GameId, data.RoundIndex);
            var e   = new GuessGiven(ctx, new PlayerIndex(data.PlayerIndex), data.Count);

            System.Console.WriteLine(e);
            _gameEventCallback(e);
            return(Task.CompletedTask);
        }
コード例 #2
0
ファイル: GameEventHub.cs プロジェクト: npaulsen/eumel
        public bool TryGiveGuess(int player, int guess)
        {
            var move = new GuessGiven(_gameEventContext, new PlayerIndex(player), guess);

            if (State.IsValid(move))
            {
                Dispatch(move);
                return(true);
            }
            return(false);
        }
コード例 #3
0
        public void GuessGivenIsMappedAndBack()
        {
            var ctx        = new GameEventContext("g", 12);
            var guessGiven = new GuessGiven(ctx, new PlayerIndex(1), 23);

            var persistable = GameEventSerializer.Convert(guessGiven);
            var recreated   = GameEventSerializer.Convert(persistable) as GuessGiven;

            Assert.Equal(1, recreated.Player.Value);
            Assert.Equal(23, recreated.Count);
        }
コード例 #4
0
        public void OnNext(GameEvent e)
        {
            var task = e
                       switch
            {
                HandReceived hand => _client.HandReceived(GetHandReceivedData(e.Context, hand)),
                CardPlayed move => _client.CardPlayed(new CardPlayedDto(e.Context.GameId, e.Context.RoundIndex, move.Player, GetIndex(move.Card))),
                GuessGiven guess => _client.GuessGiven(new GuessGivenDto(e.Context.GameId, e.Context.RoundIndex, guess.Player, guess.Count)),
                TrickWon trick => _client.TrickWon(new TrickWonDto(e.Context.GameId, e.Context.RoundIndex, trick.Player)),
                _ => Task.CompletedTask,
            };

            task.GetAwaiter().GetResult();
        }
コード例 #5
0
ファイル: ConsoleGameObserver.cs プロジェクト: npaulsen/eumel
            public void OnNext(GameEvent e)
            {
                var player  = _playerNames[e.Player];
                var message = e
                              switch
                {
                    GuessGiven guess => $"{player} made guess of <{guess.Count}>",
                    CardPlayed move => $"{player} played {move.Card} ({move.Card.Rank} of {move.Card.Suit})",
                    HandReceived received => $"{player} got {received.Hand.NumberOfCards} cards",
                    TrickWon trick => $"{player} won the trick",
                    _ => e.ToString(),
                };

                Render(message, ConsoleColor.DarkGreen);
            }
コード例 #6
0
ファイル: GuessPayload.cs プロジェクト: npaulsen/eumel
 public GuessPayload(GuessGiven gg) : base(gg)
 {
     Guess = gg.Count;
 }