Dependencies:   Led-libary TextLCD mbed

Revision:
9:cb931ad9731d
Parent:
8:8feae8c8ec8a
Child:
10:f635972952e0
diff -r 8feae8c8ec8a -r cb931ad9731d main.cpp
--- a/main.cpp	Sat Mar 12 20:01:53 2016 +0000
+++ b/main.cpp	Sat Mar 12 23:26:51 2016 +0000
@@ -94,9 +94,13 @@
 
 void btn2()
 {
-    reset();
     for(char i = 0;i<Spieler;i++)
-    PlayPos[i*Spieler]=Steine+Spieler*Feldgrose;
+    {
+        PlayPos[i*Spieler]=Steine+Spieler*Feldgrose;
+        PlayPos[i*Spieler+1]=Steine+Spieler*Feldgrose+1;
+        PlayPos[i*Spieler+2]=Spieler*Feldgrose + 2;
+        PlayPos[i*Spieler+3]=Steine+Spieler*Feldgrose+3;
+    }
     FieldGenerate();
     FieldPrint();
     FeldPrint();
@@ -225,7 +229,7 @@
     //.attach_us(&main,[micro-sec]);
     //.detach();
     wait(0.01);
-    
+
     Button0.rise(&reset);
     Button1.rise(&DiceStart);
     Button1.fall(&DiceStop);
@@ -233,7 +237,7 @@
     Button3.rise(&btn3);
     Button4.rise(&btn4);
     Button4.fall(&btn4_);
-    
+
     //myled = 0xFFF;
     port.baud(76800);
     port.format(8,Serial::None, 1); 
@@ -331,6 +335,7 @@
 
 void setDice(char number)
 {
+    port.printf("LdiceEn:%d\n",diceEn);
     if(diceEn==1)
     {
         DiceAnim.detach();
@@ -746,9 +751,9 @@
         //port.printf("LNormal...\n");
         for(char i = 0;i<Steine;i++)
         {
-            if(PlayPos[(Drann<<2)|i]>Spieler-1) //Drausen
+            if(PlayPos[(Drann<<2)|i]>=Spieler) //Drausen
             {
-                if((PlayPos[(Drann<<2)|i]-Steine+diceNum) < Feldgrose*Spieler)//Zeil noch am Feld
+                if((PlayPos[(Drann<<2)|i]+diceNum) < (Steine+Feldgrose*Spieler))//Zeil noch am Feld
                 {
                     char temp = Field[(PlayPos[(Drann<<2)|i]- Steine + Feldgrose * Drann+diceNum) % (Feldgrose*Steine)]; //zielfeld
                     if(temp>0)
@@ -765,7 +770,7 @@
                 else
                 {//Kollisionsberechnung ins Ziel...
                     if((PlayPos[(Drann<<2)|i]+diceNum)<(Steine*2+ Feldgrose*Spieler))//Schiest nicht über das Ziel hinaus...
-                        if(Ziel[PlayPos[(Drann<<2)|i]-Steine-Feldgrose*Spieler+diceNum]==0)//Zielfeld ist leer (enthält ja nur mich)
+                        if(Ziel[(PlayPos[(Drann<<2)|i]-(Steine+Feldgrose*Spieler)+diceNum)|(Drann<<2)]==0)//Zielfeld ist leer (enthält ja nur mich)
                             moglich[i]=1;
                 }
             }
@@ -796,7 +801,7 @@
             {
                 diceEn=0;
                 count++;
-                //port.printf("LCount: %d\n",count);
+                port.printf("LCount: %d\n",count);
             }
         }
     }
@@ -849,6 +854,7 @@
         char running = 1;
         do
         {
+            temp = 0;
             for (char i = 0; i < Steine; i++)
                 if (Ziel[(Drann<<2)|i]>0)
                     temp++;
@@ -858,13 +864,20 @@
                 Drann = (Drann+1)%Spieler;
             else
             {
-                running = 0;
-                if(diceNum<6)
-                    Drann = (Drann+1)%Spieler;
+                if(j==0)
+                {
+                    if(diceNum<6)
+                        Drann = (Drann+1)%Spieler;
+                    else
+                        running = 0;
+                }
+                else
+                    running = 0;
+                
             }
             diceEn = 0;
             j++;
-        }while((j<4)&(running>0));
+        }while((j<=Spieler)&(running>0));
         if(running==1)
         {
             port.printf("LSpiel beendet!\n");
@@ -873,6 +886,7 @@
         DicePrint();
         FieldPrint();
         FeldPrint();
+        port.printf("LDrann:%d\n",Drann);
     }
 }
 
@@ -880,3 +894,5 @@
 {
     port.printf("%c%c%c%c\n",27+((color&0xFC0000)>>18),27+((color&0x03f000)>>12),27+((color&0x000FC0)>>6),27+(color&0x00003F));
 }
+
+//http://www.repairfaq.org/REPAIR/F_SNES.html