diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 666ce224797e3589d3aa79792b6df23ca0f4073a..6874a1a978a5f5695e8da9f1844c28dc4dda18f5 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,12 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="AutoImportSettings"> + <option name="autoReloadType" value="SELECTIVE" /> + </component> <component name="ChangeListManager"> - <list default="true" id="8ee76397-4d4b-4c15-b3e9-7f1b49a6172e" name="Changes" comment="" /> + <list default="true" id="8ee76397-4d4b-4c15-b3e9-7f1b49a6172e" name="Changes" comment=""> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/Regelwerk.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Regelwerk.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/UNO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/UNO.java" afterDir="false" /> + </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="MarkdownSettingsMigration"> + <option name="stateVersion" value="1" /> + </component> <component name="ProjectId" id="2Oj8G9MyGMHFtAmTJVVwAZ8EJmj" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectViewState"> @@ -18,9 +31,36 @@ "RunOnceActivity.OpenProjectViewOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", + "last_opened_file_path": "C:/Users/bluml/IdeaProjects/untitled4/src", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", "vue.rearranger.settings.migration": "true" } }]]></component> + <component name="RecentsManager"> + <key name="CopyFile.RECENT_KEYS"> + <recent name="C:\Users\bluml\IdeaProjects\untitled4\src" /> + </key> + <key name="CopyClassDialog.RECENTS_KEY"> + <recent name="" /> + </key> + </component> + <component name="RunManager"> + <configuration name="UNO" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> + <option name="MAIN_CLASS_NAME" value="UNO" /> + <module name="untitled4" /> + <method v="2"> + <option name="Make" enabled="true" /> + </method> + </configuration> + <recent_temporary> + <list> + <item itemvalue="Application.UNO" /> + </list> + </recent_temporary> + </component> <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> @@ -29,7 +69,11 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1682062534174</updated> + <workItem from="1682062535374" duration="6911000" /> </task> <servers /> </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="3" /> + </component> </project> \ No newline at end of file diff --git a/src/Regelwerk.java b/src/Regelwerk.java index 1afa8fb6e0f35ccb054468d010b1e8394dc3c37b..b3d89994fd1b84a362180085f311c4678a67ab4b 100644 --- a/src/Regelwerk.java +++ b/src/Regelwerk.java @@ -38,48 +38,63 @@ public class Regelwerk { } public Boolean karteLegbar(UnoKarte aktuellekarte, UnoKarte neueKarte,String PlayerName[]){ if(aktuellekarte.getFarbe() == neueKarte.getFarbe()){ - if ((aktuellekarte.getWert() == neueKarte.getWert()) && neueKarte.getWert() == Wert.Zwei_Ziehen){ + if(neueKarte.getWert() == Wert.Zwei_Ziehen){ UnoDeck deck = new UnoDeck(); SpielerHand spielerHand = new SpielerHand(PlayerName[0], PlayerName[1], PlayerName[2], PlayerName[3]); spielerHand.befuelleSpieleHand(reihenfolge()+1,deck,2); - } else if ((aktuellekarte.getWert() == neueKarte.getWert()) && neueKarte.getWert() == Wert.Aussetzen) { + } else if (neueKarte.getWert() == Wert.Aussetzen) { int aktuell = reihenfolge.get(0); reihenfolge.remove(0); reihenfolge.add(aktuell); - } else if ((aktuellekarte.getWert() == neueKarte.getWert()) && neueKarte.getWert() == Wert.Richtungswechsel) { + } else if (neueKarte.getWert() == Wert.Richtungswechsel) { int [] richtungswechsel = new int[4]; for(int i = 0; i < reihenfolge.size(); i++){ - richtungswechsel[i] = reihenfolge.get(0); + richtungswechsel[i] = reihenfolge.get(i); + System.out.println(richtungswechsel[i]); + } + int size = reihenfolge.size(); + for(int i = 0; i < size; i++){ reihenfolge.remove(0); + System.out.println(reihenfolge); } - for(int i = 4; i > richtungswechsel.length; i--){ + for(int i = 3; i >= 0; i--){ reihenfolge.add(richtungswechsel[i]); + System.out.println(reihenfolge); } + int zwischen = reihenfolge.get(0); + reihenfolge.remove(0); + reihenfolge.add(zwischen); } return true; } - else if (aktuellekarte.getWert() == neueKarte.getWert()){ - if ((aktuellekarte.getFarbe() == neueKarte.getFarbe()) && neueKarte.getWert() == Wert.Zwei_Ziehen) { + if (aktuellekarte.getWert() == neueKarte.getWert()){ + if (neueKarte.getWert() == Wert.Zwei_Ziehen) { UnoDeck deck = new UnoDeck(); SpielerHand spielerHand = new SpielerHand(PlayerName[0], PlayerName[1], PlayerName[2], PlayerName[3]); spielerHand.befuelleSpieleHand(reihenfolge() + 1, deck, 2); - }else if ((aktuellekarte.getFarbe() == neueKarte.getFarbe()) && neueKarte.getWert() == Wert.Aussetzen) { + }else if (neueKarte.getWert() == Wert.Aussetzen) { int aktuell = reihenfolge.get(0); reihenfolge.remove(0); reihenfolge.add(aktuell); - }else if ((aktuellekarte.getWert() == neueKarte.getWert()) && neueKarte.getWert() == Wert.Richtungswechsel) { + }else if (neueKarte.getWert() == Wert.Richtungswechsel) { int [] richtungswechsel = new int[4]; for(int i = 0; i < reihenfolge.size(); i++){ - richtungswechsel[i] = reihenfolge.get(0); + richtungswechsel[i] = reihenfolge.get(i); + } + int size = reihenfolge.size(); + for(int i = 0; i < size;i++){ reihenfolge.remove(0); } - for(int i = 4; i > richtungswechsel.length; i--){ + for(int i = 3; i >= 0; i--){ reihenfolge.add(richtungswechsel[i]); } + int zwischen = reihenfolge.get(0); + reihenfolge.remove(0); + reihenfolge.add(zwischen); } return true; } - else if (neueKarte.getFarbe() == Farbe.Wild){ + if (neueKarte.getFarbe() == Farbe.Wild){ if(neueKarte.getWert() == Wert.Multicolor){ } diff --git a/src/UNO.java b/src/UNO.java index d2c5ccf61044ced460ade53c75f27964dca046dd..93691945b53623437c58947651482c8ff8c7d7b1 100644 --- a/src/UNO.java +++ b/src/UNO.java @@ -1,4 +1,3 @@ -import java.sql.SQLOutput; import java.util.Scanner; public class UNO { @@ -55,6 +54,7 @@ public class UNO { while (!win) { System.out.println("Zum Zug Starten, Start schreiben"); if("start" .equals(scanner.nextLine().toLowerCase())) { + regel.aktuelleKarte(aktuelleKarte); zug++; int spieler = regel.reihenfolge(); spielerHand.zeigeHaende(spieler); @@ -70,6 +70,7 @@ public class UNO { geht = false; }else { while(geht == true) { + regel.aktuelleKarte(aktuelleKarte); System.out.println("karte wurde nicht gelegt"); System.out.println("Weiterhin legen?(ja/nein)"); if ("ja".equals(scanner.nextLine().toLowerCase())) { @@ -91,6 +92,7 @@ public class UNO { } else { spielerHand.befuelleSpieleHand(spieler, deck, 1); int size = spielerHand.spielerHaende.get(spieler).size(); + regel.aktuelleKarte(aktuelleKarte); System.out.println("Gezogene Karte: " + spielerHand.spielerHaende.get(spieler).get(size - 1)); System.out.println("legen oder behalten?"); if ("legen".equals(scanner.nextLine().toLowerCase())) {