Beispiel #1
0
        public static void play(Core.Field field)
        {
            intro();

            do
            {
                print(field);
                input(field);
            }while(field.getState() == Core.GameState.PLAYING);

            print(field);

            if (field.getState() == GameState.FAILED)
            {
                Console.WriteLine("OOPS, YOU LOST THE GAME! YOU ARE OUT OF TURNS!");
            }
            else
            {
                Console.WriteLine("YOU WON! YOU ARE THE REAL PLUMBER!");
            }

            Console.WriteLine();
            Service(field);
        }
Beispiel #2
0
        public static void print(Core.Field field)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("         1      2      3      4      5      6      7");

            char[][] consoleField = new char[field.getRowCount() * 3][];
            consoleField[0]  = new char[field.getColumnCount() * 3];
            consoleField[1]  = new char[field.getColumnCount() * 3];
            consoleField[2]  = new char[field.getColumnCount() * 3];
            consoleField[3]  = new char[field.getColumnCount() * 3];
            consoleField[4]  = new char[field.getColumnCount() * 3];
            consoleField[5]  = new char[field.getColumnCount() * 3];
            consoleField[6]  = new char[field.getColumnCount() * 3];
            consoleField[7]  = new char[field.getColumnCount() * 3];
            consoleField[8]  = new char[field.getColumnCount() * 3];
            consoleField[9]  = new char[field.getColumnCount() * 3];
            consoleField[10] = new char[field.getColumnCount() * 3];
            consoleField[11] = new char[field.getColumnCount() * 3];
            consoleField[12] = new char[field.getColumnCount() * 3];
            consoleField[13] = new char[field.getColumnCount() * 3];
            consoleField[14] = new char[field.getColumnCount() * 3];
            consoleField[15] = new char[field.getColumnCount() * 3];
            consoleField[16] = new char[field.getColumnCount() * 3];
            consoleField[17] = new char[field.getColumnCount() * 3];
            consoleField[18] = new char[field.getColumnCount() * 3];
            consoleField[19] = new char[field.getColumnCount() * 3];
            consoleField[20] = new char[field.getColumnCount() * 3];

            for (int row = 0; row < field.getRowCount(); row++)
            {
                for (int column = 0; column < field.getColumnCount(); column++)
                {
                    Core.Tile tile = field.getTile(row, column);

                    if (tile == null)
                    {
                    }
                    else if (tile.getFlow() == PipeFlow.HORIZONTAL)
                    {
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                        consoleField[row * 3 + 1][column * 3]     = 'o';
                        consoleField[row * 3 + 1][column * 3 + 2] = 'o';
                    }
                    else if (tile.getFlow() == PipeFlow.VERTICAL)
                    {
                        consoleField[row * 3][column * 3 + 1]     = 'o';
                        consoleField[row * 3 + 2][column * 3 + 1] = 'o';
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                    }
                    else if (tile.getFlow() == PipeFlow.UpLeft)
                    {
                        consoleField[row * 3][column * 3 + 1]     = 'o';
                        consoleField[row * 3 + 1][column * 3]     = 'o';
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                    }
                    else if (tile.getFlow() == PipeFlow.DownLeft)
                    {
                        consoleField[row * 3 + 1][column * 3]     = 'o';
                        consoleField[row * 3 + 2][column * 3 + 1] = 'o';
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                    }
                    else if (tile.getFlow() == PipeFlow.DownRight)
                    {
                        consoleField[row * 3 + 1][column * 3 + 2] = 'o';
                        consoleField[row * 3 + 2][column * 3 + 1] = 'o';
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                    }
                    else if (tile.getFlow() == PipeFlow.UpRight)
                    {
                        consoleField[row * 3][column * 3 + 1]     = 'o';
                        consoleField[row * 3 + 1][column * 3 + 2] = 'o';
                        consoleField[row * 3 + 1][column * 3 + 1] = 'o';
                    }
                }
            }

            consoleField[field.getStartRow() * 3 + 1][field.getStartColumn() * 3]     = '=';
            consoleField[field.getStartRow() * 3 + 1][field.getStartColumn() * 3 + 1] = '=';
            consoleField[field.getStartRow() * 3 + 1][field.getStartColumn() * 3 + 2] = '>';

            consoleField[field.getEndRow() * 3 + 1][field.getEndColumn() * 3]     = '=';
            consoleField[field.getEndRow() * 3 + 1][field.getEndColumn() * 3 + 1] = '=';
            consoleField[field.getEndRow() * 3 + 1][field.getEndColumn() * 3 + 2] = '>';

            for (int row = 0; row < field.getRowCount() * 3; row++)
            {
                for (int column = 0; column < field.getColumnCount() * 3; column++)
                {
                    char tile = consoleField[row][column];

                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write(tile + " ");
                    if (column % 3 == 2 && column != field.getColumnCount() * 3 - 1)
                    {
                        Console.ForegroundColor
                            = ConsoleColor.Red;
                        Console.Write('|');
                    }
                }
                if (row % 3 == 1)
                {
                    Console.Write(row / 3);
                }
                Console.WriteLine();
                if (row % 3 == 2 && row != field.getRowCount() * 3)
                {
                    Console.Write("     ");
                    for (int i = 0; i < field.getColumnCount() * 6 - 1; i++)
                    {
                        Console.ForegroundColor
                            = ConsoleColor.Red;
                        Console.Write('_');
                    }
                    Console.WriteLine();
                }
            }
            Console.WriteLine();
            Console.WriteLine("Now you have " + field.score + " free turns.");
            Console.WriteLine();
        }