Exemple #1
0
 private void Board(Board bor)
 {
     for (char i = 'a'; i < 'h' + 1; i++)
     {
         addpiece(new Pawn(bor, Color.White), new ChessPosition(i, 2).ToPosition());
         addpiece(new Pawn(bor, Color.Black), new ChessPosition(i, 7).ToPosition());
     }
     //BlackS
     addpiece(new Tower(bor, Color.Black), new ChessPosition('a', 8).ToPosition());
     addpiece(new Horse(bor, Color.Black), new ChessPosition('b', 8).ToPosition());
     addpiece(new Bishop(bor, Color.Black), new ChessPosition('c', 8).ToPosition());
     addpiece(new Queen(bor, Color.Black), new ChessPosition('d', 8).ToPosition());
     addpiece(new King(bor, Color.Black), new ChessPosition('e', 8).ToPosition());
     addpiece(new Bishop(bor, Color.Black), new ChessPosition('f', 8).ToPosition());
     addpiece(new Horse(bor, Color.Black), new ChessPosition('g', 8).ToPosition());
     addpiece(new Tower(bor, Color.Black), new ChessPosition('h', 8).ToPosition());
     //WhiteS
     addpiece(new Tower(bor, Color.White), new ChessPosition('a', 1).ToPosition());
     addpiece(new Horse(bor, Color.White), new ChessPosition('b', 1).ToPosition());
     addpiece(new Bishop(bor, Color.White), new ChessPosition('c', 1).ToPosition());
     addpiece(new King(bor, Color.White), new ChessPosition('d', 1).ToPosition());
     addpiece(new Queen(bor, Color.White), new ChessPosition('e', 1).ToPosition());
     addpiece(new Bishop(bor, Color.White), new ChessPosition('f', 1).ToPosition());
     addpiece(new Horse(bor, Color.White), new ChessPosition('g', 1).ToPosition());
     addpiece(new Tower(bor, Color.White), new ChessPosition('h', 1).ToPosition());
     Screen.printChessDelay(bor);
 }
Exemple #2
0
        private void promocao(Position dest)
        {
            bool val = true;

            while (val)
            {
                Console.Clear();
                Screen.printChessDelay(bor);
                Console.WriteLine("PROMOTION: choose a Piece:");
                Console.WriteLine("1-Tower\n2-Bishop\n3-Horse\n4-Queen");
                char a = Console.ReadKey().KeyChar;
                if (Char.IsDigit(a))
                {
                    Piece    temp;
                    Position pos = new Position(dest.line, dest.column);
                    if (int.TryParse(a.ToString(), out int i))
                    {
                        switch (i)
                        {
                        case 1:
                            temp = bor.withdrawPiece(dest);
                            pieces.Remove(temp);
                            addpiece(new Tower(bor, temp.color), pos);
                            while (temp.mvmtAmount != bor.piece(dest).mvmtAmount)
                            {
                                bor.piece(dest).increasemvmtAmount();
                            }
                            val = false;
                            break;

                        case 2:
                            temp = bor.withdrawPiece(dest);
                            pieces.Remove(temp);
                            addpiece(new Bishop(bor, temp.color), pos);
                            while (temp.mvmtAmount != bor.piece(dest).mvmtAmount)
                            {
                                bor.piece(dest).increasemvmtAmount();
                            }
                            val = false;
                            break;

                        case 3:
                            temp = bor.withdrawPiece(dest);
                            pieces.Remove(temp);
                            addpiece(new Horse(bor, temp.color), pos);
                            while (temp.mvmtAmount != bor.piece(dest).mvmtAmount)
                            {
                                bor.piece(dest).increasemvmtAmount();
                            }
                            val = false;
                            break;

                        case 4:
                            temp = bor.withdrawPiece(dest);
                            pieces.Remove(temp);
                            addpiece(new Queen(bor, temp.color), pos);
                            while (temp.mvmtAmount != bor.piece(dest).mvmtAmount)
                            {
                                bor.piece(dest).increasemvmtAmount();
                            }
                            val = false;
                            break;

                        default:
                            Console.WriteLine("ERROR: Invalid Input");
                            break;
                        }
                    }
                }
            }
        }