Dependencies:   Led-libary TextLCD mbed

Revision:
4:2acb70f9cd22
Parent:
3:814d47b6991c
Child:
5:31d406df862a
Child:
13:cb068deacb6c
--- a/main.cpp	Fri Feb 05 09:38:59 2016 +0000
+++ b/main.cpp	Mon Feb 08 18:59:08 2016 +0000
@@ -60,6 +60,7 @@
 void MoveRun();
 char MoveShow;
 void MoveDo();
+void ColorPrint(uint32_t color);
 
 void reset()
 {
@@ -81,7 +82,9 @@
 {
     Drann = 0;
     PlayPos[1]=Steine+Feldgrose*Spieler;
-    PlayPos[2]=5; 
+    //PlayPos[2]=Steine+Feldgrose*Spieler+1;
+    PlayPos[3]=Steine+Feldgrose*Spieler+2;
+    PlayPos[0]=Steine+Feldgrose*Spieler-1;
     FieldGenerate();
     FieldPrint();
     FeldPrint();   
@@ -89,6 +92,7 @@
 }
 void btn3()
 {
+    /*
     diceNum=2;
     diceEn=2;
     Drann = 1;
@@ -96,10 +100,19 @@
     PlayPos[(1<<2)+1]=7;
     PlayPos[(1<<2)+2]=10;
     PlayPos[(1<<2)+3]=12;
+    DicePrint();
     FieldGenerate();
     FieldPrint();
     FeldPrint();
     GameCal();
+    */
+    port.printf("W%c%c\n",27+0x3E,27+0x7);
+    for(char i=0;i<Spieler;i++)
+    {
+        port.printf("w");
+        ColorPrint(Farben[i]);
+        wait(1);
+    }
 }
 void btn4()
 {
@@ -192,12 +205,17 @@
     port.baud(76800);
     port.format(8,Serial::None, 1); 
     port.attach(&Control);
-    
+    /*
     Farben[0]=0x001000;//Grün
     Farben[1]=0x100000;//Rot
     Farben[2]=0x000010;//Blau
     Farben[3]=0x001010;//Gelb
     //Farben[4]=0xFFFFFF;//Weiß
+    */
+    Farben[0]=0x00FF00;//Grün
+    Farben[1]=0xFF0000;//Rot
+    Farben[2]=0x0000FF;//Blau
+    Farben[3]=0x00FFFF;//Gelb
     
     __disable_irq();
     for(char i = 0;i<Spieler;i++)
@@ -240,7 +258,7 @@
             {
                 diceEn=3;
                 for(char i = 0;i<Steine;i++)
-                    if((PlayPos[(Drann<<2)|i]>3)&&(PlayPos[(Drann<<2)|i] < 44))
+                    if((PlayPos[(Drann<<2)|i]>Steine -1)&&(PlayPos[(Drann<<2)|i] < Steine + Feldgrose*Spieler))
                         for(char j = 1;j<=6;j++)
                         {
                             char temp = Field[(PlayPos[(Drann<<2)|i]- Steine + Feldgrose * Drann+j) % (Feldgrose*Steine)];
@@ -491,13 +509,13 @@
     //Ziel ist frei
     if((drinnen>0)&&(moglichAny))
     {
-        port.printf("LDrinnen\n");
+        //port.printf("LDrinnen\n");
         if(((((Field[Feldgrose*Drann]-1) &0x0C) >>2)==Drann)&&(Field[Feldgrose*Drann]>0))
         {
-            port.printf("LAusfahrt Belegt\n");
+            //port.printf("LAusfahrt Belegt\n");
             if(((((Field[(Feldgrose*Drann+diceNum)%(Feldgrose*Spieler)]-1) &0x0C) >>2)!=Drann)||(Field[(Feldgrose*Drann+diceNum)%(Feldgrose*Spieler)]==0))
             {
-                port.printf("LZiel frei (Done)\n");
+                //port.printf("LZiel frei (Done)\n");
                 moglich[(Field[Feldgrose*Drann]-1) &0x03] = 1;
                 moglichAny=0;
             }
@@ -510,10 +528,10 @@
     //Start-feld ist nicht von Spieler belegt
     if((drinnen>0)&&(moglichAny)&&(diceNum==6))
     {
-        port.printf("LDrinnen & 6 \n");
+        //port.printf("LDrinnen & 6 \n");
         if(((((Field[Feldgrose*Drann]-1) &0x0C) >>2)!=Drann)||(Field[Feldgrose*Drann]==0))
         {
-            port.printf("LAusfahrt frei (Done...Schleife)\n");
+            //port.printf("LAusfahrt frei (Done...Schleife)\n");
             moglichAny=0;
             for(char i = 0;i<Steine;i++)
                 if(PlayPos[(Drann<<2)|i]<Steine)
@@ -524,12 +542,12 @@
     //Fahren
     if(moglichAny)
     {
-        port.printf("LNormal...\n");
+        //port.printf("LNormal...\n");
         for(char i = 0;i<Steine;i++)
         {
             if(PlayPos[(Drann<<2)|i]>Spieler-1) //Drausen
             {
-                if((PlayPos[(Drann<<2)|i]- Steine + Feldgrose * Drann+diceNum)<(Feldgrose *Spieler))//Zeil noch am Feld
+                if((PlayPos[(Drann<<2)|i]-Steine+diceNum) < Feldgrose*Spieler)//Zeil noch am Feld
                 {
                     char temp = Field[(PlayPos[(Drann<<2)|i]- Steine + Feldgrose * Drann+diceNum) % (Feldgrose*Steine)]; //zielfeld
                     if(temp>0)
@@ -545,9 +563,9 @@
                 }
                 else
                 {//Kollisionsberechnung ins Ziel...
-                    if(PlayPos[(Drann<<2)|i]+diceNum<(Steine*2 + Feldgrose*Spieler))//Schiest nicht über das Ziel hinaus...
+                    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)
-                        moglich[i]=1;
+                            moglich[i]=1;
                 }
             }
         }
@@ -570,10 +588,14 @@
     {
         if(feld)
         diceEn = 1;
-        else
+        else 
         {
-            diceEn=0;
-            count++;
+            if(count<3)
+            {
+                diceEn=0;
+                count++;
+                port.printf("LCount: %d\n",count);
+            }
         }
     }
 }
@@ -623,4 +645,8 @@
         FieldPrint();
         FeldPrint();
     }
+}
+void ColorPrint(uint32_t color)
+{
+    port.printf("%c%c%c%c\n",27+((color&0xFC0000)>>18),27+((color&0x03f000)>>12),27+((color&0x000FC0)>>6),27+(color&0x00003F));
 }
\ No newline at end of file