commit 012d2574d7d92e30b2b72f7796e3b2179f61cc7d Author: andiz Date: Sun Dec 24 22:30:11 2023 +0100 Init diff --git a/Menschärgeredichnicht5/.classpath b/Menschärgeredichnicht5/.classpath new file mode 100644 index 0000000..c0faa25 --- /dev/null +++ b/Menschärgeredichnicht5/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Menschärgeredichnicht5/.project b/Menschärgeredichnicht5/.project new file mode 100644 index 0000000..2d3289f --- /dev/null +++ b/Menschärgeredichnicht5/.project @@ -0,0 +1,17 @@ + + + Menschärgeredichnicht + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Menschärgeredichnicht5/.settings/org.eclipse.jdt.core.prefs b/Menschärgeredichnicht5/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ae7f7b3 --- /dev/null +++ b/Menschärgeredichnicht5/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=16 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=16 +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.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=16 diff --git a/Menschärgeredichnicht5/0.jpg b/Menschärgeredichnicht5/0.jpg new file mode 100644 index 0000000..cc1bb35 Binary files /dev/null and b/Menschärgeredichnicht5/0.jpg differ diff --git a/Menschärgeredichnicht5/0Brett.jpg b/Menschärgeredichnicht5/0Brett.jpg new file mode 100644 index 0000000..3110bc4 Binary files /dev/null and b/Menschärgeredichnicht5/0Brett.jpg differ diff --git a/Menschärgeredichnicht5/1.jpg b/Menschärgeredichnicht5/1.jpg new file mode 100644 index 0000000..b728e9a Binary files /dev/null and b/Menschärgeredichnicht5/1.jpg differ diff --git a/Menschärgeredichnicht5/1Brett.jpg b/Menschärgeredichnicht5/1Brett.jpg new file mode 100644 index 0000000..dae6bfe Binary files /dev/null and b/Menschärgeredichnicht5/1Brett.jpg differ diff --git a/Menschärgeredichnicht5/2.jpg b/Menschärgeredichnicht5/2.jpg new file mode 100644 index 0000000..c7098e2 Binary files /dev/null and b/Menschärgeredichnicht5/2.jpg differ diff --git a/Menschärgeredichnicht5/2Brett.jpg b/Menschärgeredichnicht5/2Brett.jpg new file mode 100644 index 0000000..c564e7d Binary files /dev/null and b/Menschärgeredichnicht5/2Brett.jpg differ diff --git a/Menschärgeredichnicht5/3.jpg b/Menschärgeredichnicht5/3.jpg new file mode 100644 index 0000000..fd4f06c Binary files /dev/null and b/Menschärgeredichnicht5/3.jpg differ diff --git a/Menschärgeredichnicht5/4.jpg b/Menschärgeredichnicht5/4.jpg new file mode 100644 index 0000000..91aed0e Binary files /dev/null and b/Menschärgeredichnicht5/4.jpg differ diff --git a/Menschärgeredichnicht5/5.jpg b/Menschärgeredichnicht5/5.jpg new file mode 100644 index 0000000..a1eabe6 Binary files /dev/null and b/Menschärgeredichnicht5/5.jpg differ diff --git a/Menschärgeredichnicht5/6.jpg b/Menschärgeredichnicht5/6.jpg new file mode 100644 index 0000000..dc1ecd6 Binary files /dev/null and b/Menschärgeredichnicht5/6.jpg differ diff --git a/Menschärgeredichnicht5/BildElement0.jpg b/Menschärgeredichnicht5/BildElement0.jpg new file mode 100644 index 0000000..8caa455 Binary files /dev/null and b/Menschärgeredichnicht5/BildElement0.jpg differ diff --git a/Menschärgeredichnicht5/BildElement1.jpg b/Menschärgeredichnicht5/BildElement1.jpg new file mode 100644 index 0000000..7e7a99d Binary files /dev/null and b/Menschärgeredichnicht5/BildElement1.jpg differ diff --git a/Menschärgeredichnicht5/BildElement2.jpg b/Menschärgeredichnicht5/BildElement2.jpg new file mode 100644 index 0000000..481f424 Binary files /dev/null and b/Menschärgeredichnicht5/BildElement2.jpg differ diff --git a/Menschärgeredichnicht5/BildElement3.jpg b/Menschärgeredichnicht5/BildElement3.jpg new file mode 100644 index 0000000..8bfdcef Binary files /dev/null and b/Menschärgeredichnicht5/BildElement3.jpg differ diff --git a/Menschärgeredichnicht5/BildElement4.jpg b/Menschärgeredichnicht5/BildElement4.jpg new file mode 100644 index 0000000..fa652b5 Binary files /dev/null and b/Menschärgeredichnicht5/BildElement4.jpg differ diff --git a/Menschärgeredichnicht5/Credit.dat.txt b/Menschärgeredichnicht5/Credit.dat.txt new file mode 100644 index 0000000..654eeee --- /dev/null +++ b/Menschärgeredichnicht5/Credit.dat.txt @@ -0,0 +1,25 @@ +Credits: +| +| +| +Projektleiter: Laurin Vellmete +| +| +Chefprogrammierer: Andi Zaberxha +| +| +Co-Programmierer: Laurin Vellmete und Florian Krasniqi" +| +| +Designmanagement: Florian Krasniqi +| +| +Leiter der folgenden Aufgaben: +| + -Startoberflaeche/Menue: Florian Krasniqi +| + -Spieloberflaeche/Main-GUI: Laurin Vellmete +| + -Algorithmus/Implementierung +| + der Logik und Regeln: Andi Zaberxha \ No newline at end of file diff --git a/Menschärgeredichnicht5/Menuehintergrund.jfif b/Menschärgeredichnicht5/Menuehintergrund.jfif new file mode 100644 index 0000000..13625ec Binary files /dev/null and b/Menschärgeredichnicht5/Menuehintergrund.jfif differ diff --git a/Menschärgeredichnicht5/Regeln.dat.txt b/Menschärgeredichnicht5/Regeln.dat.txt new file mode 100644 index 0000000..a5d3e3a --- /dev/null +++ b/Menschärgeredichnicht5/Regeln.dat.txt @@ -0,0 +1,94 @@ +Allgemeine Regeln: +| +| +| +In Mensch aergere Dich nicht geht es grob darum, +| +dass jeder versucht, seine 4 Spielfiguren als Erster +| +ins Ziel bringen und die Gegenspieler moeglichst oft rauszusch-meissen. +| +Das Spiel beginnt damit, dass jeder Spieler 4 Spielfiguren einer Farbe besitzt. +| +Diese werden auf den Anfangskreis der gleichen Farbe gesetzt. +| +Wer am Zug ist, ist in diesem Programm von der jeweiligen +| +Farbe abhaengig: Rot, Blau, Gelb und dann Gruen. +| +Jeder Spieler hat nun zunaechst nur einziges Mal 3 Wuerfe, +| +danach nur noch einen, um zu versuchen eine Spielfigur auf +| +das Brett zu bekommen, die nur mit der Augenzahl 6 moeglich +| +ist. +| +Sollte man es geschafft haben, darf man bei einer gewuerfelten 6 ein weiteres Mal wuerfeln und, wie in allen anderen Faellen +| +,schliesslich den Wuerfel weitergeben. +| +Wer an der Reihe ist, wuerfelt und darf seine Figur, beginnend +| +mit der festgelegten Startfigur, entsprechend des Wuerfel- +| +ergebnisses setzen;danach ist der Naechste an der Reihe. +| +Sollte es passieren, dass man mit der gewuerfelten Augenzahl +| +auf ein Feld landet, welches von einer anderen Figur +| +unterschiedlicher Farbe besetzt ist, wird diese Figur ent- +| +sprechend aus dem Feld entfernt und auf ihr Startfeld +| +zurueckgelegt. +| +Sollte man eine 6 wuerfeln, bekommt dieser Spieler +| +einen weiteren Wurf und muss eine Figur +| +aus dem Anfangskreis ins Spiel bringen und +| +mit dem 2. freien Wurf weiter, entsprechend der Augenzahl, +| +zu setzen. In allen anderen Faellen, wie z.B einer Augenzahl von +| +5, bewegt man seine ausgewaehlte Figur um die +| +gewuerfelte Augenzahl. +| +Wuerfelt man eine 6, hat aber bereits alle 4 Figuren auf +| +den Weg gebracht, bzw. bereits teilweise im Ziel, kann man eine +| +beliebige Figur um 6 Felder bewegen und bekommt +| +zusaetzlich einen weiteren Wurf frei. +| +Ueber die im Weg stehenden eigenen und feindlichen Figuren +| +wird gesprungen, das besetzte Feld aber mitgezaehlt. +| +Hat eine Figur das aeussere Kreuz vollstaendig umrundet, so +| +rueckt dieselbe auf die Kreise ihrer Farbe ins Ziel ein. +| +In die Endfelder kann nur eingerueckt werden, wenn die +| +exakte Zahl auf die freien Felder gewuerfelt wird. +| +Wer zuerst seine 4 Figuren ins Ziel bringt, gewinnt, +| +aber das Spiel geht weiter +| +bis nur noch ein Spieler seine Figuren nicht ins Ziel gebracht hat. +| +| +Chaotisches Spiel: +| +| +Spieler spielen nicht nach reihenfolge + die Ki funktioniert nicht in diesem Modus +| +| +| \ No newline at end of file diff --git a/Menschärgeredichnicht5/bin/0.jpg b/Menschärgeredichnicht5/bin/0.jpg new file mode 100644 index 0000000..cc1bb35 Binary files /dev/null and b/Menschärgeredichnicht5/bin/0.jpg differ diff --git a/Menschärgeredichnicht5/bin/0Brett.jpg b/Menschärgeredichnicht5/bin/0Brett.jpg new file mode 100644 index 0000000..3110bc4 Binary files /dev/null and b/Menschärgeredichnicht5/bin/0Brett.jpg differ diff --git a/Menschärgeredichnicht5/bin/1.jpg b/Menschärgeredichnicht5/bin/1.jpg new file mode 100644 index 0000000..b728e9a Binary files /dev/null and b/Menschärgeredichnicht5/bin/1.jpg differ diff --git a/Menschärgeredichnicht5/bin/1Brett.jpg b/Menschärgeredichnicht5/bin/1Brett.jpg new file mode 100644 index 0000000..dae6bfe Binary files /dev/null and b/Menschärgeredichnicht5/bin/1Brett.jpg differ diff --git a/Menschärgeredichnicht5/bin/2.jpg b/Menschärgeredichnicht5/bin/2.jpg new file mode 100644 index 0000000..c7098e2 Binary files /dev/null and b/Menschärgeredichnicht5/bin/2.jpg differ diff --git a/Menschärgeredichnicht5/bin/2Brett.jpg b/Menschärgeredichnicht5/bin/2Brett.jpg new file mode 100644 index 0000000..c564e7d Binary files /dev/null and b/Menschärgeredichnicht5/bin/2Brett.jpg differ diff --git a/Menschärgeredichnicht5/bin/3.jpg b/Menschärgeredichnicht5/bin/3.jpg new file mode 100644 index 0000000..fd4f06c Binary files /dev/null and b/Menschärgeredichnicht5/bin/3.jpg differ diff --git a/Menschärgeredichnicht5/bin/4.jpg b/Menschärgeredichnicht5/bin/4.jpg new file mode 100644 index 0000000..91aed0e Binary files /dev/null and b/Menschärgeredichnicht5/bin/4.jpg differ diff --git a/Menschärgeredichnicht5/bin/5.jpg b/Menschärgeredichnicht5/bin/5.jpg new file mode 100644 index 0000000..a1eabe6 Binary files /dev/null and b/Menschärgeredichnicht5/bin/5.jpg differ diff --git a/Menschärgeredichnicht5/bin/6.jpg b/Menschärgeredichnicht5/bin/6.jpg new file mode 100644 index 0000000..dc1ecd6 Binary files /dev/null and b/Menschärgeredichnicht5/bin/6.jpg differ diff --git a/Menschärgeredichnicht5/bin/BildElement0.jpg b/Menschärgeredichnicht5/bin/BildElement0.jpg new file mode 100644 index 0000000..8caa455 Binary files /dev/null and b/Menschärgeredichnicht5/bin/BildElement0.jpg differ diff --git a/Menschärgeredichnicht5/bin/BildElement1.jpg b/Menschärgeredichnicht5/bin/BildElement1.jpg new file mode 100644 index 0000000..7e7a99d Binary files /dev/null and b/Menschärgeredichnicht5/bin/BildElement1.jpg differ diff --git a/Menschärgeredichnicht5/bin/BildElement2.jpg b/Menschärgeredichnicht5/bin/BildElement2.jpg new file mode 100644 index 0000000..481f424 Binary files /dev/null and b/Menschärgeredichnicht5/bin/BildElement2.jpg differ diff --git a/Menschärgeredichnicht5/bin/BildElement3.jpg b/Menschärgeredichnicht5/bin/BildElement3.jpg new file mode 100644 index 0000000..8bfdcef Binary files /dev/null and b/Menschärgeredichnicht5/bin/BildElement3.jpg differ diff --git a/Menschärgeredichnicht5/bin/BildElement4.jpg b/Menschärgeredichnicht5/bin/BildElement4.jpg new file mode 100644 index 0000000..fa652b5 Binary files /dev/null and b/Menschärgeredichnicht5/bin/BildElement4.jpg differ diff --git a/Menschärgeredichnicht5/bin/Credit.dat.txt b/Menschärgeredichnicht5/bin/Credit.dat.txt new file mode 100644 index 0000000..654eeee --- /dev/null +++ b/Menschärgeredichnicht5/bin/Credit.dat.txt @@ -0,0 +1,25 @@ +Credits: +| +| +| +Projektleiter: Laurin Vellmete +| +| +Chefprogrammierer: Andi Zaberxha +| +| +Co-Programmierer: Laurin Vellmete und Florian Krasniqi" +| +| +Designmanagement: Florian Krasniqi +| +| +Leiter der folgenden Aufgaben: +| + -Startoberflaeche/Menue: Florian Krasniqi +| + -Spieloberflaeche/Main-GUI: Laurin Vellmete +| + -Algorithmus/Implementierung +| + der Logik und Regeln: Andi Zaberxha \ No newline at end of file diff --git a/Menschärgeredichnicht5/bin/Feld.class b/Menschärgeredichnicht5/bin/Feld.class new file mode 100644 index 0000000..de44386 Binary files /dev/null and b/Menschärgeredichnicht5/bin/Feld.class differ diff --git a/Menschärgeredichnicht5/bin/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml b/Menschärgeredichnicht5/bin/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml new file mode 100644 index 0000000..7afc088 --- /dev/null +++ b/Menschärgeredichnicht5/bin/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml @@ -0,0 +1,104 @@ +[Files] +File0=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Feld.java +File1=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Figur.java +File2=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\KI.java +File3=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Menue.java +File4=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\SpielOberflaeche.java +File5=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Steuerung.java +File6=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\textTool.java + +[Box: - Feld] +X=1498 +Y=173 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Figur] +X=1450 +Y=677 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - KI] +X=1236 +Y=61 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Menue] +X=20 +Y=40 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - SpielOberflaeche] +X=579 +Y=731 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Steuerung] +X=671 +Y=28 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - textTool] +X=56 +Y=700 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Diagram] +comments=0 +OffsetX=0 +OffsetY=0 +Visibility=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +ShowConnections=0 +Fontname=Segoe UI +Fontsize=8 +ShowObjectDiagram=0 + +[Connections] +V0=Feld#Figur#AssociationDirected###0..1#0#0#-1##dieFigur#0#0 +V1=KI#Steuerung#AssociationBidirectional#0..3##1#0#0#-1#derComputer[]#dieSteuerung#0#0 +V2=Menue#textTool#AssociationDirected###1#0#0#-1##dasTool#0#0 +V3=Menue#SpielOberflaeche#AssociationBidirectional#1##1#0#0#-1#dasMenue#dieGUI#0#0 +V4=SpielOberflaeche#Steuerung#AssociationBidirectional#1##1#0#0#-1#dieGUI#dieSteuerung#0#0 +V5=Steuerung#Feld#AssociationDirected###39#0#0#-1#\r\n#\r\ndasFeld[]#0#0 +V6=Steuerung#Figur#AssociationDirected## #4, 4#0#0#-1##dieFiguren[][]#0#0 + +[Interactive] +I0= + diff --git a/Menschärgeredichnicht5/bin/Figur.class b/Menschärgeredichnicht5/bin/Figur.class new file mode 100644 index 0000000..e2179d1 Binary files /dev/null and b/Menschärgeredichnicht5/bin/Figur.class differ diff --git a/Menschärgeredichnicht5/bin/KI.class b/Menschärgeredichnicht5/bin/KI.class new file mode 100644 index 0000000..bb3b48b Binary files /dev/null and b/Menschärgeredichnicht5/bin/KI.class differ diff --git a/Menschärgeredichnicht5/bin/Menue$1.class b/Menschärgeredichnicht5/bin/Menue$1.class new file mode 100644 index 0000000..1fe3cc3 Binary files /dev/null and b/Menschärgeredichnicht5/bin/Menue$1.class differ diff --git a/Menschärgeredichnicht5/bin/Menue.class b/Menschärgeredichnicht5/bin/Menue.class new file mode 100644 index 0000000..8e84d30 Binary files /dev/null and b/Menschärgeredichnicht5/bin/Menue.class differ diff --git a/Menschärgeredichnicht5/bin/Menuehintergrund.jfif b/Menschärgeredichnicht5/bin/Menuehintergrund.jfif new file mode 100644 index 0000000..13625ec Binary files /dev/null and b/Menschärgeredichnicht5/bin/Menuehintergrund.jfif differ diff --git a/Menschärgeredichnicht5/bin/Regeln.dat.txt b/Menschärgeredichnicht5/bin/Regeln.dat.txt new file mode 100644 index 0000000..a5d3e3a --- /dev/null +++ b/Menschärgeredichnicht5/bin/Regeln.dat.txt @@ -0,0 +1,94 @@ +Allgemeine Regeln: +| +| +| +In Mensch aergere Dich nicht geht es grob darum, +| +dass jeder versucht, seine 4 Spielfiguren als Erster +| +ins Ziel bringen und die Gegenspieler moeglichst oft rauszusch-meissen. +| +Das Spiel beginnt damit, dass jeder Spieler 4 Spielfiguren einer Farbe besitzt. +| +Diese werden auf den Anfangskreis der gleichen Farbe gesetzt. +| +Wer am Zug ist, ist in diesem Programm von der jeweiligen +| +Farbe abhaengig: Rot, Blau, Gelb und dann Gruen. +| +Jeder Spieler hat nun zunaechst nur einziges Mal 3 Wuerfe, +| +danach nur noch einen, um zu versuchen eine Spielfigur auf +| +das Brett zu bekommen, die nur mit der Augenzahl 6 moeglich +| +ist. +| +Sollte man es geschafft haben, darf man bei einer gewuerfelten 6 ein weiteres Mal wuerfeln und, wie in allen anderen Faellen +| +,schliesslich den Wuerfel weitergeben. +| +Wer an der Reihe ist, wuerfelt und darf seine Figur, beginnend +| +mit der festgelegten Startfigur, entsprechend des Wuerfel- +| +ergebnisses setzen;danach ist der Naechste an der Reihe. +| +Sollte es passieren, dass man mit der gewuerfelten Augenzahl +| +auf ein Feld landet, welches von einer anderen Figur +| +unterschiedlicher Farbe besetzt ist, wird diese Figur ent- +| +sprechend aus dem Feld entfernt und auf ihr Startfeld +| +zurueckgelegt. +| +Sollte man eine 6 wuerfeln, bekommt dieser Spieler +| +einen weiteren Wurf und muss eine Figur +| +aus dem Anfangskreis ins Spiel bringen und +| +mit dem 2. freien Wurf weiter, entsprechend der Augenzahl, +| +zu setzen. In allen anderen Faellen, wie z.B einer Augenzahl von +| +5, bewegt man seine ausgewaehlte Figur um die +| +gewuerfelte Augenzahl. +| +Wuerfelt man eine 6, hat aber bereits alle 4 Figuren auf +| +den Weg gebracht, bzw. bereits teilweise im Ziel, kann man eine +| +beliebige Figur um 6 Felder bewegen und bekommt +| +zusaetzlich einen weiteren Wurf frei. +| +Ueber die im Weg stehenden eigenen und feindlichen Figuren +| +wird gesprungen, das besetzte Feld aber mitgezaehlt. +| +Hat eine Figur das aeussere Kreuz vollstaendig umrundet, so +| +rueckt dieselbe auf die Kreise ihrer Farbe ins Ziel ein. +| +In die Endfelder kann nur eingerueckt werden, wenn die +| +exakte Zahl auf die freien Felder gewuerfelt wird. +| +Wer zuerst seine 4 Figuren ins Ziel bringt, gewinnt, +| +aber das Spiel geht weiter +| +bis nur noch ein Spieler seine Figuren nicht ins Ziel gebracht hat. +| +| +Chaotisches Spiel: +| +| +Spieler spielen nicht nach reihenfolge + die Ki funktioniert nicht in diesem Modus +| +| +| \ No newline at end of file diff --git a/Menschärgeredichnicht5/bin/SpielOberflaeche$1.class b/Menschärgeredichnicht5/bin/SpielOberflaeche$1.class new file mode 100644 index 0000000..d53756b Binary files /dev/null and b/Menschärgeredichnicht5/bin/SpielOberflaeche$1.class differ diff --git a/Menschärgeredichnicht5/bin/SpielOberflaeche.class b/Menschärgeredichnicht5/bin/SpielOberflaeche.class new file mode 100644 index 0000000..31e7d28 Binary files /dev/null and b/Menschärgeredichnicht5/bin/SpielOberflaeche.class differ diff --git a/Menschärgeredichnicht5/bin/Steuerung.class b/Menschärgeredichnicht5/bin/Steuerung.class new file mode 100644 index 0000000..e167c36 Binary files /dev/null and b/Menschärgeredichnicht5/bin/Steuerung.class differ diff --git a/Menschärgeredichnicht5/bin/blau0.jpg b/Menschärgeredichnicht5/bin/blau0.jpg new file mode 100644 index 0000000..72899b3 Binary files /dev/null and b/Menschärgeredichnicht5/bin/blau0.jpg differ diff --git a/Menschärgeredichnicht5/bin/blau1.jpg b/Menschärgeredichnicht5/bin/blau1.jpg new file mode 100644 index 0000000..efd0682 Binary files /dev/null and b/Menschärgeredichnicht5/bin/blau1.jpg differ diff --git a/Menschärgeredichnicht5/bin/blau2.jpg b/Menschärgeredichnicht5/bin/blau2.jpg new file mode 100644 index 0000000..b3acf44 Binary files /dev/null and b/Menschärgeredichnicht5/bin/blau2.jpg differ diff --git a/Menschärgeredichnicht5/bin/gelb0.jpg b/Menschärgeredichnicht5/bin/gelb0.jpg new file mode 100644 index 0000000..3937e99 Binary files /dev/null and b/Menschärgeredichnicht5/bin/gelb0.jpg differ diff --git a/Menschärgeredichnicht5/bin/gelb1.jpg b/Menschärgeredichnicht5/bin/gelb1.jpg new file mode 100644 index 0000000..07ff2a8 Binary files /dev/null and b/Menschärgeredichnicht5/bin/gelb1.jpg differ diff --git a/Menschärgeredichnicht5/bin/gelb2.jpg b/Menschärgeredichnicht5/bin/gelb2.jpg new file mode 100644 index 0000000..0414a48 Binary files /dev/null and b/Menschärgeredichnicht5/bin/gelb2.jpg differ diff --git a/Menschärgeredichnicht5/bin/gruen0.jpg b/Menschärgeredichnicht5/bin/gruen0.jpg new file mode 100644 index 0000000..427bc5b Binary files /dev/null and b/Menschärgeredichnicht5/bin/gruen0.jpg differ diff --git a/Menschärgeredichnicht5/bin/gruen1.jpg b/Menschärgeredichnicht5/bin/gruen1.jpg new file mode 100644 index 0000000..fcea345 Binary files /dev/null and b/Menschärgeredichnicht5/bin/gruen1.jpg differ diff --git a/Menschärgeredichnicht5/bin/gruen2.jpg b/Menschärgeredichnicht5/bin/gruen2.jpg new file mode 100644 index 0000000..02056d8 Binary files /dev/null and b/Menschärgeredichnicht5/bin/gruen2.jpg differ diff --git a/Menschärgeredichnicht5/bin/rahmen0.png b/Menschärgeredichnicht5/bin/rahmen0.png new file mode 100644 index 0000000..42cb630 Binary files /dev/null and b/Menschärgeredichnicht5/bin/rahmen0.png differ diff --git a/Menschärgeredichnicht5/bin/rahmen1.png b/Menschärgeredichnicht5/bin/rahmen1.png new file mode 100644 index 0000000..90a7889 Binary files /dev/null and b/Menschärgeredichnicht5/bin/rahmen1.png differ diff --git a/Menschärgeredichnicht5/bin/rahmen2.png b/Menschärgeredichnicht5/bin/rahmen2.png new file mode 100644 index 0000000..d20a3ef Binary files /dev/null and b/Menschärgeredichnicht5/bin/rahmen2.png differ diff --git a/Menschärgeredichnicht5/bin/rahmen3.png b/Menschärgeredichnicht5/bin/rahmen3.png new file mode 100644 index 0000000..b5afdcb Binary files /dev/null and b/Menschärgeredichnicht5/bin/rahmen3.png differ diff --git a/Menschärgeredichnicht5/bin/rot0.jpg b/Menschärgeredichnicht5/bin/rot0.jpg new file mode 100644 index 0000000..b8a6f0d Binary files /dev/null and b/Menschärgeredichnicht5/bin/rot0.jpg differ diff --git a/Menschärgeredichnicht5/bin/rot1.jpg b/Menschärgeredichnicht5/bin/rot1.jpg new file mode 100644 index 0000000..fd15ba9 Binary files /dev/null and b/Menschärgeredichnicht5/bin/rot1.jpg differ diff --git a/Menschärgeredichnicht5/bin/rot2.jpg b/Menschärgeredichnicht5/bin/rot2.jpg new file mode 100644 index 0000000..6b55a89 Binary files /dev/null and b/Menschärgeredichnicht5/bin/rot2.jpg differ diff --git a/Menschärgeredichnicht5/bin/textTool.class b/Menschärgeredichnicht5/bin/textTool.class new file mode 100644 index 0000000..33389fa Binary files /dev/null and b/Menschärgeredichnicht5/bin/textTool.class differ diff --git a/Menschärgeredichnicht5/blau0.jpg b/Menschärgeredichnicht5/blau0.jpg new file mode 100644 index 0000000..72899b3 Binary files /dev/null and b/Menschärgeredichnicht5/blau0.jpg differ diff --git a/Menschärgeredichnicht5/blau1.jpg b/Menschärgeredichnicht5/blau1.jpg new file mode 100644 index 0000000..efd0682 Binary files /dev/null and b/Menschärgeredichnicht5/blau1.jpg differ diff --git a/Menschärgeredichnicht5/blau2.jpg b/Menschärgeredichnicht5/blau2.jpg new file mode 100644 index 0000000..b3acf44 Binary files /dev/null and b/Menschärgeredichnicht5/blau2.jpg differ diff --git a/Menschärgeredichnicht5/gelb0.jpg b/Menschärgeredichnicht5/gelb0.jpg new file mode 100644 index 0000000..3937e99 Binary files /dev/null and b/Menschärgeredichnicht5/gelb0.jpg differ diff --git a/Menschärgeredichnicht5/gelb1.jpg b/Menschärgeredichnicht5/gelb1.jpg new file mode 100644 index 0000000..07ff2a8 Binary files /dev/null and b/Menschärgeredichnicht5/gelb1.jpg differ diff --git a/Menschärgeredichnicht5/gelb2.jpg b/Menschärgeredichnicht5/gelb2.jpg new file mode 100644 index 0000000..0414a48 Binary files /dev/null and b/Menschärgeredichnicht5/gelb2.jpg differ diff --git a/Menschärgeredichnicht5/gruen0.jpg b/Menschärgeredichnicht5/gruen0.jpg new file mode 100644 index 0000000..427bc5b Binary files /dev/null and b/Menschärgeredichnicht5/gruen0.jpg differ diff --git a/Menschärgeredichnicht5/gruen1.jpg b/Menschärgeredichnicht5/gruen1.jpg new file mode 100644 index 0000000..fcea345 Binary files /dev/null and b/Menschärgeredichnicht5/gruen1.jpg differ diff --git a/Menschärgeredichnicht5/gruen2.jpg b/Menschärgeredichnicht5/gruen2.jpg new file mode 100644 index 0000000..02056d8 Binary files /dev/null and b/Menschärgeredichnicht5/gruen2.jpg differ diff --git a/Menschärgeredichnicht5/rahmen0.png b/Menschärgeredichnicht5/rahmen0.png new file mode 100644 index 0000000..42cb630 Binary files /dev/null and b/Menschärgeredichnicht5/rahmen0.png differ diff --git a/Menschärgeredichnicht5/rahmen1.png b/Menschärgeredichnicht5/rahmen1.png new file mode 100644 index 0000000..90a7889 Binary files /dev/null and b/Menschärgeredichnicht5/rahmen1.png differ diff --git a/Menschärgeredichnicht5/rahmen2.png b/Menschärgeredichnicht5/rahmen2.png new file mode 100644 index 0000000..d20a3ef Binary files /dev/null and b/Menschärgeredichnicht5/rahmen2.png differ diff --git a/Menschärgeredichnicht5/rahmen3.png b/Menschärgeredichnicht5/rahmen3.png new file mode 100644 index 0000000..b5afdcb Binary files /dev/null and b/Menschärgeredichnicht5/rahmen3.png differ diff --git a/Menschärgeredichnicht5/rot0.jpg b/Menschärgeredichnicht5/rot0.jpg new file mode 100644 index 0000000..b8a6f0d Binary files /dev/null and b/Menschärgeredichnicht5/rot0.jpg differ diff --git a/Menschärgeredichnicht5/rot1.jpg b/Menschärgeredichnicht5/rot1.jpg new file mode 100644 index 0000000..fd15ba9 Binary files /dev/null and b/Menschärgeredichnicht5/rot1.jpg differ diff --git a/Menschärgeredichnicht5/rot2.jpg b/Menschärgeredichnicht5/rot2.jpg new file mode 100644 index 0000000..6b55a89 Binary files /dev/null and b/Menschärgeredichnicht5/rot2.jpg differ diff --git a/Menschärgeredichnicht5/src/0.jpg b/Menschärgeredichnicht5/src/0.jpg new file mode 100644 index 0000000..cc1bb35 Binary files /dev/null and b/Menschärgeredichnicht5/src/0.jpg differ diff --git a/Menschärgeredichnicht5/src/0Brett.jpg b/Menschärgeredichnicht5/src/0Brett.jpg new file mode 100644 index 0000000..3110bc4 Binary files /dev/null and b/Menschärgeredichnicht5/src/0Brett.jpg differ diff --git a/Menschärgeredichnicht5/src/1.jpg b/Menschärgeredichnicht5/src/1.jpg new file mode 100644 index 0000000..b728e9a Binary files /dev/null and b/Menschärgeredichnicht5/src/1.jpg differ diff --git a/Menschärgeredichnicht5/src/1Brett.jpg b/Menschärgeredichnicht5/src/1Brett.jpg new file mode 100644 index 0000000..dae6bfe Binary files /dev/null and b/Menschärgeredichnicht5/src/1Brett.jpg differ diff --git a/Menschärgeredichnicht5/src/2.jpg b/Menschärgeredichnicht5/src/2.jpg new file mode 100644 index 0000000..c7098e2 Binary files /dev/null and b/Menschärgeredichnicht5/src/2.jpg differ diff --git a/Menschärgeredichnicht5/src/2Brett.jpg b/Menschärgeredichnicht5/src/2Brett.jpg new file mode 100644 index 0000000..c564e7d Binary files /dev/null and b/Menschärgeredichnicht5/src/2Brett.jpg differ diff --git a/Menschärgeredichnicht5/src/3.jpg b/Menschärgeredichnicht5/src/3.jpg new file mode 100644 index 0000000..fd4f06c Binary files /dev/null and b/Menschärgeredichnicht5/src/3.jpg differ diff --git a/Menschärgeredichnicht5/src/4.jpg b/Menschärgeredichnicht5/src/4.jpg new file mode 100644 index 0000000..91aed0e Binary files /dev/null and b/Menschärgeredichnicht5/src/4.jpg differ diff --git a/Menschärgeredichnicht5/src/5.jpg b/Menschärgeredichnicht5/src/5.jpg new file mode 100644 index 0000000..a1eabe6 Binary files /dev/null and b/Menschärgeredichnicht5/src/5.jpg differ diff --git a/Menschärgeredichnicht5/src/6.jpg b/Menschärgeredichnicht5/src/6.jpg new file mode 100644 index 0000000..dc1ecd6 Binary files /dev/null and b/Menschärgeredichnicht5/src/6.jpg differ diff --git a/Menschärgeredichnicht5/src/BildElement0.jpg b/Menschärgeredichnicht5/src/BildElement0.jpg new file mode 100644 index 0000000..8caa455 Binary files /dev/null and b/Menschärgeredichnicht5/src/BildElement0.jpg differ diff --git a/Menschärgeredichnicht5/src/BildElement1.jpg b/Menschärgeredichnicht5/src/BildElement1.jpg new file mode 100644 index 0000000..7e7a99d Binary files /dev/null and b/Menschärgeredichnicht5/src/BildElement1.jpg differ diff --git a/Menschärgeredichnicht5/src/BildElement2.jpg b/Menschärgeredichnicht5/src/BildElement2.jpg new file mode 100644 index 0000000..481f424 Binary files /dev/null and b/Menschärgeredichnicht5/src/BildElement2.jpg differ diff --git a/Menschärgeredichnicht5/src/BildElement3.jpg b/Menschärgeredichnicht5/src/BildElement3.jpg new file mode 100644 index 0000000..8bfdcef Binary files /dev/null and b/Menschärgeredichnicht5/src/BildElement3.jpg differ diff --git a/Menschärgeredichnicht5/src/BildElement4.jpg b/Menschärgeredichnicht5/src/BildElement4.jpg new file mode 100644 index 0000000..fa652b5 Binary files /dev/null and b/Menschärgeredichnicht5/src/BildElement4.jpg differ diff --git a/Menschärgeredichnicht5/src/Credit.dat.txt b/Menschärgeredichnicht5/src/Credit.dat.txt new file mode 100644 index 0000000..654eeee --- /dev/null +++ b/Menschärgeredichnicht5/src/Credit.dat.txt @@ -0,0 +1,25 @@ +Credits: +| +| +| +Projektleiter: Laurin Vellmete +| +| +Chefprogrammierer: Andi Zaberxha +| +| +Co-Programmierer: Laurin Vellmete und Florian Krasniqi" +| +| +Designmanagement: Florian Krasniqi +| +| +Leiter der folgenden Aufgaben: +| + -Startoberflaeche/Menue: Florian Krasniqi +| + -Spieloberflaeche/Main-GUI: Laurin Vellmete +| + -Algorithmus/Implementierung +| + der Logik und Regeln: Andi Zaberxha \ No newline at end of file diff --git a/Menschärgeredichnicht5/src/Feld.class b/Menschärgeredichnicht5/src/Feld.class new file mode 100644 index 0000000..9e97ab2 Binary files /dev/null and b/Menschärgeredichnicht5/src/Feld.class differ diff --git a/Menschärgeredichnicht5/src/Feld.java b/Menschärgeredichnicht5/src/Feld.java new file mode 100644 index 0000000..3170680 --- /dev/null +++ b/Menschärgeredichnicht5/src/Feld.java @@ -0,0 +1,20 @@ + +public class Feld { + private int feldNR; + private boolean istbesetzt; + private Figur dieFigur = null; + private int richtung; // 0 = oben 1 = unten 2 = links 3= rechts 4 = nichts ende für: 5=rot 6=gelb 7=blau 8 = grün + public Feld(int pRicht) { + richtung = pRicht; + } + public int getRichtung() { + return richtung; + } + public void setzeFigur(Figur pFigur) { + dieFigur = pFigur; + } + public Figur holeFigur() { + return dieFigur; + } + +} diff --git a/Menschärgeredichnicht5/src/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml b/Menschärgeredichnicht5/src/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml new file mode 100644 index 0000000..7afc088 --- /dev/null +++ b/Menschärgeredichnicht5/src/FeldFigurKIMenueSpielOberflaecheSteuerungtextTool.uml @@ -0,0 +1,104 @@ +[Files] +File0=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Feld.java +File1=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Figur.java +File2=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\KI.java +File3=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Menue.java +File4=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\SpielOberflaeche.java +File5=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\Steuerung.java +File6=D:\MenschÄrgereDichNicht\Menschärgeredichnicht5\src\textTool.java + +[Box: - Feld] +X=1498 +Y=173 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Figur] +X=1450 +Y=677 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - KI] +X=1236 +Y=61 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Menue] +X=20 +Y=40 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - SpielOberflaeche] +X=579 +Y=731 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - Steuerung] +X=671 +Y=28 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Box: - textTool] +X=56 +Y=700 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +FontSize=8 +FontName=Segoe UI + +[Diagram] +comments=0 +OffsetX=0 +OffsetY=0 +Visibility=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +ShowConnections=0 +Fontname=Segoe UI +Fontsize=8 +ShowObjectDiagram=0 + +[Connections] +V0=Feld#Figur#AssociationDirected###0..1#0#0#-1##dieFigur#0#0 +V1=KI#Steuerung#AssociationBidirectional#0..3##1#0#0#-1#derComputer[]#dieSteuerung#0#0 +V2=Menue#textTool#AssociationDirected###1#0#0#-1##dasTool#0#0 +V3=Menue#SpielOberflaeche#AssociationBidirectional#1##1#0#0#-1#dasMenue#dieGUI#0#0 +V4=SpielOberflaeche#Steuerung#AssociationBidirectional#1##1#0#0#-1#dieGUI#dieSteuerung#0#0 +V5=Steuerung#Feld#AssociationDirected###39#0#0#-1#\r\n#\r\ndasFeld[]#0#0 +V6=Steuerung#Figur#AssociationDirected## #4, 4#0#0#-1##dieFiguren[][]#0#0 + +[Interactive] +I0= + diff --git a/Menschärgeredichnicht5/src/Figur.class b/Menschärgeredichnicht5/src/Figur.class new file mode 100644 index 0000000..f419be4 Binary files /dev/null and b/Menschärgeredichnicht5/src/Figur.class differ diff --git a/Menschärgeredichnicht5/src/Figur.java b/Menschärgeredichnicht5/src/Figur.java new file mode 100644 index 0000000..8e287a2 --- /dev/null +++ b/Menschärgeredichnicht5/src/Figur.java @@ -0,0 +1,68 @@ + +public class Figur { + // 5rot 6gelb 7blau 8gr�n + private int farbe; + private int figurNummer; + private boolean istSpieler; + private boolean istimFeld = false; + private int feldStelle; + private int endfeldStelle; + private int richtung; + private boolean istimEndFeld =false; + + public Figur(int pfarbe, int pfigurNummer) { + farbe = pfarbe; + figurNummer = pfigurNummer; + } + + public int holeStelle() { + return feldStelle; + } + + public int holeFigurNummer() { + return figurNummer; + } + + public void setzestelle(int px) { + feldStelle = px; + } + + public void bewegeFigur() { + feldStelle += richtung; + } + + public boolean istImFeld() { + return istimFeld; + } + + public int holeRichtung() { + return richtung; + } + + public void setzeRichtung(int pRichtung) { + richtung = pRichtung; + } + + public void setzteobinSpielfeld(boolean istImFeld) { + this.istimFeld = istImFeld; + } + + public int holeFarbe() { + return farbe; + } + + public int holeEndFeldstelle() { + return endfeldStelle; + } + + public void setzeEndFeldstelle(int pendFeldStelle) { + endfeldStelle = pendFeldStelle; + } + public boolean istImEndFeld() { + return istimEndFeld; + } + public void setzteobinEndfeld(boolean pistImEndFeld) { + istimEndFeld = pistImEndFeld; + } + +} diff --git a/Menschärgeredichnicht5/src/KI.class b/Menschärgeredichnicht5/src/KI.class new file mode 100644 index 0000000..445de26 Binary files /dev/null and b/Menschärgeredichnicht5/src/KI.class differ diff --git a/Menschärgeredichnicht5/src/KI.java b/Menschärgeredichnicht5/src/KI.java new file mode 100644 index 0000000..88de097 --- /dev/null +++ b/Menschärgeredichnicht5/src/KI.java @@ -0,0 +1,22 @@ + // Ende Attribute1 + // Anfang Methoden1 + // Ende Methoden1 + +public class KI { + // Anfang Attribute + private int spieler = 0; + private Steuerung dieSteu; + private int zuege[] = new int[4]; + // Ende Attribute + + public KI(Steuerung pdieSteu, int pspieler) { + spieler = pspieler; + dieSteu = pdieSteu; + } + // Anfang Methoden + + public void berechneZugWert(int figur) { + dieSteu.kIZug(spieler, figur); + } + // Ende Methoden +} diff --git a/Menschärgeredichnicht5/src/Menue$1.class b/Menschärgeredichnicht5/src/Menue$1.class new file mode 100644 index 0000000..41e1e6e Binary files /dev/null and b/Menschärgeredichnicht5/src/Menue$1.class differ diff --git a/Menschärgeredichnicht5/src/Menue.class b/Menschärgeredichnicht5/src/Menue.class new file mode 100644 index 0000000..8506bd2 Binary files /dev/null and b/Menschärgeredichnicht5/src/Menue.class differ diff --git a/Menschärgeredichnicht5/src/Menue.java b/Menschärgeredichnicht5/src/Menue.java new file mode 100644 index 0000000..a7a5848 --- /dev/null +++ b/Menschärgeredichnicht5/src/Menue.java @@ -0,0 +1,211 @@ +import javax.swing.*; +import javax.swing.event.*; +import java.util.*; +import java.awt.*; +import java.awt.event.*; + +public class Menue extends JFrame implements ActionListener { + private textTool dasTool = new textTool(); + private String[] brettspielArten = { "Klassisch", "Futuristisch", "Altmodisch", "" }; + private String[] modiArten = { "Normal", "Chaotisch" }; + private JFrame menueOberflaeche = new JFrame(); + private JLabel[] menueElemente = new JLabel[5]; + private JLabel startMenueBild; + private JTextArea ruleTextArea = new JTextArea(""); + private JScrollPane ruleTextAreaScrollPane = new JScrollPane(ruleTextArea); + private JTextArea creditTextArea = new JTextArea(""); + private JScrollPane creditTextAreaScrollPane = new JScrollPane(creditTextArea); + private JButton startButton; + private JButton einstellungsButton; + private JButton creditButton; + private JButton regelButton; + private JButton zurueckButton; + private ImageIcon[] startElement = new ImageIcon[5]; + private SpinnerNumberModel zahlenListe; + private JSpinner mitspielerAnz; + private JComboBox brettspielArtenAnzeige; + private JComboBox modiArtenAnzeige; + private SpielOberflaeche dieGUI; + + public Menue(SpielOberflaeche pdieGUI) { + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setSize(1295, 720); + setLayout(null); + for (int i = 0; i < 5; i++) { + startElement[i] = new ImageIcon("BildElement" + i + ".jpg"); + } + erstelleGUI(); + erstelleMenue(); + setVisible(true); + + dieGUI = pdieGUI; + ruleTextArea.setText(dasTool.datenLesen("Regeln.dat.txt")); + creditTextArea.setText(dasTool.datenLesen("Credit.dat.txt")); + } + + private void erstelleGUI() { + // StartGUI + startMenueBild = erstelleLabel("", 0, 0, 1280, 720, true); + startMenueBild.setIcon(startElement[0]); + startButton = erstelleButton("", 510, 456, 206, 74, "main"); + startButton.setIcon(startElement[1]); + einstellungsButton = erstelleButton("", 1164, 22, 93, 77, "main"); + einstellungsButton.setIcon(startElement[2]); + } + + private void erstelleMenue() { + menueOberflaeche.setLayout(null); + menueOberflaeche.setBounds(380, 150, 400, 400); + bereiteMenueVor(); + menueOberflaeche.addWindowListener(new java.awt.event.WindowAdapter() { + @Override + public void windowClosing(java.awt.event.WindowEvent windowEvent) { + zurueckZuDenSettings(); + schliesseEinstellungen(); + } + }); + zahlenListe = new SpinnerNumberModel(4, 1, 4, 1); + mitspielerAnz = new JSpinner(zahlenListe); + mitspielerAnz.setBounds(250, 55, 50, 30); + menueOberflaeche.add(mitspielerAnz); + } + + private void bereiteMenueVor() { + // EinstellMenue + menueOberflaeche.getContentPane().setBackground(Color.black); + menueElemente[0] = erstelleLabel("Einstellungen", 150, 5, 95, 20, false); + menueElemente[1] = erstelleLabel("", 147, 25, 95, 5, false); + menueElemente[1].setIcon(startElement[3]); + menueElemente[2] = erstelleLabel("Spieleranzahl", 45, 55, 95, 20, false); + menueElemente[3] = erstelleLabel("Brettspielhintergrund", 45, 105, 160, 20, false); + brettspielArtenAnzeige = new JComboBox(brettspielArten); + brettspielArtenAnzeige.setBounds(250, 105, 100, 25); + menueOberflaeche.add(brettspielArtenAnzeige); + menueElemente[4] = erstelleLabel("Spielmodus", 45, 155, 95, 20, false); + modiArtenAnzeige = new JComboBox(modiArten); + modiArtenAnzeige.setBounds(250, 155, 100, 25); + menueOberflaeche.add(modiArtenAnzeige); + regelButton = erstelleButton("Regeln", 45, 260, 80, 30, "sub"); + creditButton = erstelleButton("Credits", 45, 300, 80, 30, "sub"); + zurueckButton = erstelleButton("", 5, 5, 45, 35, "sub"); + zurueckButton.setIcon(startElement[4]); + zurueckButton.setVisible(false); + + // Regeln + ruleTextAreaScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + ruleTextArea.setLineWrap(true); + menueOberflaeche.add(ruleTextAreaScrollPane); + ruleTextAreaScrollPane.setBounds(7, 45, 375, 312); + ruleTextArea.setBackground(Color.BLACK); + ruleTextArea.setForeground(Color.WHITE); + ruleTextAreaScrollPane.setVisible(false); + ruleTextArea.setEditable(false); + + // Credits + creditTextAreaScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + creditTextArea.setLineWrap(true); + menueOberflaeche.add(creditTextAreaScrollPane); + creditTextAreaScrollPane.setBounds(15, 45, 360, 312); + creditTextArea.setBackground(Color.BLACK); + creditTextArea.setForeground(Color.WHITE); + creditTextAreaScrollPane.setVisible(false); + creditTextArea.setEditable(false); + } + + private JButton erstelleButton(String pText, int xPos, int yPos, int xGroesse, int yGroesse, String anzeigeStelle) { + JButton l_Object = new JButton(pText); + l_Object.setBounds(xPos, yPos, xGroesse, yGroesse); + l_Object.setVisible(true); + l_Object.addActionListener(this); + if (anzeigeStelle.equals("sub")) { + menueOberflaeche.add(l_Object); + } else { + add(l_Object); + } // end of if-else + return l_Object; + } + + private JLabel erstelleLabel(String pText, int xPos, int yPos, int xGroesse, int yGroesse, boolean pFuerMainGUI) { + JLabel l_Object = new JLabel(pText); + l_Object.setBounds(xPos, yPos, xGroesse, yGroesse); + if (pFuerMainGUI == true) { + l_Object.setForeground(Color.black); + add(l_Object); + } else { + l_Object.setForeground(Color.white); + l_Object.setFont(new Font("Impact", Font.PLAIN, 16)); + menueOberflaeche.add(l_Object); + } // end of if-else + l_Object.setVisible(true); + return l_Object; + } + + public void actionPerformed(ActionEvent ae) { + if (ae.getSource() == this.startButton) { + System.out.println("" + brettspielArtenAnzeige.getSelectedIndex() + " " + + modiArtenAnzeige.getSelectedIndex() + " " + (int) mitspielerAnz.getValue()); + dieGUI.uebergebeWerte(brettspielArtenAnzeige.getSelectedIndex(), modiArtenAnzeige.getSelectedIndex(), + (int) mitspielerAnz.getValue()); + + } else if (ae.getSource() == this.einstellungsButton) { + oeffneEinstellungen(); + } // end of if + else if (ae.getSource() == this.regelButton) { + regelnTauchenAuf(); + } else if (ae.getSource() == this.creditButton) { + creditsTauchenAuf(); + } else if (ae.getSource() == this.zurueckButton) { + zurueckZuDenSettings(); + } + } + + private void oeffneEinstellungen() { + startButton.setVisible(false); + einstellungsButton.setVisible(false); + menueOberflaeche.setVisible(true); + } + + private void schliesseEinstellungen() { + startButton.setVisible(true); + einstellungsButton.setVisible(true); + menueOberflaeche.setVisible(false); + } + + private void einstellungsElementeVerschwinden() { + for (int i = 0; i < 5; i++) { + menueElemente[i].setVisible(false); + } // end of for + modiArtenAnzeige.setVisible(false); + brettspielArtenAnzeige.setVisible(false); + regelButton.setVisible(false); + creditButton.setVisible(false); + mitspielerAnz.setVisible(false); + } + + private void regelnTauchenAuf() { + einstellungsElementeVerschwinden(); + ruleTextAreaScrollPane.setVisible(true); + zurueckButton.setVisible(true); + } + + private void creditsTauchenAuf() { + einstellungsElementeVerschwinden(); + creditTextAreaScrollPane.setVisible(true); + zurueckButton.setVisible(true); + } + + private void zurueckZuDenSettings() { + // ZurcksetzenDerEinstellungsGUI + for (int i = 0; i < 5; i++) { + menueElemente[i].setVisible(true); + } // end of for + modiArtenAnzeige.setVisible(true); + brettspielArtenAnzeige.setVisible(true); + regelButton.setVisible(true); + creditButton.setVisible(true); + mitspielerAnz.setVisible(true); + ruleTextAreaScrollPane.setVisible(false); + creditTextAreaScrollPane.setVisible(false); + zurueckButton.setVisible(false); + } +} diff --git a/Menschärgeredichnicht5/src/Menuehintergrund.jfif b/Menschärgeredichnicht5/src/Menuehintergrund.jfif new file mode 100644 index 0000000..13625ec Binary files /dev/null and b/Menschärgeredichnicht5/src/Menuehintergrund.jfif differ diff --git a/Menschärgeredichnicht5/src/Regeln.dat.txt b/Menschärgeredichnicht5/src/Regeln.dat.txt new file mode 100644 index 0000000..a5d3e3a --- /dev/null +++ b/Menschärgeredichnicht5/src/Regeln.dat.txt @@ -0,0 +1,94 @@ +Allgemeine Regeln: +| +| +| +In Mensch aergere Dich nicht geht es grob darum, +| +dass jeder versucht, seine 4 Spielfiguren als Erster +| +ins Ziel bringen und die Gegenspieler moeglichst oft rauszusch-meissen. +| +Das Spiel beginnt damit, dass jeder Spieler 4 Spielfiguren einer Farbe besitzt. +| +Diese werden auf den Anfangskreis der gleichen Farbe gesetzt. +| +Wer am Zug ist, ist in diesem Programm von der jeweiligen +| +Farbe abhaengig: Rot, Blau, Gelb und dann Gruen. +| +Jeder Spieler hat nun zunaechst nur einziges Mal 3 Wuerfe, +| +danach nur noch einen, um zu versuchen eine Spielfigur auf +| +das Brett zu bekommen, die nur mit der Augenzahl 6 moeglich +| +ist. +| +Sollte man es geschafft haben, darf man bei einer gewuerfelten 6 ein weiteres Mal wuerfeln und, wie in allen anderen Faellen +| +,schliesslich den Wuerfel weitergeben. +| +Wer an der Reihe ist, wuerfelt und darf seine Figur, beginnend +| +mit der festgelegten Startfigur, entsprechend des Wuerfel- +| +ergebnisses setzen;danach ist der Naechste an der Reihe. +| +Sollte es passieren, dass man mit der gewuerfelten Augenzahl +| +auf ein Feld landet, welches von einer anderen Figur +| +unterschiedlicher Farbe besetzt ist, wird diese Figur ent- +| +sprechend aus dem Feld entfernt und auf ihr Startfeld +| +zurueckgelegt. +| +Sollte man eine 6 wuerfeln, bekommt dieser Spieler +| +einen weiteren Wurf und muss eine Figur +| +aus dem Anfangskreis ins Spiel bringen und +| +mit dem 2. freien Wurf weiter, entsprechend der Augenzahl, +| +zu setzen. In allen anderen Faellen, wie z.B einer Augenzahl von +| +5, bewegt man seine ausgewaehlte Figur um die +| +gewuerfelte Augenzahl. +| +Wuerfelt man eine 6, hat aber bereits alle 4 Figuren auf +| +den Weg gebracht, bzw. bereits teilweise im Ziel, kann man eine +| +beliebige Figur um 6 Felder bewegen und bekommt +| +zusaetzlich einen weiteren Wurf frei. +| +Ueber die im Weg stehenden eigenen und feindlichen Figuren +| +wird gesprungen, das besetzte Feld aber mitgezaehlt. +| +Hat eine Figur das aeussere Kreuz vollstaendig umrundet, so +| +rueckt dieselbe auf die Kreise ihrer Farbe ins Ziel ein. +| +In die Endfelder kann nur eingerueckt werden, wenn die +| +exakte Zahl auf die freien Felder gewuerfelt wird. +| +Wer zuerst seine 4 Figuren ins Ziel bringt, gewinnt, +| +aber das Spiel geht weiter +| +bis nur noch ein Spieler seine Figuren nicht ins Ziel gebracht hat. +| +| +Chaotisches Spiel: +| +| +Spieler spielen nicht nach reihenfolge + die Ki funktioniert nicht in diesem Modus +| +| +| \ No newline at end of file diff --git a/Menschärgeredichnicht5/src/SpielOberflaeche$1.class b/Menschärgeredichnicht5/src/SpielOberflaeche$1.class new file mode 100644 index 0000000..9a75e81 Binary files /dev/null and b/Menschärgeredichnicht5/src/SpielOberflaeche$1.class differ diff --git a/Menschärgeredichnicht5/src/SpielOberflaeche.class b/Menschärgeredichnicht5/src/SpielOberflaeche.class new file mode 100644 index 0000000..b81ed61 Binary files /dev/null and b/Menschärgeredichnicht5/src/SpielOberflaeche.class differ diff --git a/Menschärgeredichnicht5/src/SpielOberflaeche.java b/Menschärgeredichnicht5/src/SpielOberflaeche.java new file mode 100644 index 0000000..6965da3 --- /dev/null +++ b/Menschärgeredichnicht5/src/SpielOberflaeche.java @@ -0,0 +1,377 @@ +import javax.swing.*; +import java.awt.event.*; + +public class SpielOberflaeche extends JFrame implements ActionListener { + private Steuerung dieSteuerung; + + private ImageIcon dasSpielfeld = new ImageIcon("Spielfeld.jpg"); + private ImageIcon[] daswuefelBild = new ImageIcon[7]; + private ImageIcon[] derwuerfelRahmen = new ImageIcon[4]; + private JLabel derRahmen; + private JButton dieFigur[][] = new JButton[4][4]; + private JButton derWuerfel; + private Menue dasMenue; + + private boolean spielerGewonnen[] = new boolean[4]; + private boolean spielerGewechselt = false; + private boolean anfangsWuerfel = true; + private boolean wurdegewuerfelt = false; + private int spielModi; + private int dieAnfangskoordinatenX[][] = new int[4][4]; + private int dieAnfangskoordinatenY[][] = new int[4][4]; + private int kiSpieler = -1; + private int countAnfangszuege = 3; + private int gewuerfelt = 0; + private int spieler = 0; + + // int count; + + public SpielOberflaeche(Steuerung pSteuerung) { + dieSteuerung = pSteuerung; + dasMenue = new Menue(this); + } + + public void startedasSpiel() { + + for (int i = 0; i < 7; i++) { + daswuefelBild[i] = new ImageIcon("" + i + ".jpg"); + } + for (int i = 0; i < 4; i++) { + derwuerfelRahmen[i] = new ImageIcon("rahmen" + i + ".png"); + } + erstelleGUI(); + + this.setVisible(true); + dasMenue.setVisible(false); + } + + private void aendereAugenzahl(int pZahl) { + derWuerfel.setIcon(daswuefelBild[pZahl]); + } + + public void erstelleWuerfel() { + derWuerfel = new JButton(daswuefelBild[0]); + derWuerfel.addActionListener(this); + derWuerfel.setBounds(362, 362, daswuefelBild[gewuerfelt].getIconWidth(), + daswuefelBild[gewuerfelt].getIconHeight()); + derWuerfel.setVisible(true); + this.add(derWuerfel); + + derRahmen = new JLabel(derwuerfelRahmen[0]); + derRahmen.setBounds(357, 357, derwuerfelRahmen[spieler].getIconWidth(), + derwuerfelRahmen[spieler].getIconHeight()); + derRahmen.setVisible(true); + this.add(derRahmen); + } + + private void wuerfeln() { + derWuerfel.setEnabled(false); + wurdegewuerfelt = true; + deckeSpielerAuf(); + int speicher = gewuerfelt; + if (speicher != 6 && countAnfangszuege == 0 && !spielerGewechselt) { + zaehleSpielerHoch(); + spielerGewechselt = true; + if (anfangsWuerfel) { + countAnfangszuege = 3; + } else { + countAnfangszuege = 1; + } + } else { + spielerGewechselt = false; + } + gewuerfelt = (int) ((Math.random() * 6) + 1); // zufaellige Zahl holen + aendereAugenzahl(gewuerfelt); + + if (gewuerfelt != 6 && countAnfangszuege == 0) { + zaehleSpielerHoch(); + spielerGewechselt = true; + if (anfangsWuerfel) { + + countAnfangszuege = 3; + } else { + countAnfangszuege = 1; + } + } else { + spielerGewechselt = false; + } + if (gewuerfelt != 6) { + countAnfangszuege--; + + } + + aendereRahmen(spieler); + pruefeFiguren(); + if (!anfangsWuerfel && gewuerfelt != 6) { + countAnfangszuege = 0; + } + } + + private void aendereRahmen(int bild) { + derRahmen.setIcon(derwuerfelRahmen[bild]); + } + + private void erstelleGUI() { + setLayout(null); + this.setSize(630, 630); + this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); + this.setResizable(false); + this.setContentPane(new JLabel(dasSpielfeld)); + this.pack(); + } + + private void erstelleButtons(int figurart) { + int w = 13, x = 655, y = 727, z = 85; + erstelleWuerfel(); + if (figurart == 1) { + derWuerfel.setLocation(357, 357); + derRahmen.setLocation(352, 352); + x = 620; + y = 692; + z = 120; + w = 48; + } + dieFigur[0][0] = erstelleButton(x, x, "rot" + figurart + ".jpg"); + dieFigur[0][1] = erstelleButton(y, x, "rot" + figurart + ".jpg"); + dieFigur[0][2] = erstelleButton(x, y, "rot" + figurart + ".jpg"); + dieFigur[0][3] = erstelleButton(y, y, "rot" + figurart + ".jpg"); + + dieFigur[1][0] = erstelleButton(w, x, "gelb" + figurart + ".jpg"); + dieFigur[1][1] = erstelleButton(z, x, "gelb" + figurart + ".jpg"); + dieFigur[1][2] = erstelleButton(w, y, "gelb" + figurart + ".jpg"); + dieFigur[1][3] = erstelleButton(z, y, "gelb" + figurart + ".jpg"); + + dieFigur[2][0] = erstelleButton(w, w, "blau" + figurart + ".jpg"); + dieFigur[2][1] = erstelleButton(z, w, "blau" + figurart + ".jpg"); + dieFigur[2][2] = erstelleButton(w, z, "blau" + figurart + ".jpg"); + dieFigur[2][3] = erstelleButton(z, z, "blau" + figurart + ".jpg"); + + dieFigur[3][0] = erstelleButton(x, w, "gruen" + figurart + ".jpg"); + dieFigur[3][1] = erstelleButton(y, w, "gruen" + figurart + ".jpg"); + dieFigur[3][2] = erstelleButton(x, z, "gruen" + figurart + ".jpg"); + dieFigur[3][3] = erstelleButton(y, z, "gruen" + figurart + ".jpg"); + + for (int i = 0; i < dieFigur.length; i++) { + for (int j = 0; j < dieFigur.length; j++) { + dieFigur[i][j].setEnabled(false); + } + } + setzeAnfangskoordinaten(); + } + + private void setzeAnfangskoordinaten() { + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + dieAnfangskoordinatenX[i][j] = dieFigur[i][j].getX(); + dieAnfangskoordinatenY[i][j] = dieFigur[i][j].getY(); + } + } + } + + private JButton erstelleButton(int anfangX, int anfangY, String dasBild) { + JButton derButton = new JButton(new ImageIcon(dasBild)); + derButton.addActionListener(this); + derButton.setBounds(anfangX, anfangY, new ImageIcon(dasBild).getIconWidth(), + new ImageIcon(dasBild).getIconHeight()); + this.add(derButton); + derButton.setVisible(true); + return derButton; + } + + private void deckeSpielerAuf() { + + for (int i = 0; i < 4; i++) { + if (!spielerGewonnen[i]) { + for (int j = 0; j < 4; j++) { + dieFigur[i][j].setEnabled(true); + } + } + } + } + + private void pruefeFiguren() { + int count = 0; + boolean dasfreieFeld[] = dieSteuerung.hatderSpielerFreiesFeld(spieler, gewuerfelt); + for (int i = 0; i < 4; i++) { + if (dasfreieFeld[i] == false) { + count++; + dieFigur[spieler][i].setEnabled(false); + } + } + if (count == 4) { + if (spielModi == 1) { + wuerfeln(); + } else { + + if (anfangsWuerfel) { + derWuerfel.setEnabled(true); + } else { + visualsiereAugenZahl(); + } + } + } + + } + + public void setzeinFeld(int spieler, int figur) { + switch (spieler) { + case 0: + dieFigur[spieler][figur].setLocation(727, 441); + break; + case 1: + dieFigur[spieler][figur].setLocation(298, 725); + break; + case 2: + dieFigur[spieler][figur].setLocation(13, 298); + break; + case 3: + dieFigur[spieler][figur].setLocation(441, 13); + break; + } + } + + public void bewegeFigur(int richtung, int spieler, int figur) { + switch (richtung) { + case 0: // links + dieFigur[spieler][figur].setLocation(dieFigur[spieler][figur].getX() - 71, dieFigur[spieler][figur].getY()); + break; + case 1: // oben + dieFigur[spieler][figur].setLocation(dieFigur[spieler][figur].getX(), dieFigur[spieler][figur].getY() - 71); + break; + case 2: // rechts + dieFigur[spieler][figur].setLocation(dieFigur[spieler][figur].getX() + 71, dieFigur[spieler][figur].getY()); + break; + case 3:// unten + dieFigur[spieler][figur].setLocation(dieFigur[spieler][figur].getX(), dieFigur[spieler][figur].getY() + 71); + break; + } + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == derWuerfel) { + wuerfeln(); + } + + for (int a = 0; a < 4; a++) { + for (int b = 0; b < 4; b++) { + if (e.getSource() == dieFigur[a][b] && wurdegewuerfelt && a == spieler) { + dieSteuerung.buttengedruekt(gewuerfelt, a, b); + if (dieSteuerung.hatSpielergewonnen(a)) { + spielerGewonnen[a] = true; + } + if (!anfangsWuerfel && gewuerfelt != 6) { + zaehleSpielerHoch(); + aendereRahmen(spieler); + countAnfangszuege = 1; + } + if (anfangsWuerfel && gewuerfelt != 6) { + zaehleSpielerHoch(); + aendereRahmen(spieler); + countAnfangszuege = 3; + } + derWuerfel.setEnabled(true); + aendereAugenzahl(0); + wurdegewuerfelt = false; + } + } + } + + kIZug(spieler); + + } + + public void kIZug(int pspieler) { // da die Züge so schnell hintereinander Ablaufen hengt das Programm sich auf, + // dann muss der Wuerfel gedrückt werden + boolean freiesFeld[] = new boolean[4]; + if (pspieler >= kiSpieler && pspieler != 0) { + wuerfeln(); + try { + Thread.sleep(100); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + for (int i = 0; i < 4; i++) { + if (dieFigur[pspieler][i].isEnabled() && wurdegewuerfelt == true) { + freiesFeld[i] = true; + dieSteuerung.kIIstDran(pspieler, i); + break; + } + + } + + if (anfangsWuerfel || gewuerfelt == 6) { + kIZug(pspieler); + } + + } + + } + + public void kIspieltFigur(int spieler, int figur) { + dieFigur[spieler][figur].doClick(); + } + + private void zaehleSpielerHoch() { + // count++; + if (spieler < 3) { + + spieler++; + } else { + anfangsWuerfel = false; + countAnfangszuege = 1; + spieler = 0; + } + + } + + public void uebergebeWerte(int brettNr, int pspielModi, int spieleranz) { + spielModi = pspielModi; + kiSpieler = spieleranz; + if (brettNr == 0) { + dasSpielfeld = new ImageIcon(brettNr + "Brett.jpg"); + } else if (brettNr == 1) { + dasSpielfeld = new ImageIcon(brettNr + "Brett.jpg"); + } else if (brettNr == 2) { + dasSpielfeld = new ImageIcon(brettNr + "Brett.jpg"); + } + startedasSpiel(); + erstelleButtons(brettNr); + erstelleKI(); + } + + public void erstelleKI() { // die KI kann sich aufgrund von java Swing aufhängen, dann muss der Wuerfel gedrueckt werden + for (int i = 4; i > kiSpieler; i--) { + dieSteuerung.setzeKISpieler(i); + } + } + + private void visualsiereAugenZahl() { + new Thread() { + public void run() { + try { + derWuerfel.setEnabled(false); + aendereAugenzahl(gewuerfelt); + Thread.sleep(300); + derWuerfel.setEnabled(true); + aendereAugenzahl(0); + int speicher = spieler; + if (speicher + 1 == 4) { + speicher = 0; + } else { + speicher++; + } + aendereRahmen(speicher); + Thread.sleep(300); + kIZug(speicher); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } + + public void figurGeschlagen(int spieler, int figur) { + dieFigur[spieler][figur].setLocation(dieAnfangskoordinatenX[spieler][figur], + dieAnfangskoordinatenY[spieler][figur]); + } +} \ No newline at end of file diff --git a/Menschärgeredichnicht5/src/Steuerung.class b/Menschärgeredichnicht5/src/Steuerung.class new file mode 100644 index 0000000..50ce1ca Binary files /dev/null and b/Menschärgeredichnicht5/src/Steuerung.class differ diff --git a/Menschärgeredichnicht5/src/Steuerung.java b/Menschärgeredichnicht5/src/Steuerung.java new file mode 100644 index 0000000..4e819b6 --- /dev/null +++ b/Menschärgeredichnicht5/src/Steuerung.java @@ -0,0 +1,294 @@ +import java.util.ArrayList; +import java.util.ArrayList; + +public class Steuerung { + + // Anfang Attribute + private SpielOberflaeche dieGUI; + private KI Computer[] = new KI[4]; + private Feld dasFeld[] = new Feld[40]; + private Feld dasendFeld[][] = new Feld[4][4]; + private Figur dieFiguren[][] = new Figur[4][4]; + + + private boolean spielerDarfNichtLaufen = false; + private boolean darfnehmen = true; + // Ende Attribute + + public Steuerung() { + dieGUI = new SpielOberflaeche(this); + setzeFiguren(); + setzeFelder(); + } + // Anfang Methoden + + public void setzeFiguren() { + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + dieFiguren[i][j] = new Figur(i + 5, j); // 5 = rot 6 = gelb 7 = blau 8 = gr�n + dasendFeld[i][j] = new Feld(i + 5); + } + } + } + + public void setzeFelder() { + for (int i = 0; i < 40; i++) { + dasFeld[i] = new Feld(4); + } + dasFeld[0] = new Feld(0); // 0 links + dasFeld[8] = new Feld(0); + dasFeld[14] = new Feld(0); + + dasFeld[10] = new Feld(1); // 1 oben + dasFeld[18] = new Feld(1); + dasFeld[24] = new Feld(1); + + dasFeld[4] = new Feld(3); // 3 unten + dasFeld[30] = new Feld(3); + dasFeld[38] = new Feld(3); + + dasFeld[20] = new Feld(2); // 2 rechts + dasFeld[28] = new Feld(2); + dasFeld[34] = new Feld(2); + + dasFeld[39] = new Feld(5);// rot, links + dasFeld[9] = new Feld(6); // gelb, oben + dasFeld[19] = new Feld(7);// blau, rechts + dasFeld[29] = new Feld(8);// gr�n, unten + } + + public boolean hatSpielergewonnen(int spieler) { + int spielerAnzahlImEndFeld = 0; + for (int i = 0; i < dieFiguren.length; i++) { + if (dieFiguren[spieler][i].istImEndFeld()) { + spielerAnzahlImEndFeld++; + } + } + if (spielerAnzahlImEndFeld == 4) { + return true; + } else { + return false; + } + } + + public boolean buttengedruekt(int gewuerfelt, int spieler, int figur) { + int stelle; + if (gewuerfelt == 6 && dieFiguren[spieler][figur].istImFeld() == false) { + if (istFeldFrei(spieler * 10)) { // Spieler * 10 = das AnfangsFeld + setzteFigurinFeld(spieler, figur); + return true; + } else if (hatFeldGegner(spieler, figur, spieler * 10)) { + nehmeSpieler(spieler * 10); // Spieler * 10 = das AnfangsFeld + setzteFigurinFeld(spieler, figur); + return true; + } else { + return false; + } + + } else if (dieFiguren[spieler][figur].istImFeld() == true && istZugRichtig(gewuerfelt, spieler, figur)) { + + dasFeld[dieFiguren[spieler][figur].holeStelle()].setzeFigur(null); + + for (int i = 0; i < gewuerfelt; i++) { + stelle = dieFiguren[spieler][figur].holeStelle(); + if (dieFiguren[spieler][figur].holeStelle() == 39) {// && dieFiguren[spieler][figur].holeFarbe() != 5) { + dieFiguren[spieler][figur].setzestelle(-1); + stelle = dieFiguren[spieler][figur].holeStelle(); + } + if (stelle != -1 && dasFeld[stelle].getRichtung() < 4) { + dieFiguren[spieler][figur].setzeRichtung(dasFeld[stelle].getRichtung()); + } + dieFiguren[spieler][figur].setzestelle(stelle + 1); + + dieGUI.bewegeFigur(dieFiguren[spieler][figur].holeRichtung(), spieler, figur); + } + + if (istFeldFrei(dieFiguren[spieler][figur].holeStelle())) { + dasFeld[dieFiguren[spieler][figur].holeStelle()].setzeFigur(dieFiguren[spieler][figur]); + } + return true; + } else { + + return false; + } + + } + + private void bewegeFigurinEndFeld(int gewuerfelt, int spieler, int figur) { + + dieFiguren[spieler][figur].setzeRichtung(dieFiguren[spieler][figur].holeFarbe()); + int stelle = spieler * 10 - 1; + if (spieler == 0) { + stelle = 39; + } + + if (dieFiguren[spieler][figur].holeEndFeldstelle() - 1 != -1) { + dasendFeld[spieler][dieFiguren[spieler][figur].holeEndFeldstelle() - 1].setzeFigur(null); + } + if (dasFeld[stelle].holeFigur() == dieFiguren[spieler][figur]) { + dasFeld[stelle].setzeFigur(null); + } + dieFiguren[spieler][figur].setzteobinEndfeld(true); + for (int i = 0; i < gewuerfelt; i++) { + + dieFiguren[spieler][figur].setzeEndFeldstelle(dieFiguren[spieler][figur].holeEndFeldstelle() + 1); + dieGUI.bewegeFigur(dieFiguren[spieler][figur].holeRichtung() - 5, spieler, figur); + + } + dasendFeld[spieler][dieFiguren[spieler][figur].holeEndFeldstelle() - 1].setzeFigur(dieFiguren[spieler][figur]); + } + + private boolean istZugRichtig(int gewuerfelt, int spieler, int figur) { + int stelle = dieFiguren[spieler][figur].holeStelle(); + + for (int i = 0; i < gewuerfelt; i++) { + if (stelle + i <= 39) { + if (dieFiguren[spieler][figur].holeFarbe() == dasFeld[stelle + i].getRichtung() && gewuerfelt - i < 5) { + if (dasendFeld[spieler][(gewuerfelt - i) - 1].holeFigur() != null) { + return false; + } + if ((dieFiguren[spieler][figur].holeEndFeldstelle() - 1 + gewuerfelt - i) < 4 + && dasendFeld[spieler][dieFiguren[spieler][figur].holeEndFeldstelle() - 1 + gewuerfelt - i] + .holeFigur() == null) { + if (spielerDarfNichtLaufen == true) { + return true; + } else { + if (dieFiguren[spieler][figur].istImEndFeld() == false) { + darfnehmen = false; + buttengedruekt(i, spieler, figur); + darfnehmen = true; + } + bewegeFigurinEndFeld((gewuerfelt - i), spieler, figur); + + } + + return false; + } + } else if (dieFiguren[spieler][figur].holeFarbe() == dasFeld[stelle + i].getRichtung() + && gewuerfelt - i > 4) { + return false; + } + } + + } + + if (dieFiguren[spieler][figur].holeStelle() + gewuerfelt > 39 && dieFiguren[spieler][figur].holeFarbe() != 5) { + stelle = (dieFiguren[spieler][figur].holeStelle() + gewuerfelt) - 40; + gewuerfelt = 0; + } + + if (spielerDarfNichtLaufen == true && dieFiguren[spieler][figur].istImEndFeld() == true && stelle > 4) { + return false; + } + if (stelle + gewuerfelt > 39 && spielerDarfNichtLaufen == true) { // fuer das Enablen + stelle = (stelle + gewuerfelt) - 40; + gewuerfelt = 0; + } + + if (istFeldFrei(stelle + gewuerfelt)) { + if (dieFiguren[spieler][figur].istImEndFeld() == true) { + } + return true; + } else if (hatFeldGegner(spieler, figur, stelle + gewuerfelt) && darfnehmen == true) { + if (spielerDarfNichtLaufen == false) { + + nehmeSpieler(stelle + gewuerfelt); + } + return true; + } else if (darfnehmen == false) { + return true; + } else { + return false; + } + + } + +//75px + public void setzteFigurinFeld(int spieler, int figur) { + dieGUI.setzeinFeld(spieler, figur);// setzt in der GUI den Spieler im Feld + dieFiguren[spieler][figur].setzeRichtung(dasFeld[spieler * 10].getRichtung()); + dieFiguren[spieler][figur].setzestelle(spieler * 10); + dasFeld[dieFiguren[spieler][figur].holeStelle()].setzeFigur(dieFiguren[spieler][figur]); + dieFiguren[spieler][figur].setzteobinSpielfeld(true); + } + + private boolean istFeldFrei(int feldStelle) { + + if (dasFeld[feldStelle].holeFigur() == null && feldStelle < 40) { + return true; + } else { + return false; + } + } + + public boolean[] hatderSpielerFreiesFeld(int spieler, int gewuerfelt) { + // test(); + + boolean figurenAktivieren[] = new boolean[4]; + spielerDarfNichtLaufen = true; + for (int i = 0; i < 4; i++) { + + if (gewuerfelt == 6 && dieFiguren[spieler][i].istImFeld() == false) { + if (istFeldFrei(spieler * 10)) {// Spieler * 10 = das AnfangsFeld + figurenAktivieren[i] = true; + } else if (hatFeldGegner(spieler, i, spieler * 10)) { + figurenAktivieren[i] = true; + } else { + figurenAktivieren[i] = false; + continue; + } + + } else if (istZugRichtig(gewuerfelt, spieler, i) && dieFiguren[spieler][i].istImFeld() == true) { + figurenAktivieren[i] = true; + } else { + figurenAktivieren[i] = false; + + } + + } + spielerDarfNichtLaufen = false; + return figurenAktivieren; + } + + private boolean hatFeldGegner(int spieler, int figur, int feldStelle) { + + if (dieFiguren[spieler][figur].holeFarbe() != dasFeld[feldStelle].holeFigur().holeFarbe()) { + return true; + } else { + return false; + } + } + + private void nehmeSpieler(int feldStelle) { + dasFeld[feldStelle].holeFigur().setzteobinSpielfeld(false); // Figur ist nicht mehr in dem Feld + dieGUI.figurGeschlagen(dasFeld[feldStelle].holeFigur().holeFarbe() - 5, + dasFeld[feldStelle].holeFigur().holeFigurNummer()); + dasFeld[feldStelle].setzeFigur(null); // Figur im Feld ist jetzt null + } + + public void setzeKISpieler(int spieler) { + Computer[spieler-1] = new KI(this,spieler-1); + } + + public void kIIstDran(int spieler, int test) { + Computer[spieler].berechneZugWert(test); + } + + public void kIZug(int spieler, int figur) { + dieGUI.kIspieltFigur(spieler, figur); + } + + public boolean sindSpielerImFeld(int spieler) { + for (int i = 0; i < dieFiguren[0].length; i++) { + if (dieFiguren[spieler][i].istImFeld() == true) { + return true; + } + } + return false; + } + + public static void main(String[] args) { + new Steuerung(); + } + // Ende Methoden +} diff --git a/Menschärgeredichnicht5/src/blau0.jpg b/Menschärgeredichnicht5/src/blau0.jpg new file mode 100644 index 0000000..72899b3 Binary files /dev/null and b/Menschärgeredichnicht5/src/blau0.jpg differ diff --git a/Menschärgeredichnicht5/src/blau1.jpg b/Menschärgeredichnicht5/src/blau1.jpg new file mode 100644 index 0000000..efd0682 Binary files /dev/null and b/Menschärgeredichnicht5/src/blau1.jpg differ diff --git a/Menschärgeredichnicht5/src/blau2.jpg b/Menschärgeredichnicht5/src/blau2.jpg new file mode 100644 index 0000000..b3acf44 Binary files /dev/null and b/Menschärgeredichnicht5/src/blau2.jpg differ diff --git a/Menschärgeredichnicht5/src/gelb0.jpg b/Menschärgeredichnicht5/src/gelb0.jpg new file mode 100644 index 0000000..3937e99 Binary files /dev/null and b/Menschärgeredichnicht5/src/gelb0.jpg differ diff --git a/Menschärgeredichnicht5/src/gelb1.jpg b/Menschärgeredichnicht5/src/gelb1.jpg new file mode 100644 index 0000000..07ff2a8 Binary files /dev/null and b/Menschärgeredichnicht5/src/gelb1.jpg differ diff --git a/Menschärgeredichnicht5/src/gelb2.jpg b/Menschärgeredichnicht5/src/gelb2.jpg new file mode 100644 index 0000000..0414a48 Binary files /dev/null and b/Menschärgeredichnicht5/src/gelb2.jpg differ diff --git a/Menschärgeredichnicht5/src/gruen0.jpg b/Menschärgeredichnicht5/src/gruen0.jpg new file mode 100644 index 0000000..427bc5b Binary files /dev/null and b/Menschärgeredichnicht5/src/gruen0.jpg differ diff --git a/Menschärgeredichnicht5/src/gruen1.jpg b/Menschärgeredichnicht5/src/gruen1.jpg new file mode 100644 index 0000000..fcea345 Binary files /dev/null and b/Menschärgeredichnicht5/src/gruen1.jpg differ diff --git a/Menschärgeredichnicht5/src/gruen2.jpg b/Menschärgeredichnicht5/src/gruen2.jpg new file mode 100644 index 0000000..02056d8 Binary files /dev/null and b/Menschärgeredichnicht5/src/gruen2.jpg differ diff --git a/Menschärgeredichnicht5/src/rahmen0.png b/Menschärgeredichnicht5/src/rahmen0.png new file mode 100644 index 0000000..42cb630 Binary files /dev/null and b/Menschärgeredichnicht5/src/rahmen0.png differ diff --git a/Menschärgeredichnicht5/src/rahmen1.png b/Menschärgeredichnicht5/src/rahmen1.png new file mode 100644 index 0000000..90a7889 Binary files /dev/null and b/Menschärgeredichnicht5/src/rahmen1.png differ diff --git a/Menschärgeredichnicht5/src/rahmen2.png b/Menschärgeredichnicht5/src/rahmen2.png new file mode 100644 index 0000000..d20a3ef Binary files /dev/null and b/Menschärgeredichnicht5/src/rahmen2.png differ diff --git a/Menschärgeredichnicht5/src/rahmen3.png b/Menschärgeredichnicht5/src/rahmen3.png new file mode 100644 index 0000000..b5afdcb Binary files /dev/null and b/Menschärgeredichnicht5/src/rahmen3.png differ diff --git a/Menschärgeredichnicht5/src/rot0.jpg b/Menschärgeredichnicht5/src/rot0.jpg new file mode 100644 index 0000000..b8a6f0d Binary files /dev/null and b/Menschärgeredichnicht5/src/rot0.jpg differ diff --git a/Menschärgeredichnicht5/src/rot1.jpg b/Menschärgeredichnicht5/src/rot1.jpg new file mode 100644 index 0000000..fd15ba9 Binary files /dev/null and b/Menschärgeredichnicht5/src/rot1.jpg differ diff --git a/Menschärgeredichnicht5/src/rot2.jpg b/Menschärgeredichnicht5/src/rot2.jpg new file mode 100644 index 0000000..6b55a89 Binary files /dev/null and b/Menschärgeredichnicht5/src/rot2.jpg differ diff --git a/Menschärgeredichnicht5/src/textTool.class b/Menschärgeredichnicht5/src/textTool.class new file mode 100644 index 0000000..503b0b6 Binary files /dev/null and b/Menschärgeredichnicht5/src/textTool.class differ diff --git a/Menschärgeredichnicht5/src/textTool.java b/Menschärgeredichnicht5/src/textTool.java new file mode 100644 index 0000000..721f9a9 --- /dev/null +++ b/Menschärgeredichnicht5/src/textTool.java @@ -0,0 +1,34 @@ +import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.FileWriter; +import java.io.FileNotFoundException; +import java.util.Scanner; + +public class textTool{ + String hilfe; + String daten = ""; + public textTool(){ + //nur für das Einlesen der Credits und der Regeln da + } + + public String datenLesen(String dateiName){ + daten = ""; + try { + File file = new File(dateiName); + Scanner scan = new Scanner(file); + do { + String hilfe = scan.nextLine(); + if (hilfe.contains("|")) { + hilfe = "\n"; // "|" ersetzt den Absatz da Java gewisse Probleme besitzt einen Absatz zu machen, wenn in der Datei ein "/n" existiert + } // end of if + daten = daten + hilfe; + } while (scan.hasNextLine()); + scan.close(); + } catch(Exception e) { + System.out.println("An error occurred"); + e.printStackTrace(); + } + return daten; + } + }