Dino Dizdarević Ensar Sarajčić Projekat

Dependencies:   N5110 mbed

Revision:
1:97f83061d929
Parent:
0:868c0c4c5ec5
--- a/main.cpp	Thu Jun 04 19:24:38 2015 +0000
+++ b/main.cpp	Mon Jun 08 21:21:27 2015 +0000
@@ -22,8 +22,8 @@
     { {'1','0','1','0'},{'1','0','0','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','0','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','1','0'},{'1','0','0','1'},{'1','0','0','1'},{'1','0','1','0'},{'1','1','0','0'} }
     };
 
-char x = 0, y = 8; // donji lijevi cosak, pocetak - char zbog memorije
-char orijentacija = 1; // 0 - gore, 1 - desno, 2 - dole, 3 - lijevo - char zbog memorije
+char x = 0, y = 8; // pozicija igraca
+char orijentacija = 1; // 0-3
 
 void crtaj2D()
 {
@@ -32,30 +32,63 @@
         for(int j=0;j<16;j++)
         {
             
-            if(mapa[i][j][0]=='1')
+            if(mapa[8-i][j][2]=='1')
             {
                 for(int k=0;k<5;k++)
                     lcd.setPixel(j*5+k,(i+1)*5);
                 }
-            if(mapa[i][j][1]=='1')
+            if(mapa[8-i][j][1]=='1')
             {
                 for(int k=0;k<5;k++)
                     lcd.setPixel((j+1)*5,i*5+k);
                 }
-            if(mapa[i][j][2]=='1')
+            if(mapa[8-i][j][0]=='1')
             {
                 for(int k=0;k<5;k++)
                     lcd.setPixel(j*5+k,i*5);
                 }
-            if(mapa[i][j][3]=='1')
+            if(mapa[8-i][j][3]=='1')
             {
                 for(int k=0;k<5;k++)
                     lcd.setPixel(j*5,i*5+k);
                 }
             }
-            for(int i=2; i<4; i++)
-                for(int j = 2; j < 4; j++)
-                        lcd.setPixel(x*5+i, y*5+j);
+            int py = 8-y;
+            switch(orijentacija)
+            {
+                case 2:
+                    for(int j = 0; j < 5; j++)
+                        lcd.setPixel(x*5+2, py*5+j);
+                    lcd.setPixel(x*5+4, py*5+2);
+                    lcd.setPixel(x*5+3, py*5+3);
+                    lcd.setPixel(x*5+1, py*5+3);
+                    lcd.setPixel(x*5+0, py*5+2);
+                    break;
+                case 1:
+                    for(int i = 0; i < 5; i++)
+                        lcd.setPixel(x*5+i, py*5+2);
+                    lcd.setPixel(x*5+2, py*5+4);
+                    lcd.setPixel(x*5+3, py*5+3);
+                    lcd.setPixel(x*5+3, py*5+1);
+                    lcd.setPixel(x*5+2, py*5+0);
+                    break;  
+                case 0:
+                    for(int j = 0; j < 5; j++)
+                        lcd.setPixel(x*5+2, py*5+j);
+                    lcd.setPixel(x*5+4, py*5+2);
+                    lcd.setPixel(x*5+3, py*5+1);
+                    lcd.setPixel(x*5+1, py*5+1);
+                    lcd.setPixel(x*5+0, py*5+2);
+                    break;
+                case 3:
+                    for(int i = 0; i < 5; i++)
+                        lcd.setPixel(x*5+i, py*5+2);
+                    lcd.setPixel(x*5+2, py*5+4);
+                    lcd.setPixel(x*5+1, py*5+3);
+                    lcd.setPixel(x*5+1, py*5+1);
+                    lcd.setPixel(x*5+2, py*5+0);
+                    break; 
+            }
             lcd.refresh();
     }
     
@@ -98,7 +131,7 @@
                 return true;
             break;
         case 3:
-            if(y==YMAX)
+            if(x==0)
                 return false;
             if(mapa[y][x][3] == '0' && mapa[y][x-1][1] == '0')
                 return true;
@@ -128,6 +161,7 @@
                 break;
             if(mapa[y][x][2] == '0' && mapa[y-1][x][0] == '0')
                 y--;
+            break;
         case 3:
             if(x==0)
                 break;
@@ -922,6 +956,61 @@
     lcd.refresh();
 }
 Timer t;
+char vrijeme[6] = "00:00";  
+char* dajVrijeme()
+{
+    vrijeme[5] = 0;
+    int milisekunde = t.read_ms();
+    int sekunde = (t.read_ms() / 1000) % 60;
+    int minute = t.read_ms() / 60000;
+    if(minute > 99)
+        {
+            minute = 99;
+            sekunde = 99;
+        }
+    int i = 4;
+    while(sekunde > 0)
+    {
+        int cifra = sekunde % 10;
+        vrijeme[i] = '0' + cifra;
+        sekunde/=10;
+        i--;
+    }
+    if (i == 4)
+    {
+        vrijeme[i] = '0';
+        i--;
+    }
+    if (i == 3)
+    {
+        vrijeme[i] = '0';
+        i--;
+    }
+    if(i == 2)
+    {
+        vrijeme[i] = ':';
+        i--;
+    }
+    while(minute > 0)
+    {
+        int cifra = minute%10;
+        vrijeme[i] = '0' + cifra;
+        i--;
+        minute /= 10;
+    }
+    if(i==1)
+    {
+        vrijeme[i] = '0';
+        i--;
+    }
+    if(i==0)
+    {
+        vrijeme[i] = '0';
+        i--;
+    }
+    return vrijeme;
+}
+
 void citajJoystick()
 {
     t.start();
@@ -956,11 +1045,18 @@
             crtaj();
             }
             wait(0.25);
-        if(x==15 && y==1) break;
+        if(x==15 && y==1)
+        {
+            t.stop();
+            lcd.clear();
+            lcd.printString("KRAJ!", 28, 1);
+            lcd.printString("VRIJEME:", 20, 2);
+            lcd.printString(dajVrijeme(), 28, 3); 
+            lcd.refresh();
+            while(1);
+        }
        
         }
-        t.stop();
-        lcd.clear();
         
                
 }