From 12ed12e31e0316d5050d7439d5cae1229d9ca329 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Fri, 11 Dec 2020 12:02:59 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Weiterentwicklung=20von=20legen(),=20ziehen?= =?UTF-8?q?()=20und=20erste=20Idee=20f=C3=BCr=20spiel()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 55 ++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 68bc9b6..29e8552 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -1,5 +1,7 @@ package de.jaujau.spiellogik; +import java.util.Random; + import de.jaujau.daten.Farbe; import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Spieler; @@ -11,51 +13,72 @@ import de.jaujau.daten.Wert; */ public class Spiel { - private Spieler spieler; private Spieler amZug; + private boolean spielgestartet = false; private boolean aussetzen; private boolean zwei_ziehen; private Kartensatz kartensatz; private void spiel() { - + if(spielgestartet) { + Random zufallszahl = new Random(); + int zahl = zufallszahl.nextInt(1); + if(zahl == 1) { + amZug = Spieler.SPIELER; + } + else { + amZug = Spieler.COMPUTER; + } + spielgestartet = true; + kartensatz.ablegen(zufallszahl.nextInt(31)); + return; + } + if(amZug == Spieler.SPIELER) { + amZug = Spieler.COMPUTER; + } + else { + amZug= Spieler.SPIELER; + } } - private void zug(Spieler name) { - - } - private boolean pruefeMoeglichkeitLegen(int Kartenindex) { //Nur Strukturüberlegung, WÜNSCHER? + /** + * @param kartenindex + */ + private void legen(int kartenindex) { //Nur Strukturüberlegung, WÜNSCHER? Farbe legenFarbe; Wert legenWert; Farbe liegtFarbe; Wert liegtWert; - legenFarbe = kartensatz.getKarte(Kartenindex).getFARBE(); - legenWert = kartensatz.getKarte(Kartenindex).getWERT(); + legenFarbe = kartensatz.getKarte(kartenindex).getFARBE(); + legenWert = kartensatz.getKarte(kartenindex).getWERT(); liegtFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); liegtWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); if(liegtWert == Wert.SIEBEN && legenWert == Wert.SIEBEN) { - return true; + kartensatz.ablegen(kartenindex); + spiel(); } if(liegtWert == Wert.ACHT && legenWert == Wert.ACHT) { - return true; + kartensatz.ablegen(kartenindex); + spiel(); } if(!aussetzen && !zwei_ziehen) { if(legenFarbe == liegtFarbe) { - return true; + kartensatz.ablegen(kartenindex); + spiel(); } if(legenWert == liegtWert) { - return true; + kartensatz.ablegen(kartenindex); + spiel(); } } - return false; } - private boolean pruefeMoeglichkeitZiehen(int Kartenindex) { + private void ziehen(int Kartenindex) { if(kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT() == Wert.ACHT) { - return false; + kartensatz.ziehen(amZug); + spiel(); } - return true; } } From 75e15aa002022ff60f9ec16ca3995a46598c985b Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Sat, 12 Dec 2020 15:52:50 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Erste=20Kommentierung,=20hinzuf=C3=BCgen=20?= =?UTF-8?q?von=20zugMoeglich()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 74 +++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 29e8552..4c5572c 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -9,7 +9,8 @@ import de.jaujau.daten.Wert; /** - * Class Spiel + * Diese Klasse prüft die Spielaktionen und alterniert zwischen Spieler und Computer + * @author Fabian Keller */ public class Spiel { @@ -17,10 +18,17 @@ public class Spiel { private boolean spielgestartet = false; private boolean aussetzen; private boolean zwei_ziehen; + private int kartenZiehen; private Kartensatz kartensatz; + private Farbe gelegteFarbe; + private Wert gelegterWert; + + /** + * alterniert zwischen Spieler und Computer und legt Beginner fest + */ private void spiel() { - if(spielgestartet) { + if(!spielgestartet) { //Starter durch zufall bestimmen Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(1); if(zahl == 1) { @@ -43,42 +51,80 @@ public class Spiel { /** + * prüft ob eine Karte mit einem bestimmten Kartenindex gelegt werden kann * @param kartenindex */ - private void legen(int kartenindex) { //Nur Strukturüberlegung, WÜNSCHER? + private void karteLegen(int kartenindex) { //Nur Strukturüberlegung, WÜNSCHER? + zugMoeglich(); Farbe legenFarbe; Wert legenWert; - Farbe liegtFarbe; - Wert liegtWert; legenFarbe = kartensatz.getKarte(kartenindex).getFARBE(); legenWert = kartensatz.getKarte(kartenindex).getWERT(); - liegtFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); - liegtWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); - if(liegtWert == Wert.SIEBEN && legenWert == Wert.SIEBEN) { + if(zwei_ziehen && legenWert == Wert.SIEBEN) { kartensatz.ablegen(kartenindex); spiel(); + return; } - if(liegtWert == Wert.ACHT && legenWert == Wert.ACHT) { + if(aussetzen && legenWert == Wert.ACHT) { kartensatz.ablegen(kartenindex); spiel(); + return; } if(!aussetzen && !zwei_ziehen) { - if(legenFarbe == liegtFarbe) { + if(legenFarbe == gelegteFarbe) { kartensatz.ablegen(kartenindex); spiel(); + return; } - if(legenWert == liegtWert) { + if(legenWert == gelegterWert) { kartensatz.ablegen(kartenindex); spiel(); + return; } } + if(aussetzen) { + spiel(); + aussetzen = false; + } } - private void ziehen(int Kartenindex) { - if(kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT() == Wert.ACHT) { - kartensatz.ziehen(amZug); + + /** + * prüft ob eine Karte gezogen werden kann + */ + private void karteZiehen(){ + zugMoeglich(); + if(zwei_ziehen) { + for(int i = 0; i < kartenZiehen; i++) { + kartensatz.ziehen(amZug); + } spiel(); + kartenZiehen = 0; + zwei_ziehen = false; + } + if(aussetzen) { + spiel(); + aussetzen = false; + } + } + + + /** + * prüft ob ein Zug überhaupt möglich ist und ließt Werte zum weiterarbeiten ein + */ + private void zugMoeglich() { + gelegteFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); + gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); + if(gelegterWert == Wert.ACHT) { + aussetzen = true; + } + else { + aussetzen = false; + } + if(gelegterWert == Wert.SIEBEN) { + zwei_ziehen = true; + kartenZiehen += 2; } } }