commit 989702aa0c3019870433ebd0ff99d3958399871e Author: matia Date: Tue Dec 10 09:31:21 2024 +0100 Erster Commit 10.12.24 diff --git a/Semesterprojekt/.classpath b/Semesterprojekt/.classpath new file mode 100644 index 0000000..20a8b72 --- /dev/null +++ b/Semesterprojekt/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Semesterprojekt/.gitignore b/Semesterprojekt/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Semesterprojekt/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Semesterprojekt/.project b/Semesterprojekt/.project new file mode 100644 index 0000000..72d5182 --- /dev/null +++ b/Semesterprojekt/.project @@ -0,0 +1,17 @@ + + + Semesterprojekt + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Semesterprojekt/.settings/org.eclipse.core.resources.prefs b/Semesterprojekt/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/Semesterprojekt/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Semesterprojekt/.settings/org.eclipse.jdt.core.prefs b/Semesterprojekt/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..679432a --- /dev/null +++ b/Semesterprojekt/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=22 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=22 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=22 diff --git a/Semesterprojekt/src/TicTacToe.java b/Semesterprojekt/src/TicTacToe.java new file mode 100644 index 0000000..a201afb --- /dev/null +++ b/Semesterprojekt/src/TicTacToe.java @@ -0,0 +1,104 @@ +import java.util.Scanner; +import java.util.TreeMap; + +public class TicTacToe { + + private static TreeMap belegteFelder = new TreeMap<>(); + private static char aktuellerSpieler = 'X'; + private static int ausgewaehltesFeld = 0; + + + public static void main(String[] args) { + + System.out.println("Spieler 1 ist X, Sieler 2 ist O.\nDie Felder sind von 1 bis 9 durchnummerriert.\nUm ein Feld für ein Zug auszuwählen muss die Zahl des Feldes eingegeben werden...."); + + fuelleTreeMap(); + + for(int i=1;i<=9;i++) { + + erfasseEingabe(); + gibAktuellenStandAus(); + if(i >= 5) pruefeSieg(); + + if(aktuellerSpieler == 'X') aktuellerSpieler = 'O'; + else aktuellerSpieler = 'X'; + + } + + System.out.println("Ergebnis des Spiels ist ein Untentschieden!"); + + } + + //Fuellt die TreeMap mit Standart Werten + private static void fuelleTreeMap() { + for(int i=1;i<=9;i++) { + belegteFelder.put(i, (char) (48+i)); + } + } + + private static void gibAktuellenStandAus() { + + System.out.println("\n-------------"); + int counter = 0; + while(counter < 9){ + System.out.printf("|%2s |%2s |%2s |",belegteFelder.get(counter+=1), belegteFelder.get(counter+=1), belegteFelder.get(counter+=1)); + System.out.println("\n-------------"); + } + + } + + private static void erfasseEingabe() { + + Scanner s = new Scanner(System.in); + + System.out.println("Spieler "+aktuellerSpieler+" ist am Zug!"); + + System.out.println("Geben Sie eine Feldnummer ein:\n>>"); + + try { + ausgewaehltesFeld = s.nextInt(); + System.out.println("Die Eingabe: "+ausgewaehltesFeld); + }catch(Exception E) { + System.out.println("Es wurde keine passende Eingabe getätigt,\nversuchen Sie es erneut..."); + erfasseEingabe(); + } + + if(belegteFelder.get(ausgewaehltesFeld) == 'X' || belegteFelder.get(ausgewaehltesFeld) == 'O') { + System.out.println("Feld "+ausgewaehltesFeld+" schon belegt, machen Sie eine erneute Eingabe..."); + erfasseEingabe(); + }else { + belegteFelder.put(ausgewaehltesFeld, aktuellerSpieler); + } + + + } + + private static void pruefeSieg() { + + if(belegteFelder.get(1) == aktuellerSpieler && belegteFelder.get(2) == aktuellerSpieler && belegteFelder.get(3) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der ersten Waagerechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(4) == aktuellerSpieler && belegteFelder.get(5) == aktuellerSpieler && belegteFelder.get(6) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der zweiten Waagerechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(7) == aktuellerSpieler && belegteFelder.get(8) == aktuellerSpieler && belegteFelder.get(9) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der dritten Waagerechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(1) == aktuellerSpieler && belegteFelder.get(4) == aktuellerSpieler && belegteFelder.get(7) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der ersten Senkrechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(2) == aktuellerSpieler && belegteFelder.get(5) == aktuellerSpieler && belegteFelder.get(8) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der zweiten Senkrechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(3) == aktuellerSpieler && belegteFelder.get(6) == aktuellerSpieler && belegteFelder.get(9) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der dritten Senkrechte und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(1) == aktuellerSpieler && belegteFelder.get(5) == aktuellerSpieler && belegteFelder.get(9) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der ersten Diagonale und hat somit gewonnen!"); + System.exit(0); + }else if(belegteFelder.get(3) == aktuellerSpieler && belegteFelder.get(5) == aktuellerSpieler && belegteFelder.get(7) == aktuellerSpieler) { + System.out.println("Spieler "+aktuellerSpieler+" hat drei '"+aktuellerSpieler+"' in der zweiten Diagonale und hat somit gewonnen!"); + System.exit(0); + } + } +}