Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.59 KB | None | 0 0
  1. //Name: Jason Hoteit
  2.  
  3. package ArayTicTacToe;
  4.  
  5. import java.util.Scanner;
  6. import java.util.Random;
  7.  
  8. public class ArayTicTacToe {
  9.  
  10. public static Random Rnd = new Random();
  11.  
  12. public static char NächsterSpieler(char Spieler) {
  13.  
  14. if (Spieler == 'X') {
  15. return 'O';
  16. } else {
  17. return 'X';
  18. }
  19. }
  20.  
  21. public static char RandomSpieler() {
  22.  
  23. int Zahl = Rnd.nextInt(2);
  24.  
  25. if (Zahl == 0) {
  26. return 'X';
  27. } else {
  28. return 'O';
  29. }
  30. }
  31.  
  32. public static void LevelAuswahl() {
  33.  
  34. }
  35.  
  36. public static void Fall2() {
  37.  
  38. int r = 0;
  39. char[][] z = new char[5][5];
  40. char p = 'O';
  41. Random O = new Random();
  42.  
  43. while (r == 0) {
  44. if (p == 'X') {
  45. p = 'O';
  46. p = (char) (1 + O.nextInt(9));
  47. } else
  48. System.out.println("Nächster Spieler");
  49. Eingabe(z, p);
  50. Ausgabe(z);
  51.  
  52. r = Auswertung(z);
  53. }
  54. }
  55.  
  56. public static void Fall1() {
  57.  
  58. int r = 0;
  59. char[][] z = new char[5][5];
  60. char p = 'O';
  61.  
  62. // Fall 1 Spieler vs. Spieler
  63.  
  64. while (r == 0) {
  65. if (p == 'X') {
  66. p = 'O'; // Wechselt der Spieler
  67. } else
  68. p = 'X';
  69. System.out.println("Nächster Spieler");
  70. Eingabe(z, p);
  71. Ausgabe(z);
  72.  
  73. r = Auswertung(z);
  74.  
  75. }
  76. if (r == 1) {
  77. System.out.println("Spieler X hat gewonnen");
  78. } else if (r == 2) {
  79. System.out.println("Spieler O hat gewonnen");
  80. } else {
  81. System.out.println("Unentschieden");
  82.  
  83. }
  84. }
  85.  
  86. // *************************************
  87. // Wenn 1 zurück, ist das Feld belegt
  88. // Wenn 0 zurück, ist das Feld frei
  89. // *************************************
  90.  
  91. public static int TestFeld(char[][] x, int a, int b) {
  92.  
  93. if ((x[a][b] == 'X') || (x[a][b] == 'O')) {
  94. System.out.println("Das Feld ist belegt, bitte wähle ein anderes.");
  95. return 1;
  96. } else { // Checkt ob das Feld belegt ist oder nicht, Feld belegt = 1, nicht belegt = 0
  97. return 0;
  98. }
  99. }
  100.  
  101. // **************************************************
  102. // Rückagabe Integere: 0: Keiner hat gewonnen
  103. // 1: Spieler 1 (X) hat gewonnen
  104. // 2: Spieler 2 (O) hat gewonnen
  105. // **************************************************
  106.  
  107. public static int Auswertung(char[][] x) {
  108.  
  109. int h = 0;
  110. int erg = 0;
  111.  
  112. if ((x[0][0] == 'X') && (x[1][0] == 'X') && (x[2][0] == 'X')) {
  113. erg = 1;
  114. }
  115. if ((x[0][1] == 'X') && (x[1][1] == 'X') && (x[2][1] == 'X')) {
  116. erg = 1;
  117. }
  118. if ((x[0][2] == 'X') && (x[1][2] == 'X') && (x[2][2] == 'X')) { // 3 gleiche Zeichen in einer Zeile
  119. erg = 1;
  120. }
  121. if ((x[0][0] == 'X') && (x[0][1] == 'X') && (x[0][2] == 'X')) {
  122. erg = 1;
  123. }
  124. if ((x[1][0] == 'X') && (x[1][1] == 'X') && (x[1][2] == 'X')) {
  125. erg = 1;
  126. }
  127. if ((x[2][0] == 'X') && (x[2][1] == 'X') && (x[2][2] == 'X')) { // 3 gleiche Zeichen in einer Reihe
  128. erg = 1;
  129. }
  130. if ((x[0][0] == 'X') && (x[1][1] == 'X') && (x[2][2] == 'X')) {
  131. erg = 1;
  132. }
  133. if ((x[2][0] == 'X') && (x[1][1] == 'X') && (x[0][2] == 'X')) { // 3 gleiche Zeichen senkrecht
  134. erg = 1;
  135. }
  136.  
  137. if ((x[0][0] == 'O') && (x[1][0] == 'O') && (x[2][0] == 'O')) {
  138. erg = 2;
  139. }
  140. if ((x[0][1] == 'O') && (x[1][1] == 'O') && (x[2][1] == 'O')) {
  141. erg = 2;
  142. }
  143. if ((x[0][2] == 'O') && (x[1][2] == 'O') && (x[2][2] == 'O')) { // 3 gleiche Zeichen in einer Zeile
  144. erg = 2;
  145. }
  146. if ((x[0][0] == 'O') && (x[0][1] == 'O') && (x[0][2] == 'O')) {
  147. erg = 2;
  148. }
  149. if ((x[1][0] == 'O') && (x[1][1] == 'O') && (x[1][2] == 'O')) {
  150. erg = 2;
  151. }
  152. if ((x[2][0] == 'O') && (x[2][1] == 'O') && (x[2][2] == 'O')) { // 3 gleiche Zeichen in einer Reihe
  153. erg = 2;
  154. }
  155. if ((x[0][0] == 'O') && (x[1][1] == 'O') && (x[2][2] == 'O')) {
  156. erg = 2;
  157. }
  158. if ((x[2][0] == 'O') && (x[1][1] == 'O') && (x[0][2] == 'O')) { // 3 gleiche Zeichen senkrecht
  159. erg = 2;
  160. }
  161.  
  162. h = 0; // Alle Felder sind voll
  163.  
  164. for (int j = 0; j < 3; j++) {
  165.  
  166. for (int i = 0; i < 3; i++) { // Wiedergabe vom Feld
  167.  
  168. if (x[i][j] == 'X') {
  169.  
  170. } else if (x[i][j] == 'O') {
  171.  
  172. } else {
  173. h = 1; // Habe ein leeres Feld
  174. }
  175. }
  176. }
  177.  
  178. if (erg == 0) { // In erg steht 0 = Unentschieden, 1 = Spieler X hat gewonnen, 2 = Spieler O hat
  179. // gewonnen
  180. if (h == 1) {
  181. return erg;
  182.  
  183. } else {
  184. System.out.println("Das Spiel ist zu ende");
  185. return 3; // Spiel zu Ende
  186. }
  187. } else { // In erg steht 1 oder 2
  188. return erg;
  189. }
  190. }
  191.  
  192. // *****************************************
  193. // Aufgabe: Soll dem Spieler eine Eingabe
  194. // zum platzieren eines Zeichens
  195. // ermöglichen
  196. //
  197. // Datentyp: char [][]
  198. // *****************************************
  199.  
  200. public static void Eingabe(char[][] x, char c) {
  201.  
  202. int h = 0; // Variable vom Typ Integer
  203. int Fall; // Variable vom Typ Integer
  204. String inData; // variable vom typ String
  205.  
  206. char[][] y = new char[3][3]; // Hilfsaray zur Ausgabe der Zahlen je Feld
  207.  
  208. y[0][0] = '1';
  209. y[1][0] = '2';
  210. y[2][0] = '3';
  211.  
  212. y[0][1] = '4';
  213. y[1][1] = '5';
  214. y[2][1] = '6';
  215.  
  216. y[0][2] = '7';
  217. y[1][2] = '8';
  218. y[2][2] = '9'; // Ausgabe des Spielfeldes mit Nummern
  219.  
  220. Scanner scan = new Scanner(System.in); // Neues objekt vom Typ Scanner erstellen
  221.  
  222. do { // Hier hin zurück wenn Feld besetzt
  223.  
  224. Ausgabe(y);
  225. System.out.print("Bitte wähle ein Feld zwischen 1-9 aus: ");
  226.  
  227. inData = scan.nextLine(); // Dateneingabe
  228. Fall = Integer.parseInt(inData); //
  229.  
  230. switch (Fall) {
  231. case 1:
  232. h = TestFeld(x, 0, 0);
  233. break;
  234. case 2:
  235. h = TestFeld(x, 1, 0);
  236. break;
  237. case 3:
  238. h = TestFeld(x, 2, 0);
  239. break;
  240.  
  241. case 4:
  242. h = TestFeld(x, 0, 1);
  243. break;
  244. case 5:
  245. h = TestFeld(x, 1, 1);
  246. break;
  247. case 6:
  248. h = TestFeld(x, 2, 1);
  249. break;
  250.  
  251. case 7:
  252. h = TestFeld(x, 0, 2);
  253. break;
  254. case 8:
  255. h = TestFeld(x, 1, 2);
  256. break;
  257. case 9:
  258. h = TestFeld(x, 2, 2);
  259. break;
  260. }
  261. } while (h == 1); // Testen ob das Feld noch frei ist
  262.  
  263. switch (Fall) {
  264. case 1:
  265. x[0][0] = c;
  266. break;
  267. case 2:
  268. x[1][0] = c;
  269. break;
  270. case 3:
  271. x[2][0] = c;
  272. break;
  273.  
  274. case 4:
  275. x[0][1] = c;
  276. break;
  277. case 5:
  278. x[1][1] = c;
  279. break;
  280. case 6:
  281. x[2][1] = c;
  282. break;
  283.  
  284. case 7:
  285. x[0][2] = c;
  286. break;
  287. case 8:
  288. x[1][2] = c;
  289. break;
  290. case 9:
  291. x[2][2] = c;
  292. break;
  293. }
  294. // scan.close();
  295.  
  296. }
  297.  
  298. // *************************************************
  299. // Aufgabe : Soll ein Tic Tac Toe Feld ausgeben
  300. //
  301. // Datentyp: char [][]
  302. // *************************************************
  303.  
  304. public static void Ausgabe(char[][] x) {
  305.  
  306. char[][] a = new char[5][5];
  307.  
  308. a[0][0] = x[0][0];
  309. a[1][0] = '│'; // Alt + 179 = │
  310. a[2][0] = x[1][0];
  311. a[3][0] = '│';
  312. a[4][0] = x[2][0]; // Erste Zeile des Feldes
  313.  
  314. a[0][1] = '─'; // Alt + 196 = ─
  315. a[1][1] = '┼'; // Alt + 197 = ┼
  316. a[2][1] = '─';
  317. a[3][1] = '┼';
  318. a[4][1] = '─'; // Zweite Zeile des Feldes
  319.  
  320. a[0][2] = x[0][1];
  321. a[1][2] = '│';
  322. a[2][2] = x[1][1];
  323. a[3][2] = '│';
  324. a[4][2] = x[2][1]; // Dritte Zeile des Feldes
  325.  
  326. a[0][3] = '─';
  327. a[1][3] = '┼';
  328. a[2][3] = '─';
  329. a[3][3] = '┼';
  330. a[4][3] = '─'; // Vierte Zeile des Feldes
  331.  
  332. a[0][4] = x[0][2];
  333. a[1][4] = '│';
  334. a[2][4] = x[1][2];
  335. a[3][4] = '│';
  336. a[4][4] = x[2][2];// Fünfte Zeile des Feldes
  337.  
  338. for (int j = 0; j < 5; j++) {
  339. for (int i = 0; i < 5; i++) { // Wiedergabe vom Feld
  340. System.out.print(a[i][j]);
  341. }
  342. System.out.println();
  343.  
  344. }
  345. }
  346.  
  347. // *****************************************
  348. // Name: TicTacToe
  349. //
  350. // Aufgabe: Soll das Spiel Tic Tac Toe mit
  351. // 3 Leveln spielbar machen
  352. // *****************************************
  353.  
  354. public static void main(String[] args) {
  355.  
  356. LevelAuswahl();
  357. Fall1();
  358. Fall2();
  359.  
  360. }
  361. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement