/// <summary> /// Routine that changes the owner of a tile based on indices stored in TilesToTurn list. /// </summary> private void DoTurnTiles() { PlayerModel player = null;; bool playerFound = false; foreach (KeyValuePair <int, ClientModel> model in CurrentPlayersList) { ReversiClientModel reversiClientModel = (ReversiClientModel)model.Value; if (reversiClientModel.ClientPlayer.IdType == CurrentPlayer) { player = reversiClientModel.ClientPlayer; playerFound = true; } } // If we didnt find the player, return if (!playerFound) { return; } foreach (int index in TilesToTurn) { Gameboard.Squares[index].Piece.Owner = player; //// TODO: For each tile being flipped...play a sounds //ReversiSounds.PlaySounds(GameSounds.SOUND_FLIPTILE); } // Now clear the tiles to turn array since all the moves have been made TilesToTurn.Clear(); }
public override bool PlayTurn() { // Clear the tiles to turn array AvailableMovesList.Clear(); TilesToTurn.Clear(); return(MakePlayerMove(CurrentMoveIndex)); }
/// <summary> /// Primary routine for a player to make a move /// </summary> /// <param name="index">the index of the move being made</param> internal bool MakePlayerMove(int index) { PlayerModel player = null;; bool playerFound = false; foreach (KeyValuePair <int, ClientModel> model in CurrentPlayersList) { ReversiClientModel reversiClientModel = (ReversiClientModel)model.Value; if (reversiClientModel.ClientPlayer.IdType == CurrentPlayer) { player = reversiClientModel.ClientPlayer; playerFound = true; break; } } if ((player == null) || (playerFound == false)) { return(false); } bool placementIsValid = ValidateTilePlacement(index, CurrentPlayer); if (placementIsValid) { // Add a new game piece at the location GamePieceModel piece = new GamePieceModel(Pieceshapes.Ellipse, player); Gameboard.AddPiece(index, piece); // Capture the opponents tiles DoTurnTiles(); // Reset the tiles to be turned array TilesToTurn.Clear(); return(true); } return(false); //MessageBox.Show(Gameboard.DrawGameboard() + "\nCurrent Player: " + CurrentPlayer.IDType + " : " + CurrentPlayer.Name); }