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