示例#1
0
文件: Game.cs 项目: JakeFenley/Chess
        private void GetAiInput(List <GamePiece> movablePieces)
        {
            Thread.Sleep(500);
            var       random = new Random();
            int       index  = random.Next(movablePieces.Count);
            GamePiece piece  = movablePieces[index];

            int result = random.Next(piece.Moves.Count);
            int x      = piece.Moves[result].X;
            int y      = piece.Moves[result].Y;

            if (Board.tiles[x, y].Piece != null)
            {
                PieceCaptured(piece, result);
            }

            if (piece.Type == "Pawn")
            {
                if (x == 7 || x == 0)
                {
                    RemovePawnFromPlayerList(piece);
                    piece = PromoteAiPawn(piece);
                    AddPromotedPieceToList(piece);
                }
            }

            Board.tiles[piece.Place.X, piece.Place.Y].Piece = null;
            Board.tiles[x, y].Piece = piece;
            piece.Place             = Board.tiles[x, y];
            piece.FirstTurn         = false;

            KingThreatened = piece.CanCaptureKing();
            if (KingThreatened == true)
            {
                Threat = piece;
            }

            Console.WriteLine($"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
            Console.WriteLine($"Computer moved {piece.Type} to [{piece.Place.X},{piece.Place.Y}]");
            TurnOver();
        }
示例#2
0
文件: Game.cs 项目: JakeFenley/Chess
        private void MovePiece(GamePiece piece)
        {
            Console.WriteLine($"Select a tile to move {piece.Type} to.");
            for (int i = 0; i < piece.Moves.Count; i++)
            {
                Console.WriteLine($"[{i}]- {piece.Type} -[{piece.Moves[i].X},{piece.Moves[i].Y}] ");
            }
            int result = GetMoveInput(piece);
            int x      = piece.Moves[result].X;
            int y      = piece.Moves[result].Y;

            if (Board.tiles[x, y].Piece != null)
            {
                PieceCaptured(piece, result);
            }

            if (piece.Type == "Pawn")
            {
                if (x == 7 || x == 0)
                {
                    RemovePawnFromPlayerList(piece);
                    piece = PawnPromotion(piece);
                    AddPromotedPieceToList(piece);
                }
            }

            Board.tiles[piece.Place.X, piece.Place.Y].Piece = null;
            Board.tiles[x, y].Piece = piece;
            piece.Place             = Board.tiles[x, y];
            piece.FirstTurn         = false;

            KingThreatened = piece.CanCaptureKing();
            if (KingThreatened == true)
            {
                Threat = piece;
            }

            TurnOver();
        }