public bool CheckVictory(NewMoveEventArgs e, int rowIncrement, int colIncrement)
        {
            string currentString = BuildStringInDirection(e.theBoard, e.Coordinates, rowIncrement, colIncrement, e.PlayerSymbol)
                                   + e.PlayerSymbol
                                   + BuildStringInDirection(e.theBoard, e.Coordinates, -rowIncrement, -colIncrement, e.PlayerSymbol);

            if (currentString.Length >= _winCondition)
            {
                return(true);
            }
            return(false);
        }
 private void DidPlayerWin(object s, NewMoveEventArgs e)
 {
     if (CheckVictory(e, 1, 0) ||
         CheckVictory(e, 0, 1) ||
         CheckVictory(e, 1, 1) ||
         CheckVictory(e, 1, -1)
         )
     {
         e.PlayerHasWon = true;
         return;
     }
     e.PlayerHasWon = false;
 }
Exemple #3
0
        //Triggered from Player
        public void OnNewMoveMade(Object sender, int[] newMoveCoordinates, string playerSymbol)
        {
            var NewMoveMadeDelegate = NewMoveMade as EventHandler <NewMoveEventArgs>;

            if (NewMoveMadeDelegate != null)
            {
                NewMoveEventArgs thisNewMoveEventArgs =
                    new NewMoveEventArgs {
                    Coordinates = newMoveCoordinates, PlayerSymbol = playerSymbol,
                    theBoard    = BoardHandler.GetBoard()
                };
                NewMoveMadeDelegate(sender, thisNewMoveEventArgs);
                if (thisNewMoveEventArgs.PlayerHasWon)
                {
                    OnPlayerHasWon(sender, playerSymbol);
                }
            }
        }
Exemple #4
0
 private void PlayerHasWon(object s, NewMoveEventArgs e)
 {
     DrawGUI($"Congratulations! Player {e.PlayerSymbol} has won!", false);
 }