예제 #1
0
        static void Main(string[] args)
        {
            GameplayDisplay b = new GameplayDisplay();
            Gameboard       a = new Gameboard();

            b.Change();
            a.InitializeGameboard(b, a);

            while (true)
            {
                b.AskSelectPiece();
                a.JudgeSide(b);
                b.AskMovePiece();
                a.NoPlaceToGo(b);
                a.CalculateValidMoves(b);
                a.MovePiece(b.posx, b.posy, b.posx2, b.posy2, b);
                Console.Clear();
                Console.SetCursorPosition(0, 0);
                b.DisplayBoard(a);
                if (a.GameFinished(b))
                {
                    Console.WriteLine("Game over");
                    break;
                }
            }
        }
예제 #2
0
        public void DisplayBoard(Gameboard gamebord)
        {
            for (int row = 0; row < 19; row++)//打印棋盘
            {
                for (int col = 0; col < 17; col++)
                {
                    Console.BackgroundColor = ConsoleColor.DarkYellow;
                    if (col == 0)
                    {
                        if (row % 2 == 0)
                        {
                            Console.ForegroundColor = ConsoleColor.DarkBlue;
                            Console.Write(row / 2 + " ");
                        }
                        else
                        {
                            Console.Write("  ");
                        }
                    }

                    if (gamebord.chess[row / 2, col / 2].side == 0 && row % 2 == 0 && col % 2 == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write(a[row, col]);
                    }
                    else if (gamebord.chess[row / 2, col / 2].side == 1 && row % 2 == 0 && col % 2 == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.Write(a[row, col]);
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write(a[row, col]);
                    }
                }
                Console.Write(" \n");
            }
            Console.BackgroundColor = ConsoleColor.DarkYellow;
            Console.ForegroundColor = ConsoleColor.DarkBlue;
            Console.WriteLine("  a b c d e f g h i ");
        }
예제 #3
0
        public void InitializeGameboard(GameplayDisplay b, Gameboard a)
        {
            b.Change();
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    chess[i, j] = new GameboardPiece.blank(3);
                }
            }
            chess[0, 0] = new GameboardPiece.Rook(0);
            chess[0, 1] = new GameboardPiece.Horse(0);
            chess[0, 2] = new GameboardPiece.Elephant(0);
            chess[0, 3] = new GameboardPiece.Advisor(0);
            chess[0, 4] = new GameboardPiece.General(0);
            chess[0, 5] = new GameboardPiece.Advisor(0);
            chess[0, 6] = new GameboardPiece.Elephant(0);
            chess[0, 7] = new GameboardPiece.Horse(0);
            chess[0, 8] = new GameboardPiece.Rook(0);
            chess[2, 1] = new GameboardPiece.Cannon(0);
            chess[2, 7] = new GameboardPiece.Cannon(0);
            chess[3, 0] = new GameboardPiece.Soldier(0);
            chess[3, 2] = new GameboardPiece.Soldier(0);
            chess[3, 4] = new GameboardPiece.Soldier(0);
            chess[3, 6] = new GameboardPiece.Soldier(0);
            chess[3, 8] = new GameboardPiece.Soldier(0);


            chess[9, 0] = new GameboardPiece.Rook(1);
            chess[9, 1] = new GameboardPiece.Horse(1);
            chess[9, 2] = new GameboardPiece.Elephant(1);
            chess[9, 3] = new GameboardPiece.Advisor(1);
            chess[9, 4] = new GameboardPiece.General(1);
            chess[9, 5] = new GameboardPiece.Advisor(1);
            chess[9, 6] = new GameboardPiece.Elephant(1);
            chess[9, 7] = new GameboardPiece.Horse(1);
            chess[9, 8] = new GameboardPiece.Rook(1);
            chess[7, 1] = new GameboardPiece.Cannon(1);
            chess[7, 7] = new GameboardPiece.Cannon(1);
            chess[6, 0] = new GameboardPiece.Soldier(1);
            chess[6, 2] = new GameboardPiece.Soldier(1);
            chess[6, 4] = new GameboardPiece.Soldier(1);
            chess[6, 6] = new GameboardPiece.Soldier(1);
            chess[6, 8] = new GameboardPiece.Soldier(1);

            b.a[0, 0]  = chess[0, 0].ToChar();
            b.a[0, 2]  = chess[0, 1].ToChar();
            b.a[0, 4]  = chess[0, 2].ToChar();
            b.a[0, 6]  = chess[0, 3].ToChar();
            b.a[0, 8]  = chess[0, 4].ToChar();
            b.a[0, 10] = chess[0, 5].ToChar();
            b.a[0, 12] = chess[0, 6].ToChar();
            b.a[0, 14] = chess[0, 7].ToChar();
            b.a[0, 16] = chess[0, 8].ToChar();
            b.a[4, 2]  = chess[2, 1].ToChar();
            b.a[4, 14] = chess[2, 7].ToChar();
            b.a[6, 0]  = chess[3, 0].ToChar();
            b.a[6, 4]  = chess[3, 2].ToChar();
            b.a[6, 8]  = chess[3, 4].ToChar();
            b.a[6, 12] = chess[3, 6].ToChar();
            b.a[6, 16] = chess[3, 8].ToChar();

            b.a[18, 0]  = chess[9, 0].ToChar();
            b.a[18, 2]  = chess[9, 1].ToChar();
            b.a[18, 4]  = chess[9, 2].ToChar();
            b.a[18, 6]  = chess[9, 3].ToChar();
            b.a[18, 8]  = chess[9, 4].ToChar();
            b.a[18, 10] = chess[9, 5].ToChar();
            b.a[18, 12] = chess[9, 6].ToChar();
            b.a[18, 14] = chess[9, 7].ToChar();
            b.a[18, 16] = chess[9, 8].ToChar();
            b.a[14, 2]  = chess[7, 1].ToChar();
            b.a[14, 14] = chess[7, 7].ToChar();
            b.a[12, 0]  = chess[6, 0].ToChar();
            b.a[12, 4]  = chess[6, 2].ToChar();
            b.a[12, 8]  = chess[6, 4].ToChar();
            b.a[12, 12] = chess[6, 6].ToChar();
            b.a[12, 16] = chess[6, 8].ToChar();
            b.DisplayBoard(a);
        }