public void Movement_Validation(Point origin, Point destination, string colour) { bool extra_movement = false; Game.HasEaten = false; if (Game.IsPlayPossible(origin, destination, colour)) { if (Game.HasEaten) { if (Game.ExtraMov(destination, colour)) { extra_movement = true; } } Game.CheckWinner(); if (Game.Winner != null) { Game.IsGameOver = true; } ValidMovement?.Invoke(destination); Game.CheckQueen(colour, destination); if (!extra_movement && !Game.IsGameOver) { Game.SwitchTurn(); TurnDecided?.Invoke(); } if (Game.GameMode == Game.GAMEMODE.PC) { PC_Move(); } } }
public void PC_Move() { bool extra_movement = false; if (GetPlayerPlaying() is VirtualPlayer) { AuxFunctions.WaitNSeconds(3); if (Game.MakeAIMove(ref extra_movement)) { if (!extra_movement) { Game.SwitchTurn(); TurnDecided?.Invoke(); } else { PC_Move(); } } } }
public void SetUpPieces() { // 0 -> Player 1 gets white // 1 -> Player 2 gets white if (AuxFunctions.GetRandomNumber(0, 1) == 0) { Game.Players[0].IsTurn = true; Game.Players[0].Pieces.Add(new Piece(new Point(1, 5), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(3, 5), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(5, 5), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(7, 5), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(0, 6), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(2, 6), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(4, 6), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(6, 6), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(1, 7), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(3, 7), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(5, 7), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(7, 7), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(0, 0), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(2, 0), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(4, 0), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(6, 0), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(1, 1), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(3, 1), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(5, 1), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(7, 1), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(0, 2), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(2, 2), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(4, 2), Color.Blue)); Game.Players[1].Pieces.Add(new Piece(new Point(6, 2), Color.Blue)); } else { Game.Players[1].IsTurn = true; Game.Players[1].Pieces.Add(new Piece(new Point(1, 5), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(3, 5), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(5, 5), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(7, 5), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(0, 6), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(2, 6), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(4, 6), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(6, 6), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(1, 7), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(3, 7), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(5, 7), Color.White)); Game.Players[1].Pieces.Add(new Piece(new Point(7, 7), Color.White)); Game.Players[0].Pieces.Add(new Piece(new Point(0, 0), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(2, 0), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(4, 0), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(6, 0), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(1, 1), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(3, 1), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(5, 1), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(7, 1), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(0, 2), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(2, 2), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(4, 2), Color.Blue)); Game.Players[0].Pieces.Add(new Piece(new Point(6, 2), Color.Blue)); } TurnDecided?.Invoke(); }