public MainWindow() { InitializeComponent(); currentMove = null; winner = null; turn = "Black"; this.Title = "Checkers: Blacks turn"; MakeBoard(); }
public bool AllowMove(Button button1, Button button2, string colorCheckingMoveFor, string oppositeColor) { GameBoard currentBoard = GetCurrentBoard(); List<GamePieceMovement> jumpMoves = currentBoard.CheckJumps(colorCheckingMoveFor); if (jumpMoves.Count > 0) { bool invalid = true; foreach (GamePieceMovement move in jumpMoves) { if (currentMove.Equals(move)) invalid = false; } if (invalid) { DisplayError("Jump must be taken"); currentMove.piece1 = null; currentMove.piece2 = null; return false; } } if (button1.Name.Contains(colorCheckingMoveFor)) { if (button1.Name.Contains("King")) { if ((currentMove.IsAdjacent("King")) && (!button2.Name.Contains("Black")) && (!button2.Name.Contains("Red"))) return true; GamePiece middlePiece = currentMove.CheckJump("King"); if ((middlePiece != null) && (!button2.Name.Contains("Black")) && (!button2.Name.Contains("Red"))) { StackPanel middleStackPanel = (StackPanel)GetGridElement(CheckersGrid, middlePiece.Row, middlePiece.Column); Button middleButton = (Button)middleStackPanel.Children[0]; if (middleButton.Name.Contains(oppositeColor)) { CheckersGrid.Children.Remove(middleStackPanel); RemoveJumpedPiece(middlePiece); return true; } } } else { if ((currentMove.IsAdjacent(colorCheckingMoveFor)) && (!button2.Name.Contains("Black")) && (!button2.Name.Contains("Red"))) return true; GamePiece middlePiece = currentMove.CheckJump(colorCheckingMoveFor); if ((middlePiece != null) && (!button2.Name.Contains("Black")) && (!button2.Name.Contains("Red"))) { StackPanel middleStackPanel = (StackPanel)GetGridElement(CheckersGrid, middlePiece.Row, middlePiece.Column); Button middleButton = (Button)middleStackPanel.Children[0]; if (middleButton.Name.Contains(oppositeColor)) { CheckersGrid.Children.Remove(middleStackPanel); RemoveJumpedPiece(middlePiece); return true; } } } } currentMove = null; DisplayError("Invalid Move. Try Again."); return false; }
public void NewGame() { currentMove = null; winner = null; turn = "Black"; this.Title = "Checkers: Blacks turn"; ClearBoard(); MakeBoard(); }
public void MakeMove() { if ((currentMove.piece1 != null) && (currentMove.piece2 != null)) { StackPanel stackPanel1 = (StackPanel)GetGridElement(CheckersGrid, currentMove.piece1.Row, currentMove.piece1.Column); StackPanel stackPanel2 = (StackPanel)GetGridElement(CheckersGrid, currentMove.piece2.Row, currentMove.piece2.Column); CheckersGrid.Children.Remove(stackPanel1); CheckersGrid.Children.Remove(stackPanel2); Grid.SetRow(stackPanel1, currentMove.piece2.Row); Grid.SetColumn(stackPanel1, currentMove.piece2.Column); CheckersGrid.Children.Add(stackPanel1); Grid.SetRow(stackPanel2, currentMove.piece1.Row); Grid.SetColumn(stackPanel2, currentMove.piece1.Column); CheckersGrid.Children.Add(stackPanel2); MakePieceKing(currentMove.piece2); currentMove = null; if (turn == "Black") { this.Title = "Checkers: Reds turn"; turn = "Red"; } else if (turn == "Red") { this.Title = "Checkers: Blacks turn"; turn = "Black"; } CheckWin(); } }
public void button_Click(Object sender, RoutedEventArgs e) { Button button = (Button)sender; StackPanel stackPanel = (StackPanel)button.Parent; int row = Grid.GetRow(stackPanel); int col = Grid.GetColumn(stackPanel); if (currentMove == null) currentMove = new GamePieceMovement(); if (currentMove.piece1 == null) { currentMove.piece1 = new GamePiece(row, col); stackPanel.Background = Brushes.Green; } else { currentMove.piece2 = new GamePiece(row, col); stackPanel.Background = Brushes.Green; } if ((currentMove.piece1 != null) && (currentMove.piece2 != null)) { if (CheckMove()) { MakeMove(); } } }