Hanić Džana Karkelja Adna

Dependencies:   N5110 mbed

Fork of US2016_LV3_Z1 by Emir Sokic

Committer:
2016US_DzanaHanic
Date:
Sun Jun 05 18:05:47 2016 +0000
Revision:
1:bf8dd0eecb3d
Parent:
0:6ebfd28a8b0c
ProjektniZadatak_IksOksIgra_Grupa4_Tim7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
esokic 0:6ebfd28a8b0c 1 #include "mbed.h"
esokic 0:6ebfd28a8b0c 2 #include "N5110.h"
esokic 0:6ebfd28a8b0c 3 #define dp23 P0_0
esokic 0:6ebfd28a8b0c 4
esokic 0:6ebfd28a8b0c 5 DigitalOut enable(dp14);
esokic 0:6ebfd28a8b0c 6
2016US_DzanaHanic 1:bf8dd0eecb3d 7 //N5110 lcd(VCC,SCE,RST,D/C,MOSI,SCLK,LED)
2016US_DzanaHanic 1:bf8dd0eecb3d 8 N5110 lcd(dp4, dp24, dp23, dp25, dp2, dp6, dp18);
2016US_DzanaHanic 1:bf8dd0eecb3d 9
2016US_DzanaHanic 1:bf8dd0eecb3d 10 //Analogni ulazi sa dzojstika
2016US_DzanaHanic 1:bf8dd0eecb3d 11 AnalogIn VRx(dp11);
2016US_DzanaHanic 1:bf8dd0eecb3d 12 AnalogIn VRy(dp10);
2016US_DzanaHanic 1:bf8dd0eecb3d 13
2016US_DzanaHanic 1:bf8dd0eecb3d 14 Timer debounce;
2016US_DzanaHanic 1:bf8dd0eecb3d 15
2016US_DzanaHanic 1:bf8dd0eecb3d 16 //Taster sa dzojstika
2016US_DzanaHanic 1:bf8dd0eecb3d 17 InterruptIn SW(dp9);
2016US_DzanaHanic 1:bf8dd0eecb3d 18
2016US_DzanaHanic 1:bf8dd0eecb3d 19 char mode = '0';
2016US_DzanaHanic 1:bf8dd0eecb3d 20 //0-prije pokretanja, 1-pocetni ekran, 2-meni, 3-player vs computer, 4-player vs player, 5-result
2016US_DzanaHanic 1:bf8dd0eecb3d 21 struct Pozicija {
2016US_DzanaHanic 1:bf8dd0eecb3d 22 int x;
2016US_DzanaHanic 1:bf8dd0eecb3d 23 int y;
2016US_DzanaHanic 1:bf8dd0eecb3d 24 bool upisano;
2016US_DzanaHanic 1:bf8dd0eecb3d 25 bool imaX;
2016US_DzanaHanic 1:bf8dd0eecb3d 26 bool imaO;
2016US_DzanaHanic 1:bf8dd0eecb3d 27 };
2016US_DzanaHanic 1:bf8dd0eecb3d 28
2016US_DzanaHanic 1:bf8dd0eecb3d 29
2016US_DzanaHanic 1:bf8dd0eecb3d 30 bool pozvano=false;
2016US_DzanaHanic 1:bf8dd0eecb3d 31 int brRundi=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 32 bool naReduCPU=false;
2016US_DzanaHanic 1:bf8dd0eecb3d 33 bool naReduX = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 34 bool pobijedioX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 35 bool pobijedioO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 36
2016US_DzanaHanic 1:bf8dd0eecb3d 37 Pozicija pozicija[3][3];
2016US_DzanaHanic 1:bf8dd0eecb3d 38 Pozicija trenutnaPozicija;
2016US_DzanaHanic 1:bf8dd0eecb3d 39
2016US_DzanaHanic 1:bf8dd0eecb3d 40
2016US_DzanaHanic 1:bf8dd0eecb3d 41 int brPobjedaX = 0, brPobjedaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 42 int popunjenaPoljaCPU=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 43 bool prviPotez=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 44 int trenPoljeX=0,trenPoljeY=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 45
2016US_DzanaHanic 1:bf8dd0eecb3d 46 void postavkaPolja()
2016US_DzanaHanic 1:bf8dd0eecb3d 47 {
2016US_DzanaHanic 1:bf8dd0eecb3d 48 //koordinate pocetka kvadratica
2016US_DzanaHanic 1:bf8dd0eecb3d 49 //prvi red
2016US_DzanaHanic 1:bf8dd0eecb3d 50
2016US_DzanaHanic 1:bf8dd0eecb3d 51
2016US_DzanaHanic 1:bf8dd0eecb3d 52 pozicija[0][0].x=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 53 pozicija[0][0].y=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 54 pozicija[0][1].x=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 55 pozicija[0][1].y=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 56 pozicija[0][2].x=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 57 pozicija[0][2].y=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 58 pozicija[0][0].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 59 pozicija[0][1].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 60 pozicija[0][2].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 61
2016US_DzanaHanic 1:bf8dd0eecb3d 62 pozicija[0][0].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 63 pozicija[0][1].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 64 pozicija[0][2].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 65 pozicija[0][0].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 66 pozicija[0][1].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 67 pozicija[0][2].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 68
2016US_DzanaHanic 1:bf8dd0eecb3d 69
2016US_DzanaHanic 1:bf8dd0eecb3d 70 //drugi red
2016US_DzanaHanic 1:bf8dd0eecb3d 71 pozicija[1][0].x=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 72 pozicija[1][0].y=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 73 pozicija[1][1].x=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 74 pozicija[1][1].y=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 75 pozicija[1][2].x=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 76 pozicija[1][2].y=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 77 pozicija[1][0].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 78 pozicija[1][1].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 79 pozicija[1][2].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 80
2016US_DzanaHanic 1:bf8dd0eecb3d 81 pozicija[1][0].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 82 pozicija[1][1].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 83 pozicija[1][2].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 84 pozicija[1][0].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 85 pozicija[1][1].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 86 pozicija[1][2].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 87
2016US_DzanaHanic 1:bf8dd0eecb3d 88 //treci red
2016US_DzanaHanic 1:bf8dd0eecb3d 89 pozicija[2][0].x=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 90 pozicija[2][0].y=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 91 pozicija[2][1].x=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 92 pozicija[2][1].y=16;
2016US_DzanaHanic 1:bf8dd0eecb3d 93 pozicija[2][2].x=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 94 pozicija[2][2].y=32;
2016US_DzanaHanic 1:bf8dd0eecb3d 95 pozicija[2][0].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 96 pozicija[2][1].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 97 pozicija[2][2].upisano = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 98
2016US_DzanaHanic 1:bf8dd0eecb3d 99 pozicija[2][0].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 100 pozicija[2][1].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 101 pozicija[2][2].imaX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 102 pozicija[2][0].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 103 pozicija[2][1].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 104 pozicija[2][2].imaO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 105
2016US_DzanaHanic 1:bf8dd0eecb3d 106 trenutnaPozicija = pozicija[0][0];
2016US_DzanaHanic 1:bf8dd0eecb3d 107 popunjenaPoljaCPU=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 108 }
2016US_DzanaHanic 1:bf8dd0eecb3d 109
2016US_DzanaHanic 1:bf8dd0eecb3d 110 //funkcija za izbor nacina igre PvP, PvC
2016US_DzanaHanic 1:bf8dd0eecb3d 111 void izborNacinaIgre()
2016US_DzanaHanic 1:bf8dd0eecb3d 112 {
2016US_DzanaHanic 1:bf8dd0eecb3d 113 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 114 mode = '2';
2016US_DzanaHanic 1:bf8dd0eecb3d 115 lcd.printString("(Up) P vs C", 0, 2);
2016US_DzanaHanic 1:bf8dd0eecb3d 116 lcd.printString("(Down) P vs P", 0, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 117
2016US_DzanaHanic 1:bf8dd0eecb3d 118
2016US_DzanaHanic 1:bf8dd0eecb3d 119 }
2016US_DzanaHanic 1:bf8dd0eecb3d 120 //funkcija za crtanje x
2016US_DzanaHanic 1:bf8dd0eecb3d 121 void nacrtajX(int x, int y)
2016US_DzanaHanic 1:bf8dd0eecb3d 122 {
2016US_DzanaHanic 1:bf8dd0eecb3d 123
2016US_DzanaHanic 1:bf8dd0eecb3d 124 lcd.setPixel(x+3, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 125 lcd.setPixel(x+12, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 126 lcd.setPixel(x+4, y+4);
2016US_DzanaHanic 1:bf8dd0eecb3d 127 lcd.setPixel(x+11, y+4);
2016US_DzanaHanic 1:bf8dd0eecb3d 128 lcd.setPixel(x+5, y+5);
2016US_DzanaHanic 1:bf8dd0eecb3d 129 lcd.setPixel(x+10, y+5);
2016US_DzanaHanic 1:bf8dd0eecb3d 130 lcd.setPixel(x+6, y+6);
2016US_DzanaHanic 1:bf8dd0eecb3d 131 lcd.setPixel(x+9, y+6);
2016US_DzanaHanic 1:bf8dd0eecb3d 132 lcd.setPixel(x+7, y+7);
2016US_DzanaHanic 1:bf8dd0eecb3d 133 lcd.setPixel(x+8, y+7);
2016US_DzanaHanic 1:bf8dd0eecb3d 134 lcd.setPixel(x+7, y+8);
2016US_DzanaHanic 1:bf8dd0eecb3d 135 lcd.setPixel(x+8, y+8);
2016US_DzanaHanic 1:bf8dd0eecb3d 136 lcd.setPixel(x+6, y+9);
2016US_DzanaHanic 1:bf8dd0eecb3d 137 lcd.setPixel(x+9, y+9);
2016US_DzanaHanic 1:bf8dd0eecb3d 138 lcd.setPixel(x+5, y+10);
2016US_DzanaHanic 1:bf8dd0eecb3d 139 lcd.setPixel(x+10, y+10);
2016US_DzanaHanic 1:bf8dd0eecb3d 140 lcd.setPixel(x+4, y+11);
2016US_DzanaHanic 1:bf8dd0eecb3d 141 lcd.setPixel(x+11, y+11);
2016US_DzanaHanic 1:bf8dd0eecb3d 142 lcd.setPixel(x+3, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 143 lcd.setPixel(x+12, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 144
2016US_DzanaHanic 1:bf8dd0eecb3d 145
2016US_DzanaHanic 1:bf8dd0eecb3d 146
2016US_DzanaHanic 1:bf8dd0eecb3d 147
2016US_DzanaHanic 1:bf8dd0eecb3d 148 }
2016US_DzanaHanic 1:bf8dd0eecb3d 149
2016US_DzanaHanic 1:bf8dd0eecb3d 150 //funkcija za crtanje o
2016US_DzanaHanic 1:bf8dd0eecb3d 151 void nacrtajO(int x, int y)
2016US_DzanaHanic 1:bf8dd0eecb3d 152 {
2016US_DzanaHanic 1:bf8dd0eecb3d 153 lcd.setPixel(x+3, y+6);
2016US_DzanaHanic 1:bf8dd0eecb3d 154 lcd.setPixel(x+3, y+7);
2016US_DzanaHanic 1:bf8dd0eecb3d 155 lcd.setPixel(x+3, y+8);
2016US_DzanaHanic 1:bf8dd0eecb3d 156 lcd.setPixel(x+3, y+9);
2016US_DzanaHanic 1:bf8dd0eecb3d 157
2016US_DzanaHanic 1:bf8dd0eecb3d 158 lcd.setPixel(x+4, y+5);
2016US_DzanaHanic 1:bf8dd0eecb3d 159 lcd.setPixel(x+4, y+10);
2016US_DzanaHanic 1:bf8dd0eecb3d 160
2016US_DzanaHanic 1:bf8dd0eecb3d 161 lcd.setPixel(x+5, y+4);
2016US_DzanaHanic 1:bf8dd0eecb3d 162 lcd.setPixel(x+5, y+11);
2016US_DzanaHanic 1:bf8dd0eecb3d 163
2016US_DzanaHanic 1:bf8dd0eecb3d 164 lcd.setPixel(x+6, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 165 lcd.setPixel(x+6, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 166 lcd.setPixel(x+7, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 167 lcd.setPixel(x+7, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 168 lcd.setPixel(x+8, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 169 lcd.setPixel(x+8, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 170 lcd.setPixel(x+9, y+3);
2016US_DzanaHanic 1:bf8dd0eecb3d 171 lcd.setPixel(x+9, y+12);
2016US_DzanaHanic 1:bf8dd0eecb3d 172
2016US_DzanaHanic 1:bf8dd0eecb3d 173 lcd.setPixel(x+10, y+4);
2016US_DzanaHanic 1:bf8dd0eecb3d 174 lcd.setPixel(x+10, y+11);
2016US_DzanaHanic 1:bf8dd0eecb3d 175
2016US_DzanaHanic 1:bf8dd0eecb3d 176 lcd.setPixel(x+11, y+5);
2016US_DzanaHanic 1:bf8dd0eecb3d 177 lcd.setPixel(x+11, y+10);
2016US_DzanaHanic 1:bf8dd0eecb3d 178
2016US_DzanaHanic 1:bf8dd0eecb3d 179 lcd.setPixel(x+12, y+6);
2016US_DzanaHanic 1:bf8dd0eecb3d 180 lcd.setPixel(x+12, y+7);
2016US_DzanaHanic 1:bf8dd0eecb3d 181 lcd.setPixel(x+12, y+8);
2016US_DzanaHanic 1:bf8dd0eecb3d 182 lcd.setPixel(x+12, y+9);
2016US_DzanaHanic 1:bf8dd0eecb3d 183
2016US_DzanaHanic 1:bf8dd0eecb3d 184
esokic 0:6ebfd28a8b0c 185
2016US_DzanaHanic 1:bf8dd0eecb3d 186 }
2016US_DzanaHanic 1:bf8dd0eecb3d 187 //funkcija za crtanje pozicije joystick-a za vrijeme igre
2016US_DzanaHanic 1:bf8dd0eecb3d 188 void nacrtajKursor(int x, int y)
2016US_DzanaHanic 1:bf8dd0eecb3d 189 {
2016US_DzanaHanic 1:bf8dd0eecb3d 190 for (int i = x+1; i < x + 15; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 191 for(int j = y+1; j < y +15; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 192 if(((i == x+2|| i == x+13 ) && j!=y+1 && j!= y+14 ) || ((j== y+2 ||j == y + 13) && i!=x+1 && i!= x+14)) lcd.setPixel(i, j);
2016US_DzanaHanic 1:bf8dd0eecb3d 193 }
2016US_DzanaHanic 1:bf8dd0eecb3d 194 }
2016US_DzanaHanic 1:bf8dd0eecb3d 195 }
2016US_DzanaHanic 1:bf8dd0eecb3d 196
2016US_DzanaHanic 1:bf8dd0eecb3d 197 void izbrisiKursor(int x, int y)
2016US_DzanaHanic 1:bf8dd0eecb3d 198 {
2016US_DzanaHanic 1:bf8dd0eecb3d 199 for (int i = x+1; i < x + 15; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 200 for(int j = y+1; j < y +15; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 201 if(((i == x+2|| i == x+13 ) && j!=y+1 && j!= y+14 ) || ((j== y+2 ||j == y + 13) && i!=x+1 && i!= x+14)) lcd.clearPixel(i, j);
2016US_DzanaHanic 1:bf8dd0eecb3d 202 }
2016US_DzanaHanic 1:bf8dd0eecb3d 203 }
2016US_DzanaHanic 1:bf8dd0eecb3d 204 }
2016US_DzanaHanic 1:bf8dd0eecb3d 205
2016US_DzanaHanic 1:bf8dd0eecb3d 206 void iscrtajGrid()
2016US_DzanaHanic 1:bf8dd0eecb3d 207 {
2016US_DzanaHanic 1:bf8dd0eecb3d 208 //redovi
2016US_DzanaHanic 1:bf8dd0eecb3d 209 for (int i = 0; i < 47; i++) lcd.setPixel(i, 0);
2016US_DzanaHanic 1:bf8dd0eecb3d 210 for (int i = 0; i < 47; i++) lcd.setPixel(i, 15);
2016US_DzanaHanic 1:bf8dd0eecb3d 211 for (int i = 0; i < 47; i++) lcd.setPixel(i, 31);
2016US_DzanaHanic 1:bf8dd0eecb3d 212 for (int i = 0; i < 47; i++) lcd.setPixel(i, 47);
2016US_DzanaHanic 1:bf8dd0eecb3d 213
2016US_DzanaHanic 1:bf8dd0eecb3d 214 //kolone
2016US_DzanaHanic 1:bf8dd0eecb3d 215 for (int i = 0; i < 47; i++) lcd.setPixel(0, i);
2016US_DzanaHanic 1:bf8dd0eecb3d 216 for (int i = 0; i < 47; i++) lcd.setPixel(15, i);
2016US_DzanaHanic 1:bf8dd0eecb3d 217 for (int i = 0; i < 47; i++) lcd.setPixel(31, i);
2016US_DzanaHanic 1:bf8dd0eecb3d 218 for (int i = 0; i < 47; i++) lcd.setPixel(47, i);
2016US_DzanaHanic 1:bf8dd0eecb3d 219
2016US_DzanaHanic 1:bf8dd0eecb3d 220 //updateovanje displeja zbog promjena u pikselima
2016US_DzanaHanic 1:bf8dd0eecb3d 221 lcd.refresh();
2016US_DzanaHanic 1:bf8dd0eecb3d 222 }
2016US_DzanaHanic 1:bf8dd0eecb3d 223
2016US_DzanaHanic 1:bf8dd0eecb3d 224 //funkcija za ciscenje mreze nakon odigrane igre
2016US_DzanaHanic 1:bf8dd0eecb3d 225 void ocistiGrid()
2016US_DzanaHanic 1:bf8dd0eecb3d 226 {
2016US_DzanaHanic 1:bf8dd0eecb3d 227 for (int i = 0; i < 47; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 228 for (int j = 0; j < 47; j++) lcd.clearPixel(i,j);
2016US_DzanaHanic 1:bf8dd0eecb3d 229 }
2016US_DzanaHanic 1:bf8dd0eecb3d 230
2016US_DzanaHanic 1:bf8dd0eecb3d 231 }
2016US_DzanaHanic 1:bf8dd0eecb3d 232 //funkcija za ispisivanje trenutnog rezultata i icrtavanje polja za novu rundu
2016US_DzanaHanic 1:bf8dd0eecb3d 233 void iscrtajPoljeNoveRunde ()
2016US_DzanaHanic 1:bf8dd0eecb3d 234 {
2016US_DzanaHanic 1:bf8dd0eecb3d 235 if ((mode == '3' || mode == '4') && (brPobjedaO + brPobjedaX != 3)) {
2016US_DzanaHanic 1:bf8dd0eecb3d 236 ocistiGrid();
2016US_DzanaHanic 1:bf8dd0eecb3d 237 iscrtajGrid();
2016US_DzanaHanic 1:bf8dd0eecb3d 238 postavkaPolja();
2016US_DzanaHanic 1:bf8dd0eecb3d 239 trenPoljeX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 240 trenPoljeY = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 241 if(brRundi%2 == 0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 242 naReduCPU=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 243 naReduX=false;
2016US_DzanaHanic 1:bf8dd0eecb3d 244 }
2016US_DzanaHanic 1:bf8dd0eecb3d 245 else {naReduCPU=false;
2016US_DzanaHanic 1:bf8dd0eecb3d 246 naReduX=true;}
2016US_DzanaHanic 1:bf8dd0eecb3d 247 prviPotez=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 248 brRundi++;
2016US_DzanaHanic 1:bf8dd0eecb3d 249 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 250 if(brPobjedaX==1 && brPobjedaO==0)
2016US_DzanaHanic 1:bf8dd0eecb3d 251 lcd.printString("1 : 0", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 252 else if(brPobjedaX==2 && brPobjedaO==0)
2016US_DzanaHanic 1:bf8dd0eecb3d 253 lcd.printString("2 : 0", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 254 else if(brPobjedaX==3 && brPobjedaO==0)
2016US_DzanaHanic 1:bf8dd0eecb3d 255 lcd.printString("3 : 0", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 256 else if(brPobjedaX==0 && brPobjedaO==3)
2016US_DzanaHanic 1:bf8dd0eecb3d 257 lcd.printString("0 : 3", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 258 else if(brPobjedaX==0 && brPobjedaO==2)
2016US_DzanaHanic 1:bf8dd0eecb3d 259 lcd.printString("0 : 2", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 260 else if(brPobjedaX==1 && brPobjedaO==1)
2016US_DzanaHanic 1:bf8dd0eecb3d 261 lcd.printString("1 : 1", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 262 else if(brPobjedaX==0 && brPobjedaO==1)
2016US_DzanaHanic 1:bf8dd0eecb3d 263 lcd.printString("0 : 1", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 264 else if(brPobjedaX==2 && brPobjedaO==1)
2016US_DzanaHanic 1:bf8dd0eecb3d 265 lcd.printString("2 : 1", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 266 else if(brPobjedaX==1 && brPobjedaO==2)
2016US_DzanaHanic 1:bf8dd0eecb3d 267 lcd.printString("1 : 2", 50, 4);
2016US_DzanaHanic 1:bf8dd0eecb3d 268
2016US_DzanaHanic 1:bf8dd0eecb3d 269 }
2016US_DzanaHanic 1:bf8dd0eecb3d 270 lcd.refresh();
2016US_DzanaHanic 1:bf8dd0eecb3d 271
2016US_DzanaHanic 1:bf8dd0eecb3d 272 popunjenaPoljaCPU = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 273 pobijedioX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 274 pobijedioO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 275 }
2016US_DzanaHanic 1:bf8dd0eecb3d 276
2016US_DzanaHanic 1:bf8dd0eecb3d 277 void gore()
2016US_DzanaHanic 1:bf8dd0eecb3d 278 {
2016US_DzanaHanic 1:bf8dd0eecb3d 279 izbrisiKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 280 if(trenPoljeY == 1 || trenPoljeY == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 281 trenPoljeY--;
2016US_DzanaHanic 1:bf8dd0eecb3d 282 trenutnaPozicija = pozicija[trenPoljeX][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 283 } else if (trenPoljeY == 0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 284 trenutnaPozicija = pozicija[trenPoljeX][2];
2016US_DzanaHanic 1:bf8dd0eecb3d 285 trenPoljeY = 2;
2016US_DzanaHanic 1:bf8dd0eecb3d 286 }
2016US_DzanaHanic 1:bf8dd0eecb3d 287 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 288 }
2016US_DzanaHanic 1:bf8dd0eecb3d 289 void dole()
2016US_DzanaHanic 1:bf8dd0eecb3d 290 {
2016US_DzanaHanic 1:bf8dd0eecb3d 291 izbrisiKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 292 if(trenPoljeY == 0 || trenPoljeY ==1 ) {
2016US_DzanaHanic 1:bf8dd0eecb3d 293 trenPoljeY++;
2016US_DzanaHanic 1:bf8dd0eecb3d 294 trenutnaPozicija = pozicija[trenPoljeX][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 295 }
2016US_DzanaHanic 1:bf8dd0eecb3d 296
2016US_DzanaHanic 1:bf8dd0eecb3d 297 else if (trenPoljeY == 2 ) {
2016US_DzanaHanic 1:bf8dd0eecb3d 298 trenPoljeY = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 299 trenutnaPozicija = pozicija[trenPoljeX][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 300 }
2016US_DzanaHanic 1:bf8dd0eecb3d 301 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 302 }
2016US_DzanaHanic 1:bf8dd0eecb3d 303 void lijevo()
2016US_DzanaHanic 1:bf8dd0eecb3d 304 {
2016US_DzanaHanic 1:bf8dd0eecb3d 305 izbrisiKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 306 if(trenPoljeX == 2 || trenPoljeX == 1) {
2016US_DzanaHanic 1:bf8dd0eecb3d 307 trenPoljeX--;
2016US_DzanaHanic 1:bf8dd0eecb3d 308 trenutnaPozicija = pozicija[trenPoljeX][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 309
2016US_DzanaHanic 1:bf8dd0eecb3d 310 } else if (trenPoljeX == 0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 311 trenutnaPozicija = pozicija[2][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 312 trenPoljeX=2;
2016US_DzanaHanic 1:bf8dd0eecb3d 313 }
2016US_DzanaHanic 1:bf8dd0eecb3d 314 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 315 }
2016US_DzanaHanic 1:bf8dd0eecb3d 316 void desno()
2016US_DzanaHanic 1:bf8dd0eecb3d 317 {
2016US_DzanaHanic 1:bf8dd0eecb3d 318 izbrisiKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 319 if(trenPoljeX == 0 || trenPoljeX == 1) {
2016US_DzanaHanic 1:bf8dd0eecb3d 320 trenPoljeX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 321 trenutnaPozicija = pozicija[trenPoljeX][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 322
2016US_DzanaHanic 1:bf8dd0eecb3d 323 } else if (trenPoljeX == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 324 trenutnaPozicija = pozicija[0][trenPoljeY];
2016US_DzanaHanic 1:bf8dd0eecb3d 325 trenPoljeX=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 326 }
2016US_DzanaHanic 1:bf8dd0eecb3d 327 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 328 }
2016US_DzanaHanic 1:bf8dd0eecb3d 329
2016US_DzanaHanic 1:bf8dd0eecb3d 330 //provjerava ishod igre
2016US_DzanaHanic 1:bf8dd0eecb3d 331 bool provjeriPobjedu()
2016US_DzanaHanic 1:bf8dd0eecb3d 332 {
2016US_DzanaHanic 1:bf8dd0eecb3d 333 int brojacRedovaX = 0, brojacDijagonalaX1 = 0, brojacDijagonalaX2 = 0, brojacKolonaX= 0, br =0;
2016US_DzanaHanic 1:bf8dd0eecb3d 334 for(int i=0; i<3; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 335 for(int j=0; j<3; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 336 if (pozicija[i][j].imaX == true) brojacRedovaX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 337 if (pozicija[j][i].imaX == true) brojacKolonaX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 338 if (i == j && pozicija[i][j].imaX == true) brojacDijagonalaX1++;
2016US_DzanaHanic 1:bf8dd0eecb3d 339 if (j == 3 - i -1 && pozicija[i][j].imaX == true) brojacDijagonalaX2++;
2016US_DzanaHanic 1:bf8dd0eecb3d 340 //provjerava da li su sva polja popunjena (nerijesen ishod)
2016US_DzanaHanic 1:bf8dd0eecb3d 341 if (pozicija[i][j].upisano) br++;
2016US_DzanaHanic 1:bf8dd0eecb3d 342
2016US_DzanaHanic 1:bf8dd0eecb3d 343 }
2016US_DzanaHanic 1:bf8dd0eecb3d 344 if(brojacRedovaX == 3 || brojacDijagonalaX1 == 3 || brojacKolonaX == 3 || brojacDijagonalaX2 == 3) {
2016US_DzanaHanic 1:bf8dd0eecb3d 345 brPobjedaX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 346 pobijedioX = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 347 pobijedioO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 348 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 349 }
2016US_DzanaHanic 1:bf8dd0eecb3d 350 brojacRedovaX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 351 brojacKolonaX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 352
2016US_DzanaHanic 1:bf8dd0eecb3d 353 }
2016US_DzanaHanic 1:bf8dd0eecb3d 354
2016US_DzanaHanic 1:bf8dd0eecb3d 355 int brojacRedovaO = 0, brojacDijagonalaO1 = 0, brojacKolonaO = 0, brojacDijagonalaO2 = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 356 for(int i=0; i<3; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 357 for(int j=0; j<3; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 358 if (pozicija[i][j].imaO == true) brojacRedovaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 359 if (pozicija[j][i].imaO == true) brojacKolonaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 360 if (i == j && pozicija[i][j].imaO == true) brojacDijagonalaO1++;
2016US_DzanaHanic 1:bf8dd0eecb3d 361 if (j == 3 - i -1 && pozicija[i][j].imaO == true) brojacDijagonalaO2++;
2016US_DzanaHanic 1:bf8dd0eecb3d 362
2016US_DzanaHanic 1:bf8dd0eecb3d 363 }
2016US_DzanaHanic 1:bf8dd0eecb3d 364 if(brojacRedovaO == 3 || brojacDijagonalaO1 == 3 || brojacDijagonalaO2 == 3 || brojacKolonaO == 3 ) {
2016US_DzanaHanic 1:bf8dd0eecb3d 365 brPobjedaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 366 pobijedioX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 367 pobijedioO = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 368 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 369
2016US_DzanaHanic 1:bf8dd0eecb3d 370 }
2016US_DzanaHanic 1:bf8dd0eecb3d 371 brojacRedovaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 372 brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 373 }
2016US_DzanaHanic 1:bf8dd0eecb3d 374
2016US_DzanaHanic 1:bf8dd0eecb3d 375 if (br == 9) {
2016US_DzanaHanic 1:bf8dd0eecb3d 376 pobijedioX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 377 pobijedioO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 378 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 379 }
2016US_DzanaHanic 1:bf8dd0eecb3d 380 pobijedioX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 381 pobijedioO = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 382 return false;
2016US_DzanaHanic 1:bf8dd0eecb3d 383 }
2016US_DzanaHanic 1:bf8dd0eecb3d 384
2016US_DzanaHanic 1:bf8dd0eecb3d 385 void zavrsenaIgra()
2016US_DzanaHanic 1:bf8dd0eecb3d 386 {
2016US_DzanaHanic 1:bf8dd0eecb3d 387 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 388 lcd.printString("Final ", 0 ,1);
2016US_DzanaHanic 1:bf8dd0eecb3d 389 if (brPobjedaX > brPobjedaO) {
2016US_DzanaHanic 1:bf8dd0eecb3d 390 lcd.printString("Winner: X", 0, 1);
2016US_DzanaHanic 1:bf8dd0eecb3d 391 } else lcd. printString ("Winner: O", 0, 2);
2016US_DzanaHanic 1:bf8dd0eecb3d 392
2016US_DzanaHanic 1:bf8dd0eecb3d 393 wait(2);
2016US_DzanaHanic 1:bf8dd0eecb3d 394
2016US_DzanaHanic 1:bf8dd0eecb3d 395 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 396
2016US_DzanaHanic 1:bf8dd0eecb3d 397 lcd.printString("Game over!", 1, 1);
2016US_DzanaHanic 1:bf8dd0eecb3d 398 }
2016US_DzanaHanic 1:bf8dd0eecb3d 399
2016US_DzanaHanic 1:bf8dd0eecb3d 400 void zavrsenaRunda(char c)
2016US_DzanaHanic 1:bf8dd0eecb3d 401 {
2016US_DzanaHanic 1:bf8dd0eecb3d 402
2016US_DzanaHanic 1:bf8dd0eecb3d 403 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 404
2016US_DzanaHanic 1:bf8dd0eecb3d 405 if(c =='x') {
2016US_DzanaHanic 1:bf8dd0eecb3d 406 lcd.printString("Winner: X", 0, 1);
2016US_DzanaHanic 1:bf8dd0eecb3d 407 } else if(c =='o') lcd. printString ("Winner: O", 0, 2);
2016US_DzanaHanic 1:bf8dd0eecb3d 408 else lcd.printString("Tie!", 0, 3);
2016US_DzanaHanic 1:bf8dd0eecb3d 409
2016US_DzanaHanic 1:bf8dd0eecb3d 410 wait(2);
2016US_DzanaHanic 1:bf8dd0eecb3d 411 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 412
2016US_DzanaHanic 1:bf8dd0eecb3d 413
2016US_DzanaHanic 1:bf8dd0eecb3d 414 }
2016US_DzanaHanic 1:bf8dd0eecb3d 415
2016US_DzanaHanic 1:bf8dd0eecb3d 416
2016US_DzanaHanic 1:bf8dd0eecb3d 417
2016US_DzanaHanic 1:bf8dd0eecb3d 418
2016US_DzanaHanic 1:bf8dd0eecb3d 419
2016US_DzanaHanic 1:bf8dd0eecb3d 420 bool pobjediBlokirajCPU()
2016US_DzanaHanic 1:bf8dd0eecb3d 421 {
2016US_DzanaHanic 1:bf8dd0eecb3d 422 //Kompjuter prvo provjerava mogućnosti njegove pobjede, pa blokiranja pobjede drugog igrača
2016US_DzanaHanic 1:bf8dd0eecb3d 423 int brojacRedovaO = 0, brojacDijagonalaO1 = 0, brojacDijagonalaO2 = 0, brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 424 int brojacRedovaX = 0, brojacDijagonalaX1 = 0, brojacDijagonalaX2 = 0, brojacKolonaX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 425 int pobijediRed=0,pobijedikolona=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 426 int blokirajRed = 0, blokirajKolona = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 427 // prilika da cpu pobijedi - ima dva O u redu/koloni/dijagonali
2016US_DzanaHanic 1:bf8dd0eecb3d 428 for(int i=0; i<3; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 429 for(int j=0; j<3; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 430 if (pozicija[i][j].imaO == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 431 brojacRedovaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 432 pobijediRed=i;
2016US_DzanaHanic 1:bf8dd0eecb3d 433 }
2016US_DzanaHanic 1:bf8dd0eecb3d 434 if (pozicija[j][i].imaO == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 435 brojacKolonaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 436 pobijedikolona=i;
2016US_DzanaHanic 1:bf8dd0eecb3d 437 }
2016US_DzanaHanic 1:bf8dd0eecb3d 438 if ( i== j && pozicija[i][j].imaO == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 439 brojacDijagonalaO1++;
2016US_DzanaHanic 1:bf8dd0eecb3d 440 }
2016US_DzanaHanic 1:bf8dd0eecb3d 441 if ( j == 3 - i -1 && pozicija [i][j].imaO== true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 442 brojacDijagonalaO2++;
2016US_DzanaHanic 1:bf8dd0eecb3d 443 }
2016US_DzanaHanic 1:bf8dd0eecb3d 444
2016US_DzanaHanic 1:bf8dd0eecb3d 445 //CPU blokira protivnika ukoliko je brojac X=2
2016US_DzanaHanic 1:bf8dd0eecb3d 446
2016US_DzanaHanic 1:bf8dd0eecb3d 447 if (pozicija[i][j].imaX == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 448 brojacRedovaX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 449 blokirajRed = i;
2016US_DzanaHanic 1:bf8dd0eecb3d 450 }
2016US_DzanaHanic 1:bf8dd0eecb3d 451 if (pozicija[j][i].imaX == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 452 brojacKolonaX++;
2016US_DzanaHanic 1:bf8dd0eecb3d 453 blokirajKolona = i;
2016US_DzanaHanic 1:bf8dd0eecb3d 454 }
2016US_DzanaHanic 1:bf8dd0eecb3d 455 if ( i== j && pozicija[i][j].imaX == true) brojacDijagonalaX1++;
2016US_DzanaHanic 1:bf8dd0eecb3d 456 if ( j == 3 - i -1 && pozicija [i][j].imaX == true) brojacDijagonalaX2++;
2016US_DzanaHanic 1:bf8dd0eecb3d 457
2016US_DzanaHanic 1:bf8dd0eecb3d 458 }
2016US_DzanaHanic 1:bf8dd0eecb3d 459 //primjer za 2 u redu
2016US_DzanaHanic 1:bf8dd0eecb3d 460 if(brojacRedovaO == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 461 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 462 if(pozicija[pobijediRed][k].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 463 nacrtajO(pozicija[pobijediRed][k].x, pozicija[pobijediRed][k].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 464 pozicija[pobijediRed][k].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 465 pozicija[pobijediRed][k].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 466 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 467 }
2016US_DzanaHanic 1:bf8dd0eecb3d 468 }
2016US_DzanaHanic 1:bf8dd0eecb3d 469 } else if(brojacKolonaO== 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 470 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 471 if(pozicija[k][pobijedikolona].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 472 nacrtajO(pozicija[k][pobijedikolona].x, pozicija[k][pobijedikolona].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 473 pozicija[k][pobijedikolona].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 474 pozicija[k][pobijedikolona].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 475 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 476 }
2016US_DzanaHanic 1:bf8dd0eecb3d 477 }
2016US_DzanaHanic 1:bf8dd0eecb3d 478 } else if(brojacDijagonalaO1== 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 479 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 480 if(pozicija[k][k].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 481 nacrtajO(pozicija[k][k].x, pozicija[k][k].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 482 pozicija[k][k].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 483 pozicija[k][k].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 484 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 485 }
2016US_DzanaHanic 1:bf8dd0eecb3d 486 }
2016US_DzanaHanic 1:bf8dd0eecb3d 487 } else if(brojacDijagonalaO2== 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 488 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 489 if(pozicija[k][3-k-1].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 490 nacrtajO(pozicija[k][3-k-1].x, pozicija[k][3-k-1].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 491 pozicija[k][3-k-1].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 492 pozicija[k][3-k-1].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 493 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 494 }
2016US_DzanaHanic 1:bf8dd0eecb3d 495 }
2016US_DzanaHanic 1:bf8dd0eecb3d 496 }
2016US_DzanaHanic 1:bf8dd0eecb3d 497 if (brojacRedovaX == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 498 for ( int k = 0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 499 if (pozicija[blokirajRed][k].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 500 nacrtajO(pozicija[blokirajRed][k].x, pozicija[blokirajRed][k].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 501 pozicija[blokirajRed][k].upisano = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 502 pozicija[blokirajRed][k].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 503 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 504 }
2016US_DzanaHanic 1:bf8dd0eecb3d 505 }
2016US_DzanaHanic 1:bf8dd0eecb3d 506 } else if (brojacKolonaX == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 507 for ( int k = 0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 508 if(pozicija[k][blokirajKolona].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 509 nacrtajO(pozicija[k][blokirajKolona].x, pozicija[k][blokirajKolona].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 510 pozicija[k][blokirajKolona].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 511 pozicija[k][blokirajKolona].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 512
2016US_DzanaHanic 1:bf8dd0eecb3d 513 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 514 }
2016US_DzanaHanic 1:bf8dd0eecb3d 515 }
2016US_DzanaHanic 1:bf8dd0eecb3d 516 } else if (brojacDijagonalaX1 == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 517 for ( int k = 0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 518 if(pozicija[k][k].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 519 nacrtajO(pozicija[k][k].x, pozicija[k][k].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 520 pozicija[k][k].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 521 pozicija[k][k].upisano =true;
2016US_DzanaHanic 1:bf8dd0eecb3d 522 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 523 }
2016US_DzanaHanic 1:bf8dd0eecb3d 524 }
2016US_DzanaHanic 1:bf8dd0eecb3d 525 } else if (brojacDijagonalaX2 == 2) {
2016US_DzanaHanic 1:bf8dd0eecb3d 526 for ( int k = 0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 527 if(pozicija[k][3 - k - 1].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 528 nacrtajO(pozicija[k][3- k -1].x, pozicija[k][3 - k - 1].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 529 pozicija[k][3- k -1].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 530 pozicija[k][3 - k - 1].upisano = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 531 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 532 }
2016US_DzanaHanic 1:bf8dd0eecb3d 533 }
2016US_DzanaHanic 1:bf8dd0eecb3d 534 }
2016US_DzanaHanic 1:bf8dd0eecb3d 535 brojacRedovaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 536 brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 537 brojacRedovaX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 538 brojacKolonaX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 539 }
2016US_DzanaHanic 1:bf8dd0eecb3d 540 return false;
2016US_DzanaHanic 1:bf8dd0eecb3d 541 }
2016US_DzanaHanic 1:bf8dd0eecb3d 542
2016US_DzanaHanic 1:bf8dd0eecb3d 543 bool provjeriUgloveCPU()
2016US_DzanaHanic 1:bf8dd0eecb3d 544 {
2016US_DzanaHanic 1:bf8dd0eecb3d 545
2016US_DzanaHanic 1:bf8dd0eecb3d 546 if(pozicija[0][0].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 547 nacrtajO(pozicija[0][0].x, pozicija[0][0].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 548 pozicija[0][0].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 549 pozicija[0][0].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 550 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 551 } else if(pozicija[0][2].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 552 nacrtajO(pozicija[0][2].x, pozicija[0][2].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 553 pozicija[0][2].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 554 pozicija[0][2].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 555 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 556 } else if(pozicija[2][0].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 557 nacrtajO(pozicija[2][0].x, pozicija[2][0].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 558 pozicija[2][0].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 559 pozicija[2][0].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 560 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 561 } else if(pozicija[2][2].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 562 nacrtajO(pozicija[2][2].x, pozicija[2][2].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 563 pozicija[2][2].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 564 pozicija[2][2].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 565 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 566 }
2016US_DzanaHanic 1:bf8dd0eecb3d 567 return false;
2016US_DzanaHanic 1:bf8dd0eecb3d 568 }
2016US_DzanaHanic 1:bf8dd0eecb3d 569 bool generisiPotezCPU()
2016US_DzanaHanic 1:bf8dd0eecb3d 570 {
2016US_DzanaHanic 1:bf8dd0eecb3d 571
2016US_DzanaHanic 1:bf8dd0eecb3d 572 int brojacRedovaO = 0, brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 573 int odigrajRed=0,odigrajkolona=0;
2016US_DzanaHanic 1:bf8dd0eecb3d 574 for(int i=0; i<3; i++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 575 for(int j=0; j<3; j++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 576 if (pozicija[i][j].imaO == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 577 if(pozicija[i][j].imaX == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 578 brojacRedovaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 579 break;
2016US_DzanaHanic 1:bf8dd0eecb3d 580 }
2016US_DzanaHanic 1:bf8dd0eecb3d 581 brojacRedovaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 582 odigrajRed=i;
2016US_DzanaHanic 1:bf8dd0eecb3d 583 }
2016US_DzanaHanic 1:bf8dd0eecb3d 584 if (pozicija[j][i].imaO == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 585 if(pozicija[i][j].imaX == true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 586 brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 587 break;
2016US_DzanaHanic 1:bf8dd0eecb3d 588 }
2016US_DzanaHanic 1:bf8dd0eecb3d 589 brojacKolonaO++;
2016US_DzanaHanic 1:bf8dd0eecb3d 590 odigrajkolona=i;
2016US_DzanaHanic 1:bf8dd0eecb3d 591 }
2016US_DzanaHanic 1:bf8dd0eecb3d 592 }
2016US_DzanaHanic 1:bf8dd0eecb3d 593 if(brojacRedovaO == 1) {
2016US_DzanaHanic 1:bf8dd0eecb3d 594 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 595 if(pozicija[odigrajRed][k].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 596 nacrtajO(pozicija[odigrajRed][k].x, pozicija[odigrajRed][k].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 597 pozicija[odigrajRed][k].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 598 pozicija[odigrajRed][k].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 599 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 600 }
2016US_DzanaHanic 1:bf8dd0eecb3d 601 }
2016US_DzanaHanic 1:bf8dd0eecb3d 602 } else if(brojacKolonaO== 1) {
2016US_DzanaHanic 1:bf8dd0eecb3d 603 for(int k=0; k<3; k++) {
2016US_DzanaHanic 1:bf8dd0eecb3d 604 if(pozicija[k][odigrajkolona].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 605 nacrtajO(pozicija[k][odigrajkolona].x, pozicija[k][odigrajkolona].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 606 pozicija[k][odigrajkolona].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 607 pozicija[k][odigrajkolona].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 608 return true;
2016US_DzanaHanic 1:bf8dd0eecb3d 609 }
2016US_DzanaHanic 1:bf8dd0eecb3d 610 }
2016US_DzanaHanic 1:bf8dd0eecb3d 611
2016US_DzanaHanic 1:bf8dd0eecb3d 612 }
2016US_DzanaHanic 1:bf8dd0eecb3d 613 brojacRedovaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 614 brojacKolonaO = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 615 }
2016US_DzanaHanic 1:bf8dd0eecb3d 616 return false;
2016US_DzanaHanic 1:bf8dd0eecb3d 617 }
2016US_DzanaHanic 1:bf8dd0eecb3d 618 void potezKompjutera()
2016US_DzanaHanic 1:bf8dd0eecb3d 619 {
2016US_DzanaHanic 1:bf8dd0eecb3d 620 if(popunjenaPoljaCPU==1 && provjeriUgloveCPU() && brRundi%2 != 0 ) {
2016US_DzanaHanic 1:bf8dd0eecb3d 621 return;
2016US_DzanaHanic 1:bf8dd0eecb3d 622 }
2016US_DzanaHanic 1:bf8dd0eecb3d 623 //ako CPU igra prvi, zapocinje sa oznakom u centru
2016US_DzanaHanic 1:bf8dd0eecb3d 624 else if(popunjenaPoljaCPU==0 && pozicija[1][1].upisano==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 625 // wait(0.5);
2016US_DzanaHanic 1:bf8dd0eecb3d 626 nacrtajO(pozicija[1][1].x, pozicija[1][1].y);
2016US_DzanaHanic 1:bf8dd0eecb3d 627 pozicija[1][1].imaO=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 628 pozicija[1][1].upisano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 629
2016US_DzanaHanic 1:bf8dd0eecb3d 630 return;
2016US_DzanaHanic 1:bf8dd0eecb3d 631 } else if(pobjediBlokirajCPU()) {
2016US_DzanaHanic 1:bf8dd0eecb3d 632 return;
2016US_DzanaHanic 1:bf8dd0eecb3d 633 }
2016US_DzanaHanic 1:bf8dd0eecb3d 634
2016US_DzanaHanic 1:bf8dd0eecb3d 635 else if(generisiPotezCPU()) {
2016US_DzanaHanic 1:bf8dd0eecb3d 636 return;
2016US_DzanaHanic 1:bf8dd0eecb3d 637 } else if(provjeriUgloveCPU()) {
2016US_DzanaHanic 1:bf8dd0eecb3d 638 return;
2016US_DzanaHanic 1:bf8dd0eecb3d 639 }
2016US_DzanaHanic 1:bf8dd0eecb3d 640
2016US_DzanaHanic 1:bf8dd0eecb3d 641
2016US_DzanaHanic 1:bf8dd0eecb3d 642 popunjenaPoljaCPU++;
2016US_DzanaHanic 1:bf8dd0eecb3d 643 }
2016US_DzanaHanic 1:bf8dd0eecb3d 644
2016US_DzanaHanic 1:bf8dd0eecb3d 645 void odigrajPotez ()
2016US_DzanaHanic 1:bf8dd0eecb3d 646 {
2016US_DzanaHanic 1:bf8dd0eecb3d 647 if(debounce.read_ms() > 200) {
2016US_DzanaHanic 1:bf8dd0eecb3d 648 if (trenutnaPozicija.upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 649 if (naReduX || (naReduCPU && mode=='3') || (!prviPotez && mode=='3' && brRundi%2!=0) ) { /*ReduCPU*/
2016US_DzanaHanic 1:bf8dd0eecb3d 650 if(!naReduCPU && mode=='3') {
2016US_DzanaHanic 1:bf8dd0eecb3d 651 if(pozicija[trenPoljeX][trenPoljeY].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 652 nacrtajX(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 653 pozicija[trenPoljeX][trenPoljeY].imaX = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 654 pozicija[trenPoljeX][trenPoljeY].upisano = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 655 }
2016US_DzanaHanic 1:bf8dd0eecb3d 656 } else if(mode=='4') {
2016US_DzanaHanic 1:bf8dd0eecb3d 657 if(pozicija[trenPoljeX][trenPoljeY].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 658 nacrtajX(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 659 pozicija[trenPoljeX][trenPoljeY].imaX = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 660 pozicija[trenPoljeX][trenPoljeY].upisano = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 661 }
2016US_DzanaHanic 1:bf8dd0eecb3d 662 }
2016US_DzanaHanic 1:bf8dd0eecb3d 663 if(mode=='4') //Ako je player vs player- pređi na Oks igrača
2016US_DzanaHanic 1:bf8dd0eecb3d 664 naReduX = false;
2016US_DzanaHanic 1:bf8dd0eecb3d 665 else if(mode=='3') {
2016US_DzanaHanic 1:bf8dd0eecb3d 666 potezKompjutera();
2016US_DzanaHanic 1:bf8dd0eecb3d 667 naReduCPU=false; //Ako je player vs CPU - preskoči Oks igrača (prvi ostaje true)- idi na CPU potez
2016US_DzanaHanic 1:bf8dd0eecb3d 668 }
2016US_DzanaHanic 1:bf8dd0eecb3d 669
2016US_DzanaHanic 1:bf8dd0eecb3d 670 } else if (!naReduX && mode=='4') {
2016US_DzanaHanic 1:bf8dd0eecb3d 671 if(pozicija[trenPoljeX][trenPoljeY].upisano == false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 672 nacrtajO(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 673 pozicija[trenPoljeX][trenPoljeY].imaO = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 674 pozicija[trenPoljeX][trenPoljeY].upisano = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 675 naReduX = true;
2016US_DzanaHanic 1:bf8dd0eecb3d 676 }
2016US_DzanaHanic 1:bf8dd0eecb3d 677 }
2016US_DzanaHanic 1:bf8dd0eecb3d 678
2016US_DzanaHanic 1:bf8dd0eecb3d 679 }
2016US_DzanaHanic 1:bf8dd0eecb3d 680 prviPotez=false;
2016US_DzanaHanic 1:bf8dd0eecb3d 681 if
2016US_DzanaHanic 1:bf8dd0eecb3d 682 (provjeriPobjedu()) {
2016US_DzanaHanic 1:bf8dd0eecb3d 683 lcd.refresh();
2016US_DzanaHanic 1:bf8dd0eecb3d 684 if(pobijedioX==true)zavrsenaRunda('x');
2016US_DzanaHanic 1:bf8dd0eecb3d 685 else if(pobijedioO==true) zavrsenaRunda('o');
2016US_DzanaHanic 1:bf8dd0eecb3d 686 else zavrsenaRunda('t');
2016US_DzanaHanic 1:bf8dd0eecb3d 687
2016US_DzanaHanic 1:bf8dd0eecb3d 688 iscrtajPoljeNoveRunde();
2016US_DzanaHanic 1:bf8dd0eecb3d 689 }
2016US_DzanaHanic 1:bf8dd0eecb3d 690 if (brPobjedaX + brPobjedaO == 3)zavrsenaIgra();
2016US_DzanaHanic 1:bf8dd0eecb3d 691 }
2016US_DzanaHanic 1:bf8dd0eecb3d 692 debounce.reset();
2016US_DzanaHanic 1:bf8dd0eecb3d 693 }
2016US_DzanaHanic 1:bf8dd0eecb3d 694 //funkcija za ispisivanje pocetnog ekrana
2016US_DzanaHanic 1:bf8dd0eecb3d 695 void startniMode()
2016US_DzanaHanic 1:bf8dd0eecb3d 696 {
2016US_DzanaHanic 1:bf8dd0eecb3d 697 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 698 lcd.printString("Tic-Tac-Toe",1, 2);
2016US_DzanaHanic 1:bf8dd0eecb3d 699 wait(2);
2016US_DzanaHanic 1:bf8dd0eecb3d 700 mode = '1';
2016US_DzanaHanic 1:bf8dd0eecb3d 701 //Prelazak na ekran odabira nakon 2 sekunde
2016US_DzanaHanic 1:bf8dd0eecb3d 702 izborNacinaIgre();
2016US_DzanaHanic 1:bf8dd0eecb3d 703 }
2016US_DzanaHanic 1:bf8dd0eecb3d 704 void glavniMode()
2016US_DzanaHanic 1:bf8dd0eecb3d 705 {
2016US_DzanaHanic 1:bf8dd0eecb3d 706 iscrtajGrid();
2016US_DzanaHanic 1:bf8dd0eecb3d 707 if (mode == '4') {
2016US_DzanaHanic 1:bf8dd0eecb3d 708 lcd.printString("P vs P",50,0);
2016US_DzanaHanic 1:bf8dd0eecb3d 709 }
2016US_DzanaHanic 1:bf8dd0eecb3d 710 if (mode == '3') {
2016US_DzanaHanic 1:bf8dd0eecb3d 711 lcd.printString("P vs CPU ",50,1);
2016US_DzanaHanic 1:bf8dd0eecb3d 712 }
2016US_DzanaHanic 1:bf8dd0eecb3d 713 nacrtajKursor(trenutnaPozicija.x, trenutnaPozicija.y);
2016US_DzanaHanic 1:bf8dd0eecb3d 714 lcd.printString("0:0",50,4);
2016US_DzanaHanic 1:bf8dd0eecb3d 715 }
2016US_DzanaHanic 1:bf8dd0eecb3d 716
2016US_DzanaHanic 1:bf8dd0eecb3d 717 int main()
2016US_DzanaHanic 1:bf8dd0eecb3d 718 {
esokic 0:6ebfd28a8b0c 719 //deaktivacija led dioda
2016US_DzanaHanic 1:bf8dd0eecb3d 720 enable = 1;
esokic 0:6ebfd28a8b0c 721 //inicijalizacija displeja
esokic 0:6ebfd28a8b0c 722 lcd.init();
2016US_DzanaHanic 1:bf8dd0eecb3d 723
2016US_DzanaHanic 1:bf8dd0eecb3d 724 //Aktivacija pull-up otpornika
2016US_DzanaHanic 1:bf8dd0eecb3d 725 SW.mode(PullUp);
2016US_DzanaHanic 1:bf8dd0eecb3d 726
2016US_DzanaHanic 1:bf8dd0eecb3d 727 //pozivanje pocetnog ekrana
2016US_DzanaHanic 1:bf8dd0eecb3d 728 startniMode();
2016US_DzanaHanic 1:bf8dd0eecb3d 729 trenPoljeX = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 730 trenPoljeY = 0;
2016US_DzanaHanic 1:bf8dd0eecb3d 731 postavkaPolja();
2016US_DzanaHanic 1:bf8dd0eecb3d 732
2016US_DzanaHanic 1:bf8dd0eecb3d 733
2016US_DzanaHanic 1:bf8dd0eecb3d 734 debounce.start();
2016US_DzanaHanic 1:bf8dd0eecb3d 735 SW.rise(&odigrajPotez); //potez igrača
2016US_DzanaHanic 1:bf8dd0eecb3d 736
2016US_DzanaHanic 1:bf8dd0eecb3d 737 while(1) {
2016US_DzanaHanic 1:bf8dd0eecb3d 738 // pozicijaJoysticka();
2016US_DzanaHanic 1:bf8dd0eecb3d 739 if (mode == '2') {
2016US_DzanaHanic 1:bf8dd0eecb3d 740 //Klikom na taster
2016US_DzanaHanic 1:bf8dd0eecb3d 741 if( VRy > 2.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 742 mode = '3';
2016US_DzanaHanic 1:bf8dd0eecb3d 743 }
2016US_DzanaHanic 1:bf8dd0eecb3d 744
2016US_DzanaHanic 1:bf8dd0eecb3d 745 //donji klik na taster
2016US_DzanaHanic 1:bf8dd0eecb3d 746 else if (VRy < 1.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 747 mode = '4';
2016US_DzanaHanic 1:bf8dd0eecb3d 748
2016US_DzanaHanic 1:bf8dd0eecb3d 749 }
2016US_DzanaHanic 1:bf8dd0eecb3d 750 }
2016US_DzanaHanic 1:bf8dd0eecb3d 751 //wait (0.01);
2016US_DzanaHanic 1:bf8dd0eecb3d 752 if(pozvano ==false) {
2016US_DzanaHanic 1:bf8dd0eecb3d 753 if(mode == '3' || mode == '4') {
2016US_DzanaHanic 1:bf8dd0eecb3d 754 lcd.clear();
2016US_DzanaHanic 1:bf8dd0eecb3d 755 glavniMode();
2016US_DzanaHanic 1:bf8dd0eecb3d 756
2016US_DzanaHanic 1:bf8dd0eecb3d 757 pozvano=true;
2016US_DzanaHanic 1:bf8dd0eecb3d 758
2016US_DzanaHanic 1:bf8dd0eecb3d 759 }
2016US_DzanaHanic 1:bf8dd0eecb3d 760 }
2016US_DzanaHanic 1:bf8dd0eecb3d 761 if(pozvano==true) {
2016US_DzanaHanic 1:bf8dd0eecb3d 762 lcd.printString("",0,0);
2016US_DzanaHanic 1:bf8dd0eecb3d 763
2016US_DzanaHanic 1:bf8dd0eecb3d 764 if (VRy < 1.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 765 dole();
2016US_DzanaHanic 1:bf8dd0eecb3d 766 wait(0.3);
2016US_DzanaHanic 1:bf8dd0eecb3d 767 } else if(VRy > 2.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 768 gore();
2016US_DzanaHanic 1:bf8dd0eecb3d 769 wait(0.3);
2016US_DzanaHanic 1:bf8dd0eecb3d 770 } else if (VRx < 1.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 771 desno();
2016US_DzanaHanic 1:bf8dd0eecb3d 772 wait(0.3);
2016US_DzanaHanic 1:bf8dd0eecb3d 773 } else if(VRx > 2.0/3.0) {
2016US_DzanaHanic 1:bf8dd0eecb3d 774 lijevo();
2016US_DzanaHanic 1:bf8dd0eecb3d 775 wait(0.3);
2016US_DzanaHanic 1:bf8dd0eecb3d 776 }
2016US_DzanaHanic 1:bf8dd0eecb3d 777 }
2016US_DzanaHanic 1:bf8dd0eecb3d 778
2016US_DzanaHanic 1:bf8dd0eecb3d 779 }
esokic 0:6ebfd28a8b0c 780 }
2016US_DzanaHanic 1:bf8dd0eecb3d 781