Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Led-libary TextLCD mbed
Fork of Laufled by
Diff: main.cpp
- Revision:
- 4:2acb70f9cd22
- Parent:
- 3:814d47b6991c
- Child:
- 5:31d406df862a
- Child:
- 13:cb068deacb6c
diff -r 814d47b6991c -r 2acb70f9cd22 main.cpp
--- 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
