Skip to content
Snippets Groups Projects
Commit 34888263 authored by Justin Klein's avatar Justin Klein
Browse files

Replace Regelwerk.java

parent a89616fd
No related branches found
No related tags found
1 merge request!1Der große Merge
...@@ -8,34 +8,33 @@ public class Regelwerk { ...@@ -8,34 +8,33 @@ public class Regelwerk {
public ArrayList<Integer> reihenfolge; public ArrayList<Integer> reihenfolge;
public ArrayList<Farbe> color; public ArrayList<Farbe> color;
public void reihenfolgeFestlegen() { // spieler index in Array gespeichert public void reihenfolgeFestlegen(int length) {
reihenfolge = new ArrayList<Integer>(); reihenfolge = new ArrayList<Integer>();
reihenfolge.add(0, 0); // index , value for(int i = 0; i < length; i++) {
reihenfolge.add(1, 1); reihenfolge.add(i,i);
reihenfolge.add(2, 2); }
reihenfolge.add(3, 3);
} }
public UnoKarte ersteKarte(UnoDeck hand, int zug, int anzahl) { public UnoKarte ersteKarte(UnoDeck hand, int zug, int anzahl) {
if (zug == 1) { if (zug == 1) {
Random rand = new Random(); // random zahl wird generriert Random rand = new Random();
int n = rand.nextInt(anzahl); // random zahl von 0 bis DeckSize wird in n gespeichert int n = rand.nextInt(anzahl);
UnoKarte aktuellekarte = hand.get(n); // n wird in aktuelle karte gespeichert UnoKarte aktuellekarte = hand.get(n);
System.out.println("Die Aktuelle Karte:"); System.out.println("Die Aktuelle Karte:");
System.out.println(aktuellekarte); // ausgabe System.out.println(aktuellekarte);
return aktuellekarte; return aktuellekarte;
} }
return hand.get(1); return hand.get(1);
} }
public void aktuelleKarte(UnoKarte letzteKarte) { public void aktuelleKarte(UnoKarte letzteKarte) {
System.out.println("Die Aktuelle Karte:"); System.out.println("Die Aktuelle Karte:");
System.out.println(letzteKarte); // ausgabe aktuelle karte System.out.println(letzteKarte);
} }
public int reihenfolge() { public int reihenfolge() {
int aktuell = reihenfolge.get(0); // erster spieler wird gespeichert int aktuell = reihenfolge.get(0);
reihenfolge.remove(0); //erster spieler wird geklöscht reihenfolge.remove(0);
reihenfolge.add(aktuell); // erster spieler wird am ende des arrays eingefügt reihenfolge.add(aktuell);
return aktuell; return aktuell;
} }
public void wunschFestlegen(){ public void wunschFestlegen(){
...@@ -43,91 +42,90 @@ public class Regelwerk { ...@@ -43,91 +42,90 @@ public class Regelwerk {
color.add(0,Farbe.Wild); color.add(0,Farbe.Wild);
} }
public boolean karteLegbar(UnoKarte aktuellekarte, UnoKarte neueKarte, String PlayerName[], UnoDeck deck, SpielerHand spielerHand) { public boolean karteLegbar(UnoKarte aktuellekarte, UnoKarte neueKarte, UnoDeck deck, SpielerHand spielerHand, int lenght) {
if (color.size() == 2) {// wird erst bei einem kartenWunsch genutzt if (color.size() == 2) {
System.out.println("Wunchfarbe: " + color.get(1)); if ((color.get(1) == neueKarte.getFarbe()) || (color.get(0) == neueKarte.getFarbe())) {
if ((color.get(1) == neueKarte.getFarbe()) || (color.get(0) == neueKarte.getFarbe())) { // bedingung wunschfarbe selbe wie aktuelle Karten farbe oder bedingung ist wild auf wild color.remove(1);
color.remove(1); // karte wird gelegt return Lege(aktuellekarte, neueKarte,deck, spielerHand,lenght);
return Lege(aktuellekarte, neueKarte, PlayerName, deck, spielerHand);
}else { }else {
return false; return false;
} }
} else { // wird aufgerufen wenn keine wunschfarbe existiert } else {
return Lege(aktuellekarte, neueKarte, PlayerName, deck, spielerHand); return Lege(aktuellekarte, neueKarte, deck, spielerHand,lenght);
} }
} }
public boolean Lege(UnoKarte aktuellekarte, UnoKarte neueKarte,String PlayerName[], UnoDeck deck, SpielerHand spielerHand){ public boolean Lege(UnoKarte aktuellekarte, UnoKarte neueKarte,UnoDeck deck, SpielerHand spielerHand, int lenght){
if ((aktuellekarte.getFarbe() == neueKarte.getFarbe()) || (Farbe.Wild == neueKarte.getFarbe()) || ((aktuellekarte.getFarbe() == Farbe.Wild) && (Farbe.Wild != neueKarte.getFarbe()))) {// Farb kontrolle -> Bedingungen ob legbar oder nicht if ((aktuellekarte.getFarbe() == neueKarte.getFarbe()) || (Farbe.Wild == neueKarte.getFarbe()) || ((aktuellekarte.getFarbe() == Farbe.Wild) && (Farbe.Wild != neueKarte.getFarbe()))) {
if (neueKarte.getWert() == Wert.Zwei_Ziehen) { if (neueKarte.getWert() == Wert.Zwei_Ziehen) {
Ziehen(PlayerName, deck, 2, spielerHand); Ziehen(deck, 2, spielerHand);
} else if (neueKarte.getWert() == Wert.Aussetzen) { } else if (neueKarte.getWert() == Wert.Aussetzen) {
aussetzen(); aussetzen();
} else if (neueKarte.getWert() == Wert.Richtungswechsel) { } else if (neueKarte.getWert() == Wert.Richtungswechsel) {
richtungaendern(); richtungaendern(lenght);
} else if (neueKarte.getWert() == Wert.Multicolor) { } else if (neueKarte.getWert() == Wert.Multicolor) {
wunschFarbe(); //wunschFarbe();
}else if (neueKarte.getWert() == Wert.Draw_Four) { }else if (neueKarte.getWert() == Wert.Draw_Four) {
wunschFarbe(); //wunschFarbe();
Ziehen(PlayerName, deck, 4, spielerHand); Ziehen(deck, 4, spielerHand);
} }
return true; return true;
} else if ((aktuellekarte.getWert() == neueKarte.getWert()) || (Farbe.Wild == neueKarte.getFarbe()) || ((aktuellekarte.getFarbe() == Farbe.Wild) && (Farbe.Wild != neueKarte.getFarbe()))) {// Wert kontrolle -> (zB gruene vier geht auft blaue vier) } else if ((aktuellekarte.getWert() == neueKarte.getWert()) || (Farbe.Wild == neueKarte.getFarbe()) || ((aktuellekarte.getFarbe() == Farbe.Wild) && (Farbe.Wild != neueKarte.getFarbe()))) {
if (neueKarte.getWert() == Wert.Zwei_Ziehen) { if (neueKarte.getWert() == Wert.Zwei_Ziehen) {
Ziehen(PlayerName, deck, 2, spielerHand); Ziehen(deck, 2, spielerHand);
} else if (neueKarte.getWert() == Wert.Aussetzen) { } else if (neueKarte.getWert() == Wert.Aussetzen) {
aussetzen(); aussetzen();
} else if (neueKarte.getWert() == Wert.Richtungswechsel) { } else if (neueKarte.getWert() == Wert.Richtungswechsel) {
richtungaendern(); richtungaendern(lenght);
}else if (neueKarte.getWert() == Wert.Multicolor) { }else if (neueKarte.getWert() == Wert.Multicolor) {
wunschFarbe(); //wunschFarbe();
}else if (neueKarte.getWert() == Wert.Draw_Four) { }else if (neueKarte.getWert() == Wert.Draw_Four) {
wunschFarbe(); //wunschFarbe();
Ziehen(PlayerName, deck, 4, spielerHand); Ziehen(deck, 4, spielerHand);
} }
return true; return true;
} }
return false; return false;
} }
public void Ziehen(String PlayerName[], UnoDeck deck, int anzahl,SpielerHand spielerHand){ public void Ziehen(UnoDeck deck, int anzahl,SpielerHand spielerHand){
int spieler = reihenfolge.get(0); int spieler = reihenfolge.get(0);
spielerHand.befuelleSpieleHand(spieler, deck, anzahl); spielerHand.befuelleSpieleHand(spieler, deck, anzahl);
} }
public void aussetzen(){ public void aussetzen(){
int aktuell = reihenfolge.get(0);// spieler wird in aktuell gespeichert int aktuell = reihenfolge.get(0);
reihenfolge.remove(0);// nächster spieler wird gelöscht reihenfolge.remove(0);
reihenfolge.add(aktuell);// wird am ende des arrays hinzugefügt reihenfolge.add(aktuell);
} }
public void richtungaendern(){ public void richtungaendern(int lenght){
int [] richtungswechsel = new int[4];// neuer array richtungswechsel int [] richtungswechsel = new int[lenght];
for(int i = 0; i < reihenfolge.size(); i++){ for(int i = 0; i < reihenfolge.size(); i++){
richtungswechsel[i] = reihenfolge.get(i);// kopiervorgang der spieler zu richtungswechsel richtungswechsel[i] = reihenfolge.get(i);
} }
int size = reihenfolge.size(); int size = reihenfolge.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
reihenfolge.remove(0);// löscht die einträge vom altem array reihenfolge.remove(0);
} }
for(int i = 3; i >= 0; i--){ for(int i = size-1; i >= 0; i--){
reihenfolge.add(richtungswechsel[i]);// werte werden umgekehrt in den alten array wieder eingefügt reihenfolge.add(richtungswechsel[i]);
} }
int zwischen = reihenfolge.get(0); // erster spieler wird in zwischen gespeichert int zwischen = reihenfolge.get(0);
reihenfolge.remove(0);// erster spieler wird gelöscht reihenfolge.remove(0);
reihenfolge.add(zwischen);// erster spieler wird im array neu eingefügtr aber hinten reihenfolge.add(zwischen);
} }
public void wunschFarbe(){ public void wunschFarbe(){
System.out.println("Welche Farbe möchteswt du?(Gruen, Blau, Gelb, Rot)"); System.out.println("Welche Farbe möchteswt du?(Gruen, Blau, Gelb, Rot)");
switch (scanner.nextLine().toLowerCase()){ switch (scanner.nextLine().toLowerCase()){
case "gruen": case "gruen":
color.add(Farbe.Gruen);// fügt in den array eine gruene Karte hinzu so kann als nächstes nur gruen gelegt werden color.add(Farbe.Gruen);
break; break;
case "blau": case "blau":
color.add(Farbe.Blau);// " color.add(Farbe.Blau);
break; break;
case "gelb": case "gelb":
color.add(Farbe.Gelb);// " color.add(Farbe.Gelb);
break; break;
case "rot": case "rot":
color.add(Farbe.Rot);// " color.add(Farbe.Rot);
break; break;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment