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; }
//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); } } }
private void PlayerHasWon(object s, NewMoveEventArgs e) { DrawGUI($"Congratulations! Player {e.PlayerSymbol} has won!", false); }