Dino Dizdarević
/
NoviLabirnt3D
Dino Dizdarević Ensar Sarajčić Projekat
Diff: main.cpp
- 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(); }