Exemple #1
0
        public Game CreateGame(Player player1, Player player2)
        {
            Game game = new Game
            {
                Player1 = player1,
                Player2 = player2,
                Board = new GameBoard()
            };

            string group = Guid.NewGuid().ToString("d");
            _games[group] = game;

            player1.isPlaying = true;
            player2.isPlaying = true;
            player1.Group = group;
            player2.Group = group;

            Groups.Add(player1.Id, group);
            Groups.Add(player2.Id, group);

            return game;
        }
Exemple #2
0
 private void StoreMatch(Player p1, Card card)
 {
     p1.Matches.Add(card.Id);
     p1.Matches.Add(card.Pair);
 }
Exemple #3
0
        private bool StartGame(Player p1)
        {
            Player p2;
            var game = GameState.Instance.FindGame(p1, out p2);
            if (game != null) // Already player is playing a game
            {
                Clients.Group(p1.Group).buildBoard(game);
                return true;
            }

            p2 = GameState.Instance.GetNewOpponent(p1);
            if (p2 == null) // No Free Players available
            {
                Clients.Caller.waitingList();
                return true;
            }
            game = GameState.Instance.CreateGame(p1, p2);
            game.WhosTurn = p1.Id;
            Clients.Group(p1.Group).buildBoard(game);
            return true;
        }
Exemple #4
0
 public Game FindGame(Player player, out Player opponent)
 {
     opponent = null;
     if (player.Group == null)
         return null;
     Game game;
     _games.TryGetValue(player.Group, out game);
     if (game != null)
     {
         opponent = (player.Id == game.Player1.Id) ? game.Player2 : game.Player1;
         return game;
     }
     return null;
 }
Exemple #5
0
 public Player CreatePlayer(string userName)
 {
     var player = new Player(userName, GetMD5Hash(userName));
     _players[userName] = player;
     return player;
 }
Exemple #6
0
 public Player GetOpponent(Game game, Player player)
 {
     return (game.Player1.Id == player.Id) ? game.Player2 : game.Player1;
 }
Exemple #7
0
 public Player GetNewOpponent(Player player)
 {
     return _players.Values.FirstOrDefault( u => !u.isPlaying
         && u.Id != player.Id);
 }