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); }
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(); }