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())) {