You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
6.9 KiB

2 years ago
2 years ago
2 years ago
2 years ago
  1. import java.util.Arrays;
  2. import java.util.Iterator;
  3. public class Gameboard {
  4. int[] board;
  5. static String RED = "\u001b[31;1m";
  6. static String BLUE = "\u001b[34;1m";
  7. static String YELLOW = "\u001b[33;1m";
  8. static String GREEN = "\u001b[32;1m";
  9. static String RESET = "\u001b[0m";
  10. public Gameboard() {
  11. board = new int[56];
  12. }
  13. public void initGameboard (){
  14. for(int i = 0; i < 56; i++) {
  15. if ( i % 10 == 0) {
  16. board[i] = 1;
  17. }
  18. if( i % 10 == 9) {
  19. board[i] = 2;
  20. }
  21. }
  22. for (int i = 40; i < board.length; i++) {
  23. board[i] = 3;
  24. }
  25. }
  26. public String printBoard(Game g) {
  27. String[] f = getFiguresOnBoard(g);
  28. return "" +
  29. BLUE +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ YELLOW +"+---+ +---+\n" +
  30. BLUE +"| "+ f[60] + BLUE +" | | "+ f[61] + BLUE +" |"+ RESET +" | "+ f[18] +" | | "+ f[19] +" | | "+ f[20] +" | "+ YELLOW +"| "+ f[64] +" | | "+ f[65] +" |\n" +
  31. BLUE +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ YELLOW +"+---+ +---+\n" +
  32. BLUE +"+---+ +---+"+ RESET +" +---+ "+ YELLOW +"+---+"+ RESET +" +---+ "+ YELLOW +"+---+ +---+\n" +
  33. BLUE +"| "+ f[62] +" | | "+ f[63] +" |"+ RESET +" | "+ f[17] +" | "+ YELLOW +" | "+ f[48] +" | "+ RESET +" | "+ f[21] +" | "+ YELLOW +"| "+ f[66] +" | | "+ f[67] +" |\n" +
  34. BLUE +"+---+ +---+"+ RESET +" +---+ "+ YELLOW +"+---+"+ RESET +" +---+ "+ YELLOW +"+---+ +---+\n" + RESET +
  35. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  36. " | "+ f[16] +" | "+ YELLOW +" | "+ f[49] +" | "+ RESET +" | "+ f[22] +" |\n" +
  37. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  38. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  39. " | "+ f[15] +" | "+ YELLOW +" | "+ f[50] +" | "+ RESET +" | "+ f[23] +" |\n" +
  40. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  41. "+---+ +---+ +---+ +---+ +---+ "+ YELLOW +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  42. "| "+ f[10] +" | | "+ f[11] +" | | "+ f[12] +" | | "+ f[13] +" | | "+ f[14] +" | "+ YELLOW +" | "+ f[51] +" | "+ RESET +" | "+ f[24] +" | | "+ f[25] +" | | "+ f[26] +" | | "+ f[27] +" | | "+ f[28] +" | \n" +
  43. "+---+ +---+ +---+ +---+ +---+ "+ YELLOW +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  44. "+---+ "+ BLUE +" +---+ +---+ +---+ +---+ "+ GREEN +"+---+ +---+ +---+ +---+ "+ RESET +" +---+ \n" +
  45. "| "+ f[9] +" | "+ BLUE +" | "+ f[44] +" | | "+ f[45] +" | | "+ f[46] +" | | "+ f[47] +" | "+ GREEN +" | "+ f[55] +" | | "+ f[54] +" | | "+ f[53] +" | | "+ f[52] +" | "+ RESET +" | "+ f[29] +" | \n" +
  46. "+---+ "+ BLUE +" +---+ +---+ +---+ +---+ "+ GREEN +"+---+ +---+ +---+ +---+ "+ RESET +" +---+ \n" +
  47. "+---+ +---+ +---+ +---+ +---+ "+ RED +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  48. "| "+ f[8] +" | | "+ f[7] +" | | "+ f[6] +" | | "+ f[5] +" | | "+ f[4] +" | "+ RED +" | "+ f[43] +" | "+ RESET +" | "+ f[34] +" | | "+ f[33] +" | | "+ f[32] +" | | "+ f[31] +" | | "+ f[30] +" | \n" +
  49. "+---+ +---+ +---+ +---+ +---+ "+ RED +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  50. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  51. " | "+ f[3] +" | "+ RED +" | "+ f[42] +" | "+ RESET +" | "+ f[35] +" |\n" +
  52. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  53. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  54. " | "+ f[2] +" | "+ RED +" | "+ f[41] +" | "+ RESET +" | "+ f[36] +" |\n" +
  55. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  56. RED +"+---+ +---+"+ RESET +" +---+ "+ RED +" +---+ "+ RESET +" +---+ "+ GREEN +"+---+ +---+\n" +
  57. RED +"| "+ f[56] +" | | "+ f[57] +" |"+ RESET +" | "+ f[1] +" | "+ RED +" | "+ f[40] +" | "+ RESET +" | "+ f[37] +" | "+ GREEN +"| "+ f[68] +" | | "+ f[69] +" |\n" +
  58. RED +"+---+ +---+"+ RESET +" +---+ "+ RED +" +---+ "+ RESET +" +---+ "+ GREEN +"+---+ +---+\n" +
  59. RED +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ GREEN +"+---+ +---+\n" +
  60. RED +"| "+ f[58] +" | | "+ f[59] +" |"+ RESET +" | "+ f[0] +" | | "+ f[39] +" | | "+ f[38] +" | "+ GREEN +"| "+ f[70] +" | | "+ f[71] +" |\n" +
  61. RED +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ GREEN +"+---+ +---+\n" + RESET;
  62. }
  63. public static void main(String[] args) {
  64. Game g = new Game();
  65. System.out.println(g.gb.printBoard(g));
  66. }
  67. public String[] getFiguresOnBoard(Game g) {
  68. String[] res = new String[72];
  69. Arrays.fill(res, " ");
  70. for (Player p : g.players) {
  71. String color = "";
  72. int start = 0;
  73. switch (p.name) {
  74. case "Rot" -> {
  75. color = RED;
  76. start = 56;
  77. }
  78. case "Blau" -> {
  79. color = BLUE;
  80. start = 60;
  81. }
  82. case "Gelb" -> {
  83. color = YELLOW;
  84. start = 64;
  85. }
  86. case "Grün" -> {
  87. color = GREEN;
  88. start = 68;
  89. }
  90. }
  91. Iterator<Figure> figureIt = p.figures.iterator();
  92. int i = 1;
  93. while (figureIt.hasNext()) {
  94. Figure f = figureIt.next();
  95. if (f.getPosition() == -1) {
  96. res[start++] = color + i + RESET;
  97. i++;
  98. } else {
  99. start++;
  100. res[f.getPosition()] = color + i + RESET;
  101. i++;
  102. }
  103. }
  104. }
  105. return res;
  106. }
  107. }
  108. /*
  109. 0-39 Spielfelder
  110. Rot Ziel: 40,41,42,43
  111. Blau Ziel: 44,45,46,47
  112. Gelb Ziel: 48,49,50,51
  113. Grün Ziel: 52.53.54.55
  114. Rot Daneben: 56,57,58,59
  115. Blau Daneben: 60,61,62,63
  116. Gelb Daneben: 64.65.66.67
  117. Grün Daneben: 68.69,70,71
  118. */