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.

184 lines
9.1 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, Player p, int dice) {
  27. String[] f = getFiguresOnBoard(g);
  28. String[] d = getDice(dice);
  29. String color = "";
  30. switch (p.name) {
  31. case "Rot" -> color = RED;
  32. case "Blau" -> color = BLUE;
  33. case "Gelb" -> color = YELLOW;
  34. case "Grün" -> color = GREEN;
  35. }
  36. return "" +
  37. BLUE +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ YELLOW +"+---+ +---+"+ RESET +" ---------\n" +
  38. BLUE +"| "+ f[60] + BLUE +" | | "+ f[61] + BLUE +" |"+ RESET +" | "+ f[18] +" | | "+ f[19] +" | | "+ f[20] +" | "+ YELLOW +"| "+ f[64] + YELLOW + " | | "+ f[65] + YELLOW +" | "+ RESET + " | "+ d[0] +" "+ d[1] +" "+ d[2] +" |\n" +
  39. BLUE +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ YELLOW +"+---+ +---+"+ RESET +" | "+ d[3] +" |\n" +
  40. BLUE +"+---+ +---+"+ RESET +" +---+ "+ YELLOW +"+---+"+ RESET +" +---+ "+ YELLOW +"+---+ +---+"+ RESET +" | "+d[4]+" "+d[5]+" "+d[6]+" |\n" +
  41. BLUE +"| "+ f[62] + BLUE + " | | "+ f[63] + BLUE +" |"+ RESET +" | "+ f[17] +" | "+ YELLOW +" | "+ f[48] + YELLOW +" | "+ RESET +" | "+ f[21] +" | "+ YELLOW +"| "+ f[66] + YELLOW +" | | "+ f[67] + YELLOW +" | "+ RESET +" ---------\n" +
  42. BLUE +"+---+ +---+"+ RESET +" +---+ "+ YELLOW +"+---+"+ RESET +" +---+ "+ YELLOW +"+---+ +---+\n" + RESET +
  43. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  44. " | "+ f[16] +" | "+ YELLOW +" | "+ f[49] + YELLOW +" | "+ RESET +" | "+ f[22] +" |\n" +
  45. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  46. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  47. " | "+ f[15] +" | "+ YELLOW +" | "+ f[50] + YELLOW +" | "+ RESET +" | "+ f[23] +" |\n" +
  48. " +---+ "+ YELLOW +" +---+ "+ RESET +" +---+\n" +
  49. "+---+ +---+ +---+ +---+ +---+ "+ YELLOW +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  50. "| "+ 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" +
  51. "+---+ +---+ +---+ +---+ +---+ "+ YELLOW +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  52. "+---+ "+ BLUE +" +---+ +---+ +---+ +---+ "+ GREEN +"+---+ +---+ +---+ +---+ "+ RESET +" +---+ \n" +
  53. "| "+ f[9] +" | "+ BLUE +" | "+ f[44] + BLUE +" | | "+ f[45] + BLUE + " | | "+ f[46] + BLUE + " | | "+ f[47] + BLUE +" | "+ GREEN +" | "+ f[55] + GREEN + " | | "+ f[54] + GREEN +" | | "+ f[53] + GREEN +" | | "+ f[52] + GREEN +" | "+ RESET +" | "+ f[29] +" | \n" +
  54. "+---+ "+ BLUE +" +---+ +---+ +---+ +---+ "+ GREEN +"+---+ +---+ +---+ +---+ "+ RESET +" +---+ \n" +
  55. "+---+ +---+ +---+ +---+ +---+ "+ RED +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  56. "| "+ f[8] +" | | "+ f[7] +" | | "+ f[6] +" | | "+ f[5] +" | | "+ f[4] +" | "+ RED +" | "+ f[43] + RED +" | "+ RESET +" | "+ f[34] +" | | "+ f[33] +" | | "+ f[32] +" | | "+ f[31] +" | | "+ f[30] +" | \n" +
  57. "+---+ +---+ +---+ +---+ +---+ "+ RED +" +---+ "+ RESET +" +---+ +---+ +---+ +---+ +---+ \n" +
  58. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  59. " | "+ f[3] +" | "+ RED +" | "+ f[42] + RED +" | "+ RESET +" | "+ f[35] +" |\n" +
  60. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  61. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  62. " | "+ f[2] +" | "+ RED +" | "+ f[41] + RED +" | "+ RESET +" | "+ f[36] +" |\n" +
  63. " +---+ "+ RED +" +---+ "+ RESET +" +---+\n" +
  64. RED +"+---+ +---+"+ RESET +" +---+ "+ RED +" +---+ "+ RESET +" +---+ "+ GREEN +"+---+ +---+\n" +
  65. RED +"| "+ f[56] + RED +" | | "+ f[57] + RED +" |"+ RESET +" | "+ f[1] +" | "+ RED +" | "+ f[40] + RED +" | "+ RESET +" | "+ f[37] +" | "+ GREEN +"| "+ f[68] + GREEN +" | | "+ f[69] + GREEN +" |\n" +
  66. RED +"+---+ +---+"+ RESET +" +---+ "+ RED +" +---+ "+ RESET +" +---+ "+ GREEN +"+---+ +---+\n" +
  67. RED +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ GREEN +"+---+ +---+\n" +
  68. RED +"| "+ f[58] + RED +" | | "+ f[59] + RED +" |"+ RESET +" | "+ f[0] +" | | "+ f[39] +" | | "+ f[38] +" | "+ GREEN +"| "+ f[70] + GREEN +" | | "+ f[71] + GREEN +" |\n" +
  69. RED +"+---+ +---+"+ RESET +" +---+ +---+ +---+ "+ GREEN +"+---+ +---+\n" + RESET +
  70. "===========================================================================\n" +
  71. "Spieler " + color + p.name + RESET + " ist an der Reihe";
  72. }
  73. public static void main(String[] args) {
  74. Game g = new Game();
  75. System.out.println(g.gb.printBoard(g, g.players.get(0), 6));
  76. }
  77. public String[] getDice (int dice) {
  78. String[] res = new String[7];
  79. switch (dice) {
  80. case 1 -> {
  81. res[0] = " ";
  82. res[1] = " ";
  83. res[2] = " ";
  84. res[3] = "o";
  85. res[4] = " ";
  86. res[5] = " ";
  87. res[6] = " ";
  88. }
  89. case 2 -> {
  90. res[0] = "o";
  91. res[1] = " ";
  92. res[2] = " ";
  93. res[3] = " ";
  94. res[4] = " ";
  95. res[5] = " ";
  96. res[6] = "o";
  97. }
  98. case 3 -> {
  99. res[0] = "o";
  100. res[1] = " ";
  101. res[2] = " ";
  102. res[3] = "o";
  103. res[4] = " ";
  104. res[5] = " ";
  105. res[6] = "o";
  106. }
  107. case 4 -> {
  108. res[0] = "o";
  109. res[1] = " ";
  110. res[2] = "o";
  111. res[3] = " ";
  112. res[4] = "o";
  113. res[5] = " ";
  114. res[6] = "o";
  115. }
  116. case 5 -> {
  117. res[0] = "o";
  118. res[1] = " ";
  119. res[2] = "o";
  120. res[3] = "o";
  121. res[4] = "o";
  122. res[5] = " ";
  123. res[6] = "o";
  124. }
  125. case 6 -> {
  126. res[0] = "o";
  127. res[1] = "o";
  128. res[2] = "o";
  129. res[3] = " ";
  130. res[4] = "o";
  131. res[5] = "o";
  132. res[6] = "o";
  133. }
  134. }
  135. return res;
  136. }
  137. public String[] getFiguresOnBoard(Game g) {
  138. String[] res = new String[72];
  139. Arrays.fill(res, " ");
  140. for (Player p : g.players) {
  141. String color = "";
  142. int start = 0;
  143. switch (p.name) {
  144. case "Rot" -> {
  145. color = RED;
  146. start = 56;
  147. }
  148. case "Blau" -> {
  149. color = BLUE;
  150. start = 60;
  151. }
  152. case "Gelb" -> {
  153. color = YELLOW;
  154. start = 64;
  155. }
  156. case "Grün" -> {
  157. color = GREEN;
  158. start = 68;
  159. }
  160. }
  161. Iterator<Figure> figureIt = p.figures.iterator();
  162. int i = 1;
  163. while (figureIt.hasNext()) {
  164. Figure f = figureIt.next();
  165. if (f.getPosition() == -1) {
  166. res[start++] = color + i + RESET;
  167. i++;
  168. } else {
  169. start++;
  170. res[f.getPosition()] = color + i + RESET;
  171. i++;
  172. }
  173. }
  174. }
  175. return res;
  176. }
  177. }