Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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();
                    }
                }
            }
        }
Пример #3
0
        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();
        }