Dependencies: Led-libary TextLCD mbed
Diff: main.cpp
- 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