Jusuf Delalić
/
PONG
pong
main.cpp@0:44bf5430d56b, 2019-06-16 (annotated)
- Committer:
- 2019US_JusufDelalic
- Date:
- Sun Jun 16 21:48:29 2019 +0000
- Revision:
- 0:44bf5430d56b
pong
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
2019US_JusufDelalic | 0:44bf5430d56b | 1 | #include "mbed.h" |
2019US_JusufDelalic | 0:44bf5430d56b | 2 | #include "N5110.h" |
2019US_JusufDelalic | 0:44bf5430d56b | 3 | |
2019US_JusufDelalic | 0:44bf5430d56b | 4 | #define X_MAX 83 |
2019US_JusufDelalic | 0:44bf5430d56b | 5 | #define Y_MAX 47 |
2019US_JusufDelalic | 0:44bf5430d56b | 6 | |
2019US_JusufDelalic | 0:44bf5430d56b | 7 | #define dp23 P0_0 |
2019US_JusufDelalic | 0:44bf5430d56b | 8 | |
2019US_JusufDelalic | 0:44bf5430d56b | 9 | DigitalIn taster(dp1); |
2019US_JusufDelalic | 0:44bf5430d56b | 10 | bool off = true; |
2019US_JusufDelalic | 0:44bf5430d56b | 11 | |
2019US_JusufDelalic | 0:44bf5430d56b | 12 | N5110 display(dp4, dp24, dp23, dp25, dp2, dp6, dp18); |
2019US_JusufDelalic | 0:44bf5430d56b | 13 | |
2019US_JusufDelalic | 0:44bf5430d56b | 14 | |
2019US_JusufDelalic | 0:44bf5430d56b | 15 | class Lopta; |
2019US_JusufDelalic | 0:44bf5430d56b | 16 | |
2019US_JusufDelalic | 0:44bf5430d56b | 17 | class Reket; |
2019US_JusufDelalic | 0:44bf5430d56b | 18 | |
2019US_JusufDelalic | 0:44bf5430d56b | 19 | class Ekran; |
2019US_JusufDelalic | 0:44bf5430d56b | 20 | |
2019US_JusufDelalic | 0:44bf5430d56b | 21 | enum FillType { |
2019US_JusufDelalic | 0:44bf5430d56b | 22 | FILL_TRANSPARENT, ///< Transparent with outline |
2019US_JusufDelalic | 0:44bf5430d56b | 23 | FILL_BLACK, ///< Filled black |
2019US_JusufDelalic | 0:44bf5430d56b | 24 | FILL_WHITE, ///< Filled white (no outline) |
2019US_JusufDelalic | 0:44bf5430d56b | 25 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 26 | |
2019US_JusufDelalic | 0:44bf5430d56b | 27 | |
2019US_JusufDelalic | 0:44bf5430d56b | 28 | AnalogIn lijeviVRy(dp10); //joystick |
2019US_JusufDelalic | 0:44bf5430d56b | 29 | AnalogIn desniVRy(dp11); |
2019US_JusufDelalic | 0:44bf5430d56b | 30 | DigitalIn lijeviSW(dp9); |
2019US_JusufDelalic | 0:44bf5430d56b | 31 | DigitalIn desniSW(dp13); |
2019US_JusufDelalic | 0:44bf5430d56b | 32 | |
2019US_JusufDelalic | 0:44bf5430d56b | 33 | enum Pozicija { |
2019US_JusufDelalic | 0:44bf5430d56b | 34 | Gore = 1, Centar = 0, Dolje = -1 |
2019US_JusufDelalic | 0:44bf5430d56b | 35 | } pozicijaLijevi = Centar, pozicijaDesni = Centar; // provejriti je li dekalsrisano.,......... |
2019US_JusufDelalic | 0:44bf5430d56b | 36 | |
2019US_JusufDelalic | 0:44bf5430d56b | 37 | float lijeviJoy = lijeviVRy; // vrijednost od 0 do 1 |
2019US_JusufDelalic | 0:44bf5430d56b | 38 | float desniJoy = desniVRy; // vrijednost od 0 do 1 |
2019US_JusufDelalic | 0:44bf5430d56b | 39 | |
2019US_JusufDelalic | 0:44bf5430d56b | 40 | DigitalOut enableLed(dp14); |
2019US_JusufDelalic | 0:44bf5430d56b | 41 | |
2019US_JusufDelalic | 0:44bf5430d56b | 42 | int tasterPressed(bool &off) |
2019US_JusufDelalic | 0:44bf5430d56b | 43 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 44 | if (off && taster) { |
2019US_JusufDelalic | 0:44bf5430d56b | 45 | off = false; |
2019US_JusufDelalic | 0:44bf5430d56b | 46 | return 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 47 | } else if (!taster) |
2019US_JusufDelalic | 0:44bf5430d56b | 48 | off = true; |
2019US_JusufDelalic | 0:44bf5430d56b | 49 | |
2019US_JusufDelalic | 0:44bf5430d56b | 50 | return 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 51 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 52 | |
2019US_JusufDelalic | 0:44bf5430d56b | 53 | |
2019US_JusufDelalic | 0:44bf5430d56b | 54 | void azurirajPozicijuLijevi() |
2019US_JusufDelalic | 0:44bf5430d56b | 55 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 56 | lijeviJoy = lijeviVRy; |
2019US_JusufDelalic | 0:44bf5430d56b | 57 | Pozicija novaPozicija; |
2019US_JusufDelalic | 0:44bf5430d56b | 58 | |
2019US_JusufDelalic | 0:44bf5430d56b | 59 | if (lijeviJoy < 1.0 / 3.0 + 0.08) novaPozicija = Dolje; |
2019US_JusufDelalic | 0:44bf5430d56b | 60 | else if (lijeviJoy > 2.0 / 3.0 - 0.08) novaPozicija = Gore; |
2019US_JusufDelalic | 0:44bf5430d56b | 61 | else |
2019US_JusufDelalic | 0:44bf5430d56b | 62 | novaPozicija = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 63 | |
2019US_JusufDelalic | 0:44bf5430d56b | 64 | if (novaPozicija != pozicijaLijevi) |
2019US_JusufDelalic | 0:44bf5430d56b | 65 | pozicijaLijevi = novaPozicija; |
2019US_JusufDelalic | 0:44bf5430d56b | 66 | |
2019US_JusufDelalic | 0:44bf5430d56b | 67 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 68 | |
2019US_JusufDelalic | 0:44bf5430d56b | 69 | void azurirajPozicijuDesni() |
2019US_JusufDelalic | 0:44bf5430d56b | 70 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 71 | desniJoy = desniVRy; |
2019US_JusufDelalic | 0:44bf5430d56b | 72 | Pozicija novaPozicija; |
2019US_JusufDelalic | 0:44bf5430d56b | 73 | |
2019US_JusufDelalic | 0:44bf5430d56b | 74 | if (desniJoy < 1.0 / 3.0 + 0.08) novaPozicija = Dolje; |
2019US_JusufDelalic | 0:44bf5430d56b | 75 | else if (desniJoy > 2.0 / 3.0 - 0.08) novaPozicija = Gore; |
2019US_JusufDelalic | 0:44bf5430d56b | 76 | else |
2019US_JusufDelalic | 0:44bf5430d56b | 77 | novaPozicija = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 78 | |
2019US_JusufDelalic | 0:44bf5430d56b | 79 | if (novaPozicija != pozicijaDesni) |
2019US_JusufDelalic | 0:44bf5430d56b | 80 | pozicijaDesni = novaPozicija; |
2019US_JusufDelalic | 0:44bf5430d56b | 81 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 82 | |
2019US_JusufDelalic | 0:44bf5430d56b | 83 | |
2019US_JusufDelalic | 0:44bf5430d56b | 84 | class Lopta |
2019US_JusufDelalic | 0:44bf5430d56b | 85 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 86 | int x, y; // koordinate centra |
2019US_JusufDelalic | 0:44bf5430d56b | 87 | int radius; // poluprecnik lopte |
2019US_JusufDelalic | 0:44bf5430d56b | 88 | int delta_x, delta_y; // pomjeraj - ovisi o modu igre ? // ili wait promijeniti? |
2019US_JusufDelalic | 0:44bf5430d56b | 89 | |
2019US_JusufDelalic | 0:44bf5430d56b | 90 | public: |
2019US_JusufDelalic | 0:44bf5430d56b | 91 | |
2019US_JusufDelalic | 0:44bf5430d56b | 92 | Lopta(int x, int y, int radius, int delta_x, int delta_y) : x(x), y(y), radius(radius), delta_x(delta_x), |
2019US_JusufDelalic | 0:44bf5430d56b | 93 | delta_y(delta_y) {} |
2019US_JusufDelalic | 0:44bf5430d56b | 94 | |
2019US_JusufDelalic | 0:44bf5430d56b | 95 | int getX() const |
2019US_JusufDelalic | 0:44bf5430d56b | 96 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 97 | return x; |
2019US_JusufDelalic | 0:44bf5430d56b | 98 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 99 | |
2019US_JusufDelalic | 0:44bf5430d56b | 100 | void setX(int x) |
2019US_JusufDelalic | 0:44bf5430d56b | 101 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 102 | Lopta::x = x; |
2019US_JusufDelalic | 0:44bf5430d56b | 103 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 104 | |
2019US_JusufDelalic | 0:44bf5430d56b | 105 | int getY() const |
2019US_JusufDelalic | 0:44bf5430d56b | 106 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 107 | return y; |
2019US_JusufDelalic | 0:44bf5430d56b | 108 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 109 | |
2019US_JusufDelalic | 0:44bf5430d56b | 110 | void setY(int y) |
2019US_JusufDelalic | 0:44bf5430d56b | 111 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 112 | Lopta::y = y; |
2019US_JusufDelalic | 0:44bf5430d56b | 113 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 114 | |
2019US_JusufDelalic | 0:44bf5430d56b | 115 | int getRadius() const |
2019US_JusufDelalic | 0:44bf5430d56b | 116 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 117 | return radius; |
2019US_JusufDelalic | 0:44bf5430d56b | 118 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 119 | |
2019US_JusufDelalic | 0:44bf5430d56b | 120 | |
2019US_JusufDelalic | 0:44bf5430d56b | 121 | int getDelta_x() const |
2019US_JusufDelalic | 0:44bf5430d56b | 122 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 123 | return delta_x; |
2019US_JusufDelalic | 0:44bf5430d56b | 124 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 125 | |
2019US_JusufDelalic | 0:44bf5430d56b | 126 | void setDelta_x(int delta_x) |
2019US_JusufDelalic | 0:44bf5430d56b | 127 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 128 | Lopta::delta_x = delta_x; |
2019US_JusufDelalic | 0:44bf5430d56b | 129 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 130 | |
2019US_JusufDelalic | 0:44bf5430d56b | 131 | int getDelta_y() const |
2019US_JusufDelalic | 0:44bf5430d56b | 132 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 133 | return delta_y; |
2019US_JusufDelalic | 0:44bf5430d56b | 134 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 135 | |
2019US_JusufDelalic | 0:44bf5430d56b | 136 | void setDelta_y(int delta_y) |
2019US_JusufDelalic | 0:44bf5430d56b | 137 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 138 | Lopta::delta_y = delta_y; |
2019US_JusufDelalic | 0:44bf5430d56b | 139 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 140 | |
2019US_JusufDelalic | 0:44bf5430d56b | 141 | void pomjeri(N5110 &display) |
2019US_JusufDelalic | 0:44bf5430d56b | 142 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 143 | display.drawCircle(x, y, radius, FILL_BLACK); // brisemo li staru vrijendost |
2019US_JusufDelalic | 0:44bf5430d56b | 144 | x += delta_x; // crta staru vrijednost i azurira koordinate |
2019US_JusufDelalic | 0:44bf5430d56b | 145 | y += delta_y; |
2019US_JusufDelalic | 0:44bf5430d56b | 146 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 147 | |
2019US_JusufDelalic | 0:44bf5430d56b | 148 | void nacrtaj(N5110 &display) // crtamo na zeljenoj koordinati koju navodimu paremtrima |
2019US_JusufDelalic | 0:44bf5430d56b | 149 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 150 | display.drawCircle(x, y, radius, FILL_BLACK); |
2019US_JusufDelalic | 0:44bf5430d56b | 151 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 152 | |
2019US_JusufDelalic | 0:44bf5430d56b | 153 | void obrniY() |
2019US_JusufDelalic | 0:44bf5430d56b | 154 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 155 | delta_y *= -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 156 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 157 | |
2019US_JusufDelalic | 0:44bf5430d56b | 158 | |
2019US_JusufDelalic | 0:44bf5430d56b | 159 | bool isUdarilaDesniReket(Reket &desniReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 160 | |
2019US_JusufDelalic | 0:44bf5430d56b | 161 | bool isUdarilaLijeviReket(Reket &lijeviReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 162 | |
2019US_JusufDelalic | 0:44bf5430d56b | 163 | bool udarilaGornjiOkvir() |
2019US_JusufDelalic | 0:44bf5430d56b | 164 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 165 | |
2019US_JusufDelalic | 0:44bf5430d56b | 166 | return y - radius <= 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 167 | |
2019US_JusufDelalic | 0:44bf5430d56b | 168 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 169 | |
2019US_JusufDelalic | 0:44bf5430d56b | 170 | bool udarilaDonjiOkvir() |
2019US_JusufDelalic | 0:44bf5430d56b | 171 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 172 | |
2019US_JusufDelalic | 0:44bf5430d56b | 173 | return y + radius >= Y_MAX; |
2019US_JusufDelalic | 0:44bf5430d56b | 174 | |
2019US_JusufDelalic | 0:44bf5430d56b | 175 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 176 | |
2019US_JusufDelalic | 0:44bf5430d56b | 177 | // u ovisnosti od ugla odbijanja lopte (ako je udarila reket) ili ako je udarila u okvir, azuriraju se vrijednosti pomaka |
2019US_JusufDelalic | 0:44bf5430d56b | 178 | void promijeniKretanje(Reket &lijeviReket, Reket &desniReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 179 | |
2019US_JusufDelalic | 0:44bf5430d56b | 180 | // ugao pod kojim se vraca prilikom odbijanja od reket, poziva se samo ako znamo da je lopta udarila u reket |
2019US_JusufDelalic | 0:44bf5430d56b | 181 | int dajUgao(int y_R, int h) |
2019US_JusufDelalic | 0:44bf5430d56b | 182 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 183 | |
2019US_JusufDelalic | 0:44bf5430d56b | 184 | if (y <= y_R - h + 4. / 10 * h) return 60; |
2019US_JusufDelalic | 0:44bf5430d56b | 185 | else if (y <= y_R - h + 8. / 10 * h) return 45; |
2019US_JusufDelalic | 0:44bf5430d56b | 186 | else if (y <= y_R - h + 12. / 10 * h) return 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 187 | else if (y <= y_R - h + 16. / 10 * h) return -45; |
2019US_JusufDelalic | 0:44bf5430d56b | 188 | return -60; |
2019US_JusufDelalic | 0:44bf5430d56b | 189 | |
2019US_JusufDelalic | 0:44bf5430d56b | 190 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 191 | |
2019US_JusufDelalic | 0:44bf5430d56b | 192 | |
2019US_JusufDelalic | 0:44bf5430d56b | 193 | void neIzlaziVanOkvira() |
2019US_JusufDelalic | 0:44bf5430d56b | 194 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 195 | |
2019US_JusufDelalic | 0:44bf5430d56b | 196 | if (x + radius >= X_MAX) |
2019US_JusufDelalic | 0:44bf5430d56b | 197 | x = X_MAX - radius; |
2019US_JusufDelalic | 0:44bf5430d56b | 198 | |
2019US_JusufDelalic | 0:44bf5430d56b | 199 | if (x - radius <= 0) |
2019US_JusufDelalic | 0:44bf5430d56b | 200 | x = radius; |
2019US_JusufDelalic | 0:44bf5430d56b | 201 | |
2019US_JusufDelalic | 0:44bf5430d56b | 202 | if (y + radius >= Y_MAX) |
2019US_JusufDelalic | 0:44bf5430d56b | 203 | y = Y_MAX - radius; |
2019US_JusufDelalic | 0:44bf5430d56b | 204 | |
2019US_JusufDelalic | 0:44bf5430d56b | 205 | if (y - radius <= 0) |
2019US_JusufDelalic | 0:44bf5430d56b | 206 | y = radius; |
2019US_JusufDelalic | 0:44bf5430d56b | 207 | |
2019US_JusufDelalic | 0:44bf5430d56b | 208 | |
2019US_JusufDelalic | 0:44bf5430d56b | 209 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 210 | |
2019US_JusufDelalic | 0:44bf5430d56b | 211 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 212 | |
2019US_JusufDelalic | 0:44bf5430d56b | 213 | |
2019US_JusufDelalic | 0:44bf5430d56b | 214 | class Reket |
2019US_JusufDelalic | 0:44bf5430d56b | 215 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 216 | int x, y; // koordinate centra |
2019US_JusufDelalic | 0:44bf5430d56b | 217 | int h, d; // visina reketa od centra-> pozitivna vrijednost, d -> debljina reketa (2 piksela zasad) |
2019US_JusufDelalic | 0:44bf5430d56b | 218 | int bodovi; // ostvareni bodovi igraca |
2019US_JusufDelalic | 0:44bf5430d56b | 219 | |
2019US_JusufDelalic | 0:44bf5430d56b | 220 | public: |
2019US_JusufDelalic | 0:44bf5430d56b | 221 | |
2019US_JusufDelalic | 0:44bf5430d56b | 222 | Reket(int x, int y, int h, int d) : x(x), y(y), h(h), d(d), bodovi(0) {} |
2019US_JusufDelalic | 0:44bf5430d56b | 223 | |
2019US_JusufDelalic | 0:44bf5430d56b | 224 | void setX(int x) |
2019US_JusufDelalic | 0:44bf5430d56b | 225 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 226 | Reket::x = x; |
2019US_JusufDelalic | 0:44bf5430d56b | 227 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 228 | |
2019US_JusufDelalic | 0:44bf5430d56b | 229 | int getY() const |
2019US_JusufDelalic | 0:44bf5430d56b | 230 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 231 | return y; |
2019US_JusufDelalic | 0:44bf5430d56b | 232 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 233 | |
2019US_JusufDelalic | 0:44bf5430d56b | 234 | void setY(int y) |
2019US_JusufDelalic | 0:44bf5430d56b | 235 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 236 | Reket::y = y; |
2019US_JusufDelalic | 0:44bf5430d56b | 237 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 238 | |
2019US_JusufDelalic | 0:44bf5430d56b | 239 | int getH() const |
2019US_JusufDelalic | 0:44bf5430d56b | 240 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 241 | return h; |
2019US_JusufDelalic | 0:44bf5430d56b | 242 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 243 | |
2019US_JusufDelalic | 0:44bf5430d56b | 244 | int getBodovi() const |
2019US_JusufDelalic | 0:44bf5430d56b | 245 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 246 | return bodovi; |
2019US_JusufDelalic | 0:44bf5430d56b | 247 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 248 | |
2019US_JusufDelalic | 0:44bf5430d56b | 249 | int getD() const |
2019US_JusufDelalic | 0:44bf5430d56b | 250 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 251 | return d; |
2019US_JusufDelalic | 0:44bf5430d56b | 252 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 253 | |
2019US_JusufDelalic | 0:44bf5430d56b | 254 | void pomjeri(N5110 &display, int delta) |
2019US_JusufDelalic | 0:44bf5430d56b | 255 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 256 | // delta predstavlja inkrement prilikom razicitih modova |
2019US_JusufDelalic | 0:44bf5430d56b | 257 | display.drawRect(x - d / 2, y - h, d, 2 * h, FILL_BLACK); |
2019US_JusufDelalic | 0:44bf5430d56b | 258 | y += delta; |
2019US_JusufDelalic | 0:44bf5430d56b | 259 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 260 | |
2019US_JusufDelalic | 0:44bf5430d56b | 261 | void nacrtaj(N5110 &display) |
2019US_JusufDelalic | 0:44bf5430d56b | 262 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 263 | display.drawRect(x - d / 2, y - h, d, 2 * h, FILL_BLACK); |
2019US_JusufDelalic | 0:44bf5430d56b | 264 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 265 | |
2019US_JusufDelalic | 0:44bf5430d56b | 266 | // da li je lijevi reket osvojio poen |
2019US_JusufDelalic | 0:44bf5430d56b | 267 | bool osvojioPoenLijeviReket(Lopta &lopta, Reket &desniReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 268 | |
2019US_JusufDelalic | 0:44bf5430d56b | 269 | bool osvojioPoenDesniReket(Lopta &lopta, Reket &lijeviReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 270 | |
2019US_JusufDelalic | 0:44bf5430d56b | 271 | void dodajPoen() |
2019US_JusufDelalic | 0:44bf5430d56b | 272 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 273 | |
2019US_JusufDelalic | 0:44bf5430d56b | 274 | ++bodovi; |
2019US_JusufDelalic | 0:44bf5430d56b | 275 | |
2019US_JusufDelalic | 0:44bf5430d56b | 276 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 277 | |
2019US_JusufDelalic | 0:44bf5430d56b | 278 | void neIzlaziVanOkvira() |
2019US_JusufDelalic | 0:44bf5430d56b | 279 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 280 | |
2019US_JusufDelalic | 0:44bf5430d56b | 281 | if (y + h >= Y_MAX) |
2019US_JusufDelalic | 0:44bf5430d56b | 282 | y = Y_MAX - h; |
2019US_JusufDelalic | 0:44bf5430d56b | 283 | |
2019US_JusufDelalic | 0:44bf5430d56b | 284 | if (y - h <= 0) |
2019US_JusufDelalic | 0:44bf5430d56b | 285 | y = h; |
2019US_JusufDelalic | 0:44bf5430d56b | 286 | |
2019US_JusufDelalic | 0:44bf5430d56b | 287 | |
2019US_JusufDelalic | 0:44bf5430d56b | 288 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 289 | |
2019US_JusufDelalic | 0:44bf5430d56b | 290 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 291 | |
2019US_JusufDelalic | 0:44bf5430d56b | 292 | |
2019US_JusufDelalic | 0:44bf5430d56b | 293 | bool Lopta::isUdarilaDesniReket(Reket &desniReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 294 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 295 | |
2019US_JusufDelalic | 0:44bf5430d56b | 296 | return ((x + radius >= X_MAX - desniReket.getD()) && (delta_x > 0) && |
2019US_JusufDelalic | 0:44bf5430d56b | 297 | (y + radius >= desniReket.getY() - desniReket.getH()) && |
2019US_JusufDelalic | 0:44bf5430d56b | 298 | (y - radius <= desniReket.getY() + desniReket.getH())); |
2019US_JusufDelalic | 0:44bf5430d56b | 299 | |
2019US_JusufDelalic | 0:44bf5430d56b | 300 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 301 | |
2019US_JusufDelalic | 0:44bf5430d56b | 302 | bool Lopta::isUdarilaLijeviReket(Reket &lijeviReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 303 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 304 | |
2019US_JusufDelalic | 0:44bf5430d56b | 305 | return ((x - radius <= lijeviReket.getD()) && (delta_x < 0) && |
2019US_JusufDelalic | 0:44bf5430d56b | 306 | (y + radius >= lijeviReket.getY() - lijeviReket.getH()) && |
2019US_JusufDelalic | 0:44bf5430d56b | 307 | (y - radius <= lijeviReket.getY() + lijeviReket.getH())); |
2019US_JusufDelalic | 0:44bf5430d56b | 308 | |
2019US_JusufDelalic | 0:44bf5430d56b | 309 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 310 | |
2019US_JusufDelalic | 0:44bf5430d56b | 311 | |
2019US_JusufDelalic | 0:44bf5430d56b | 312 | // OVA METODA SE POZIVA ZA KRETANJE LOPTE |
2019US_JusufDelalic | 0:44bf5430d56b | 313 | |
2019US_JusufDelalic | 0:44bf5430d56b | 314 | void Lopta::promijeniKretanje(Reket &lijeviReket, Reket &desniReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 315 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 316 | |
2019US_JusufDelalic | 0:44bf5430d56b | 317 | int ugao(0); |
2019US_JusufDelalic | 0:44bf5430d56b | 318 | |
2019US_JusufDelalic | 0:44bf5430d56b | 319 | if (isUdarilaLijeviReket(lijeviReket)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 320 | |
2019US_JusufDelalic | 0:44bf5430d56b | 321 | ugao = dajUgao(lijeviReket.getY(), lijeviReket.getH()); |
2019US_JusufDelalic | 0:44bf5430d56b | 322 | |
2019US_JusufDelalic | 0:44bf5430d56b | 323 | if (ugao == 0) { |
2019US_JusufDelalic | 0:44bf5430d56b | 324 | |
2019US_JusufDelalic | 0:44bf5430d56b | 325 | delta_x = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 326 | delta_y = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 327 | |
2019US_JusufDelalic | 0:44bf5430d56b | 328 | } else if (ugao == 45) { |
2019US_JusufDelalic | 0:44bf5430d56b | 329 | |
2019US_JusufDelalic | 0:44bf5430d56b | 330 | delta_x = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 331 | delta_y = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 332 | |
2019US_JusufDelalic | 0:44bf5430d56b | 333 | } else if (ugao == 60) { |
2019US_JusufDelalic | 0:44bf5430d56b | 334 | |
2019US_JusufDelalic | 0:44bf5430d56b | 335 | delta_x = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 336 | delta_y = -2; |
2019US_JusufDelalic | 0:44bf5430d56b | 337 | |
2019US_JusufDelalic | 0:44bf5430d56b | 338 | } else if (ugao == -45) { |
2019US_JusufDelalic | 0:44bf5430d56b | 339 | |
2019US_JusufDelalic | 0:44bf5430d56b | 340 | delta_x = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 341 | delta_y = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 342 | |
2019US_JusufDelalic | 0:44bf5430d56b | 343 | } else if (ugao == -60) { |
2019US_JusufDelalic | 0:44bf5430d56b | 344 | |
2019US_JusufDelalic | 0:44bf5430d56b | 345 | delta_x = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 346 | delta_y = 2; |
2019US_JusufDelalic | 0:44bf5430d56b | 347 | |
2019US_JusufDelalic | 0:44bf5430d56b | 348 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 349 | |
2019US_JusufDelalic | 0:44bf5430d56b | 350 | } else if (isUdarilaDesniReket(desniReket)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 351 | |
2019US_JusufDelalic | 0:44bf5430d56b | 352 | ugao = 180 - dajUgao(desniReket.getY(), desniReket.getH()); |
2019US_JusufDelalic | 0:44bf5430d56b | 353 | |
2019US_JusufDelalic | 0:44bf5430d56b | 354 | if (ugao == 180) { |
2019US_JusufDelalic | 0:44bf5430d56b | 355 | |
2019US_JusufDelalic | 0:44bf5430d56b | 356 | delta_x = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 357 | delta_y = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 358 | |
2019US_JusufDelalic | 0:44bf5430d56b | 359 | } else if (ugao == 135) { |
2019US_JusufDelalic | 0:44bf5430d56b | 360 | |
2019US_JusufDelalic | 0:44bf5430d56b | 361 | delta_x = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 362 | delta_y = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 363 | |
2019US_JusufDelalic | 0:44bf5430d56b | 364 | } else if (ugao == 120) { |
2019US_JusufDelalic | 0:44bf5430d56b | 365 | |
2019US_JusufDelalic | 0:44bf5430d56b | 366 | delta_x = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 367 | delta_y = -2; |
2019US_JusufDelalic | 0:44bf5430d56b | 368 | |
2019US_JusufDelalic | 0:44bf5430d56b | 369 | } else if (ugao == 225) { |
2019US_JusufDelalic | 0:44bf5430d56b | 370 | |
2019US_JusufDelalic | 0:44bf5430d56b | 371 | delta_x = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 372 | delta_y = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 373 | |
2019US_JusufDelalic | 0:44bf5430d56b | 374 | } else if (ugao == 240) { |
2019US_JusufDelalic | 0:44bf5430d56b | 375 | |
2019US_JusufDelalic | 0:44bf5430d56b | 376 | delta_x = -1; |
2019US_JusufDelalic | 0:44bf5430d56b | 377 | delta_y = 2; |
2019US_JusufDelalic | 0:44bf5430d56b | 378 | |
2019US_JusufDelalic | 0:44bf5430d56b | 379 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 380 | |
2019US_JusufDelalic | 0:44bf5430d56b | 381 | } else if (udarilaGornjiOkvir() || udarilaDonjiOkvir()) |
2019US_JusufDelalic | 0:44bf5430d56b | 382 | obrniY(); |
2019US_JusufDelalic | 0:44bf5430d56b | 383 | |
2019US_JusufDelalic | 0:44bf5430d56b | 384 | |
2019US_JusufDelalic | 0:44bf5430d56b | 385 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 386 | |
2019US_JusufDelalic | 0:44bf5430d56b | 387 | |
2019US_JusufDelalic | 0:44bf5430d56b | 388 | bool Reket::osvojioPoenLijeviReket(Lopta &lopta, Reket &desniReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 389 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 390 | |
2019US_JusufDelalic | 0:44bf5430d56b | 391 | return (lopta.getX() + lopta.getRadius() >= X_MAX && lopta.getY() - lopta.getRadius() >= 0 && |
2019US_JusufDelalic | 0:44bf5430d56b | 392 | lopta.getY() + lopta.getRadius() <= Y_MAX) && !lopta.isUdarilaDesniReket(desniReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 393 | |
2019US_JusufDelalic | 0:44bf5430d56b | 394 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 395 | |
2019US_JusufDelalic | 0:44bf5430d56b | 396 | bool Reket::osvojioPoenDesniReket(Lopta &lopta, Reket &lijeviReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 397 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 398 | |
2019US_JusufDelalic | 0:44bf5430d56b | 399 | return (lopta.getX() - lopta.getRadius() <= 0 && lopta.getY() - lopta.getRadius() >= 0 && |
2019US_JusufDelalic | 0:44bf5430d56b | 400 | lopta.getY() + lopta.getRadius() <= Y_MAX) && !lopta.isUdarilaLijeviReket(lijeviReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 401 | |
2019US_JusufDelalic | 0:44bf5430d56b | 402 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 403 | |
2019US_JusufDelalic | 0:44bf5430d56b | 404 | |
2019US_JusufDelalic | 0:44bf5430d56b | 405 | class Ekran |
2019US_JusufDelalic | 0:44bf5430d56b | 406 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 407 | N5110 display; |
2019US_JusufDelalic | 0:44bf5430d56b | 408 | |
2019US_JusufDelalic | 0:44bf5430d56b | 409 | public: |
2019US_JusufDelalic | 0:44bf5430d56b | 410 | |
2019US_JusufDelalic | 0:44bf5430d56b | 411 | |
2019US_JusufDelalic | 0:44bf5430d56b | 412 | Ekran(PinName vcc, PinName sce, PinName rst, PinName dc, PinName mosi, PinName sclk, PinName led) : |
2019US_JusufDelalic | 0:44bf5430d56b | 413 | display(vcc, |
2019US_JusufDelalic | 0:44bf5430d56b | 414 | sce, |
2019US_JusufDelalic | 0:44bf5430d56b | 415 | rst, |
2019US_JusufDelalic | 0:44bf5430d56b | 416 | dc, |
2019US_JusufDelalic | 0:44bf5430d56b | 417 | mosi, |
2019US_JusufDelalic | 0:44bf5430d56b | 418 | sclk, |
2019US_JusufDelalic | 0:44bf5430d56b | 419 | led) {} |
2019US_JusufDelalic | 0:44bf5430d56b | 420 | |
2019US_JusufDelalic | 0:44bf5430d56b | 421 | void init() |
2019US_JusufDelalic | 0:44bf5430d56b | 422 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 423 | |
2019US_JusufDelalic | 0:44bf5430d56b | 424 | display.init(); |
2019US_JusufDelalic | 0:44bf5430d56b | 425 | |
2019US_JusufDelalic | 0:44bf5430d56b | 426 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 427 | |
2019US_JusufDelalic | 0:44bf5430d56b | 428 | void refresh() |
2019US_JusufDelalic | 0:44bf5430d56b | 429 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 430 | |
2019US_JusufDelalic | 0:44bf5430d56b | 431 | |
2019US_JusufDelalic | 0:44bf5430d56b | 432 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 433 | |
2019US_JusufDelalic | 0:44bf5430d56b | 434 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 435 | |
2019US_JusufDelalic | 0:44bf5430d56b | 436 | void clear() |
2019US_JusufDelalic | 0:44bf5430d56b | 437 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 438 | |
2019US_JusufDelalic | 0:44bf5430d56b | 439 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 440 | |
2019US_JusufDelalic | 0:44bf5430d56b | 441 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 442 | |
2019US_JusufDelalic | 0:44bf5430d56b | 443 | void turnOff() |
2019US_JusufDelalic | 0:44bf5430d56b | 444 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 445 | display.turnOff(); |
2019US_JusufDelalic | 0:44bf5430d56b | 446 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 447 | |
2019US_JusufDelalic | 0:44bf5430d56b | 448 | N5110 &getDisplay() |
2019US_JusufDelalic | 0:44bf5430d56b | 449 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 450 | |
2019US_JusufDelalic | 0:44bf5430d56b | 451 | return this->display; |
2019US_JusufDelalic | 0:44bf5430d56b | 452 | |
2019US_JusufDelalic | 0:44bf5430d56b | 453 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 454 | |
2019US_JusufDelalic | 0:44bf5430d56b | 455 | void nacrtajMrezu() |
2019US_JusufDelalic | 0:44bf5430d56b | 456 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 457 | display.drawLine(X_MAX / 2, 0, X_MAX / 2, Y_MAX, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 458 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 459 | |
2019US_JusufDelalic | 0:44bf5430d56b | 460 | |
2019US_JusufDelalic | 0:44bf5430d56b | 461 | void InitialScreen() // ispisuje imena |
2019US_JusufDelalic | 0:44bf5430d56b | 462 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 463 | |
2019US_JusufDelalic | 0:44bf5430d56b | 464 | clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 465 | char ime1[] = "Jusuf Delalic"; |
2019US_JusufDelalic | 0:44bf5430d56b | 466 | char ime2[] = "Medin Paldum"; |
2019US_JusufDelalic | 0:44bf5430d56b | 467 | |
2019US_JusufDelalic | 0:44bf5430d56b | 468 | display.printString(ime1, 3, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 469 | display.printString(ime2, 6, 3); |
2019US_JusufDelalic | 0:44bf5430d56b | 470 | refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 471 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 472 | |
2019US_JusufDelalic | 0:44bf5430d56b | 473 | |
2019US_JusufDelalic | 0:44bf5430d56b | 474 | // opcija ovisi od joysitcka |
2019US_JusufDelalic | 0:44bf5430d56b | 475 | void StartMenu(int opcija) // 1 = start, 0 = exit |
2019US_JusufDelalic | 0:44bf5430d56b | 476 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 477 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 478 | // opcija je broj koji govori na kojem nivou je joystick |
2019US_JusufDelalic | 0:44bf5430d56b | 479 | |
2019US_JusufDelalic | 0:44bf5430d56b | 480 | char startMenu[] = "Start menu"; |
2019US_JusufDelalic | 0:44bf5430d56b | 481 | char exitOption[] = "Exit"; |
2019US_JusufDelalic | 0:44bf5430d56b | 482 | char start[] = "Start"; |
2019US_JusufDelalic | 0:44bf5430d56b | 483 | |
2019US_JusufDelalic | 0:44bf5430d56b | 484 | display.printString(startMenu, 12, 0); |
2019US_JusufDelalic | 0:44bf5430d56b | 485 | |
2019US_JusufDelalic | 0:44bf5430d56b | 486 | display.printString(start, 42, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 487 | |
2019US_JusufDelalic | 0:44bf5430d56b | 488 | display.printString(exitOption, 42, 3); |
2019US_JusufDelalic | 0:44bf5430d56b | 489 | |
2019US_JusufDelalic | 0:44bf5430d56b | 490 | |
2019US_JusufDelalic | 0:44bf5430d56b | 491 | if (opcija == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 492 | display.drawLine(27, 16, 39, 16, 2); //linija na start |
2019US_JusufDelalic | 0:44bf5430d56b | 493 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 494 | display.drawLine(27, 28, 39, 28, 2); // linija na exit |
2019US_JusufDelalic | 0:44bf5430d56b | 495 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 496 | |
2019US_JusufDelalic | 0:44bf5430d56b | 497 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 498 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 499 | |
2019US_JusufDelalic | 0:44bf5430d56b | 500 | |
2019US_JusufDelalic | 0:44bf5430d56b | 501 | void SelectMode(int opcija) // 1 - single, 2 - multi |
2019US_JusufDelalic | 0:44bf5430d56b | 502 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 503 | |
2019US_JusufDelalic | 0:44bf5430d56b | 504 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 505 | |
2019US_JusufDelalic | 0:44bf5430d56b | 506 | |
2019US_JusufDelalic | 0:44bf5430d56b | 507 | display.printString("Select mode", 12, 0); |
2019US_JusufDelalic | 0:44bf5430d56b | 508 | display.printString("Single", 42, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 509 | display.printString("Multi", 42, 3); |
2019US_JusufDelalic | 0:44bf5430d56b | 510 | |
2019US_JusufDelalic | 0:44bf5430d56b | 511 | if (opcija == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 512 | display.drawLine(27, 16, 39, 16, 2); // linija na single |
2019US_JusufDelalic | 0:44bf5430d56b | 513 | |
2019US_JusufDelalic | 0:44bf5430d56b | 514 | } else { // izmjena |
2019US_JusufDelalic | 0:44bf5430d56b | 515 | display.drawLine(27, 28, 39, 28, 2); // linija na multi |
2019US_JusufDelalic | 0:44bf5430d56b | 516 | |
2019US_JusufDelalic | 0:44bf5430d56b | 517 | |
2019US_JusufDelalic | 0:44bf5430d56b | 518 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 519 | |
2019US_JusufDelalic | 0:44bf5430d56b | 520 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 521 | |
2019US_JusufDelalic | 0:44bf5430d56b | 522 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 523 | |
2019US_JusufDelalic | 0:44bf5430d56b | 524 | |
2019US_JusufDelalic | 0:44bf5430d56b | 525 | void SelectDifficulty(int opcija) // 1 - east, 2 - medium, 3 - hard |
2019US_JusufDelalic | 0:44bf5430d56b | 526 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 527 | |
2019US_JusufDelalic | 0:44bf5430d56b | 528 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 529 | char select[] = "Select mode"; |
2019US_JusufDelalic | 0:44bf5430d56b | 530 | char easy[] = "Easy"; |
2019US_JusufDelalic | 0:44bf5430d56b | 531 | char medium[] = "Medium"; |
2019US_JusufDelalic | 0:44bf5430d56b | 532 | char hard[] = "Hard"; |
2019US_JusufDelalic | 0:44bf5430d56b | 533 | |
2019US_JusufDelalic | 0:44bf5430d56b | 534 | display.printString(select, 12, 0); |
2019US_JusufDelalic | 0:44bf5430d56b | 535 | |
2019US_JusufDelalic | 0:44bf5430d56b | 536 | display.printString(easy, 36, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 537 | |
2019US_JusufDelalic | 0:44bf5430d56b | 538 | display.printString(medium, 36,3); |
2019US_JusufDelalic | 0:44bf5430d56b | 539 | |
2019US_JusufDelalic | 0:44bf5430d56b | 540 | display.printString(hard, 36, 4); |
2019US_JusufDelalic | 0:44bf5430d56b | 541 | |
2019US_JusufDelalic | 0:44bf5430d56b | 542 | switch (opcija) { |
2019US_JusufDelalic | 0:44bf5430d56b | 543 | case 1: |
2019US_JusufDelalic | 0:44bf5430d56b | 544 | display.drawLine(21, 21, 33, 21, 2); //easy |
2019US_JusufDelalic | 0:44bf5430d56b | 545 | break; |
2019US_JusufDelalic | 0:44bf5430d56b | 546 | |
2019US_JusufDelalic | 0:44bf5430d56b | 547 | case 2: |
2019US_JusufDelalic | 0:44bf5430d56b | 548 | display.drawLine(21, 27, 33, 27, 2); //medium |
2019US_JusufDelalic | 0:44bf5430d56b | 549 | break; |
2019US_JusufDelalic | 0:44bf5430d56b | 550 | |
2019US_JusufDelalic | 0:44bf5430d56b | 551 | default: |
2019US_JusufDelalic | 0:44bf5430d56b | 552 | display.drawLine(21, 33, 33, 33, 2); //hard |
2019US_JusufDelalic | 0:44bf5430d56b | 553 | break; |
2019US_JusufDelalic | 0:44bf5430d56b | 554 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 555 | |
2019US_JusufDelalic | 0:44bf5430d56b | 556 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 557 | |
2019US_JusufDelalic | 0:44bf5430d56b | 558 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 559 | |
2019US_JusufDelalic | 0:44bf5430d56b | 560 | |
2019US_JusufDelalic | 0:44bf5430d56b | 561 | void postaviCentrirano(Reket &lijeviReket, Reket &desniReket, Lopta &lopta) |
2019US_JusufDelalic | 0:44bf5430d56b | 562 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 563 | |
2019US_JusufDelalic | 0:44bf5430d56b | 564 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 565 | |
2019US_JusufDelalic | 0:44bf5430d56b | 566 | lijeviReket.setX(lijeviReket.getD() / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 567 | lijeviReket.setY(Y_MAX / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 568 | |
2019US_JusufDelalic | 0:44bf5430d56b | 569 | desniReket.setX(X_MAX - desniReket.getD() / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 570 | desniReket.setY(Y_MAX / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 571 | |
2019US_JusufDelalic | 0:44bf5430d56b | 572 | lopta.setX(X_MAX / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 573 | lopta.setY(Y_MAX / 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 574 | |
2019US_JusufDelalic | 0:44bf5430d56b | 575 | lijeviReket.nacrtaj(display); |
2019US_JusufDelalic | 0:44bf5430d56b | 576 | |
2019US_JusufDelalic | 0:44bf5430d56b | 577 | desniReket.nacrtaj(display); |
2019US_JusufDelalic | 0:44bf5430d56b | 578 | lopta.nacrtaj(display); |
2019US_JusufDelalic | 0:44bf5430d56b | 579 | |
2019US_JusufDelalic | 0:44bf5430d56b | 580 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 581 | |
2019US_JusufDelalic | 0:44bf5430d56b | 582 | |
2019US_JusufDelalic | 0:44bf5430d56b | 583 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 584 | |
2019US_JusufDelalic | 0:44bf5430d56b | 585 | void ispisiBodove(Reket &lijeviReket, Reket &desniReket) |
2019US_JusufDelalic | 0:44bf5430d56b | 586 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 587 | |
2019US_JusufDelalic | 0:44bf5430d56b | 588 | int xLijevo = 3 / 8 * X_MAX - 6; |
2019US_JusufDelalic | 0:44bf5430d56b | 589 | int xDesno = 5 / 8 * X_MAX; |
2019US_JusufDelalic | 0:44bf5430d56b | 590 | |
2019US_JusufDelalic | 0:44bf5430d56b | 591 | |
2019US_JusufDelalic | 0:44bf5430d56b | 592 | // ne clear jer imamo rekete i loptu |
2019US_JusufDelalic | 0:44bf5430d56b | 593 | |
2019US_JusufDelalic | 0:44bf5430d56b | 594 | if (lijeviReket.getBodovi() >= |
2019US_JusufDelalic | 0:44bf5430d56b | 595 | 10) { // ispisivanje rezultata |
2019US_JusufDelalic | 0:44bf5430d56b | 596 | // (pazimo kada je u pitanju dvocifren broj) |
2019US_JusufDelalic | 0:44bf5430d56b | 597 | |
2019US_JusufDelalic | 0:44bf5430d56b | 598 | display.printChar(xLijevo + 6, 0, '1'); |
2019US_JusufDelalic | 0:44bf5430d56b | 599 | display.printChar(xLijevo + 6, 0, '0' + lijeviReket.getBodovi() % 10); |
2019US_JusufDelalic | 0:44bf5430d56b | 600 | |
2019US_JusufDelalic | 0:44bf5430d56b | 601 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 602 | display.printChar(xLijevo + 6, 0, '0' + lijeviReket.getBodovi()); |
2019US_JusufDelalic | 0:44bf5430d56b | 603 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 604 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 605 | |
2019US_JusufDelalic | 0:44bf5430d56b | 606 | |
2019US_JusufDelalic | 0:44bf5430d56b | 607 | if (desniReket.getBodovi() >= 10) { |
2019US_JusufDelalic | 0:44bf5430d56b | 608 | display.printChar(xDesno, 0, '1' + lijeviReket.getBodovi() % 10); |
2019US_JusufDelalic | 0:44bf5430d56b | 609 | display.printChar(xDesno + 6, 0, '0' + lijeviReket.getBodovi() % 10); |
2019US_JusufDelalic | 0:44bf5430d56b | 610 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 611 | display.printChar(xDesno, 0, '0' + desniReket.getBodovi()); |
2019US_JusufDelalic | 0:44bf5430d56b | 612 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 613 | |
2019US_JusufDelalic | 0:44bf5430d56b | 614 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 615 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 616 | |
2019US_JusufDelalic | 0:44bf5430d56b | 617 | |
2019US_JusufDelalic | 0:44bf5430d56b | 618 | void GameOver(int mode, int winner) // mode 1 -> igrac; mode 2 -> computer |
2019US_JusufDelalic | 0:44bf5430d56b | 619 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 620 | display.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 621 | // winner = {1,2} |
2019US_JusufDelalic | 0:44bf5430d56b | 622 | display.printString("Game over", 15, 0); |
2019US_JusufDelalic | 0:44bf5430d56b | 623 | |
2019US_JusufDelalic | 0:44bf5430d56b | 624 | |
2019US_JusufDelalic | 0:44bf5430d56b | 625 | if (mode == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 626 | if (winner == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 627 | display.printString("Player won", 12, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 628 | |
2019US_JusufDelalic | 0:44bf5430d56b | 629 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 630 | display.printString("Computer won", 6, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 631 | |
2019US_JusufDelalic | 0:44bf5430d56b | 632 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 633 | |
2019US_JusufDelalic | 0:44bf5430d56b | 634 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 635 | if (winner == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 636 | display.printString("Player 1 won", 6, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 637 | |
2019US_JusufDelalic | 0:44bf5430d56b | 638 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 639 | display.printString("Player 2 won", 6, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 640 | |
2019US_JusufDelalic | 0:44bf5430d56b | 641 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 642 | |
2019US_JusufDelalic | 0:44bf5430d56b | 643 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 644 | |
2019US_JusufDelalic | 0:44bf5430d56b | 645 | display.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 646 | |
2019US_JusufDelalic | 0:44bf5430d56b | 647 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 648 | |
2019US_JusufDelalic | 0:44bf5430d56b | 649 | /* Prilikom ispisivanja teksta na ekran pretpostavili smo da kao koordinate pocetka saljemo donji lijevi pixel */ |
2019US_JusufDelalic | 0:44bf5430d56b | 650 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 651 | |
2019US_JusufDelalic | 0:44bf5430d56b | 652 | |
2019US_JusufDelalic | 0:44bf5430d56b | 653 | |
2019US_JusufDelalic | 0:44bf5430d56b | 654 | |
2019US_JusufDelalic | 0:44bf5430d56b | 655 | |
2019US_JusufDelalic | 0:44bf5430d56b | 656 | |
2019US_JusufDelalic | 0:44bf5430d56b | 657 | |
2019US_JusufDelalic | 0:44bf5430d56b | 658 | |
2019US_JusufDelalic | 0:44bf5430d56b | 659 | |
2019US_JusufDelalic | 0:44bf5430d56b | 660 | |
2019US_JusufDelalic | 0:44bf5430d56b | 661 | |
2019US_JusufDelalic | 0:44bf5430d56b | 662 | |
2019US_JusufDelalic | 0:44bf5430d56b | 663 | |
2019US_JusufDelalic | 0:44bf5430d56b | 664 | |
2019US_JusufDelalic | 0:44bf5430d56b | 665 | |
2019US_JusufDelalic | 0:44bf5430d56b | 666 | |
2019US_JusufDelalic | 0:44bf5430d56b | 667 | class Pong |
2019US_JusufDelalic | 0:44bf5430d56b | 668 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 669 | |
2019US_JusufDelalic | 0:44bf5430d56b | 670 | int tokIgre; // pocetak igre |
2019US_JusufDelalic | 0:44bf5430d56b | 671 | int mode; // signle player |
2019US_JusufDelalic | 0:44bf5430d56b | 672 | int tezina; // easy / medium / hard |
2019US_JusufDelalic | 0:44bf5430d56b | 673 | int zapocetiIgru; // start/exit |
2019US_JusufDelalic | 0:44bf5430d56b | 674 | int pobjednik; |
2019US_JusufDelalic | 0:44bf5430d56b | 675 | |
2019US_JusufDelalic | 0:44bf5430d56b | 676 | Lopta lopta; |
2019US_JusufDelalic | 0:44bf5430d56b | 677 | Reket lijeviReket, desniReket; // lijevi - Pl1 / desni - Pl2 |
2019US_JusufDelalic | 0:44bf5430d56b | 678 | |
2019US_JusufDelalic | 0:44bf5430d56b | 679 | Ekran display; |
2019US_JusufDelalic | 0:44bf5430d56b | 680 | |
2019US_JusufDelalic | 0:44bf5430d56b | 681 | public: |
2019US_JusufDelalic | 0:44bf5430d56b | 682 | |
2019US_JusufDelalic | 0:44bf5430d56b | 683 | Pong(int &tokIgre, Lopta &lopta, Reket &lijeviReket, Reket &desniReket, Ekran &display) : |
2019US_JusufDelalic | 0:44bf5430d56b | 684 | tokIgre(tokIgre), lopta(lopta), lijeviReket(lijeviReket), desniReket(desniReket), display(display) |
2019US_JusufDelalic | 0:44bf5430d56b | 685 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 686 | tokIgre = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 687 | mode = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 688 | tezina = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 689 | zapocetiIgru = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 690 | pobjednik = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 691 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 692 | |
2019US_JusufDelalic | 0:44bf5430d56b | 693 | void setMode(int mode) |
2019US_JusufDelalic | 0:44bf5430d56b | 694 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 695 | Pong::mode = mode; |
2019US_JusufDelalic | 0:44bf5430d56b | 696 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 697 | |
2019US_JusufDelalic | 0:44bf5430d56b | 698 | void setTezina(int tezina) |
2019US_JusufDelalic | 0:44bf5430d56b | 699 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 700 | Pong::tezina = tezina; |
2019US_JusufDelalic | 0:44bf5430d56b | 701 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 702 | |
2019US_JusufDelalic | 0:44bf5430d56b | 703 | void setPobjednik(int pobjednik) |
2019US_JusufDelalic | 0:44bf5430d56b | 704 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 705 | Pong::pobjednik = pobjednik; |
2019US_JusufDelalic | 0:44bf5430d56b | 706 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 707 | |
2019US_JusufDelalic | 0:44bf5430d56b | 708 | |
2019US_JusufDelalic | 0:44bf5430d56b | 709 | void setZapocetiIgru(int zapocetiIgru) |
2019US_JusufDelalic | 0:44bf5430d56b | 710 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 711 | Pong::zapocetiIgru = zapocetiIgru; |
2019US_JusufDelalic | 0:44bf5430d56b | 712 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 713 | |
2019US_JusufDelalic | 0:44bf5430d56b | 714 | void inicijalnoStanje() |
2019US_JusufDelalic | 0:44bf5430d56b | 715 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 716 | // display.InitialScreen(display); |
2019US_JusufDelalic | 0:44bf5430d56b | 717 | wait(3); |
2019US_JusufDelalic | 0:44bf5430d56b | 718 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 719 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 720 | |
2019US_JusufDelalic | 0:44bf5430d56b | 721 | void startGameStanje(int odabir) |
2019US_JusufDelalic | 0:44bf5430d56b | 722 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 723 | // display.StartMenu(odabir); // izmjena - true |
2019US_JusufDelalic | 0:44bf5430d56b | 724 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 725 | |
2019US_JusufDelalic | 0:44bf5430d56b | 726 | void modeStanje(int mode) |
2019US_JusufDelalic | 0:44bf5430d56b | 727 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 728 | // display.SelectMode(mode); |
2019US_JusufDelalic | 0:44bf5430d56b | 729 | // pritisnut taster |
2019US_JusufDelalic | 0:44bf5430d56b | 730 | this->mode = mode; |
2019US_JusufDelalic | 0:44bf5430d56b | 731 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 732 | |
2019US_JusufDelalic | 0:44bf5430d56b | 733 | void tezinaStanje(int tezina) |
2019US_JusufDelalic | 0:44bf5430d56b | 734 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 735 | // display.SelectDifficulty(tezina); |
2019US_JusufDelalic | 0:44bf5430d56b | 736 | // pritisnut taster |
2019US_JusufDelalic | 0:44bf5430d56b | 737 | this->tezina = tezina; |
2019US_JusufDelalic | 0:44bf5430d56b | 738 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 739 | |
2019US_JusufDelalic | 0:44bf5430d56b | 740 | void igraStanje() |
2019US_JusufDelalic | 0:44bf5430d56b | 741 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 742 | if (lijeviReket.getBodovi() >= 11 || desniReket.getBodovi() >= 11) { |
2019US_JusufDelalic | 0:44bf5430d56b | 743 | tokIgre++; |
2019US_JusufDelalic | 0:44bf5430d56b | 744 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 745 | |
2019US_JusufDelalic | 0:44bf5430d56b | 746 | int osvojioBod = 1; // centrirati loptu i rekete |
2019US_JusufDelalic | 0:44bf5430d56b | 747 | bool centrirano = true; |
2019US_JusufDelalic | 0:44bf5430d56b | 748 | if (lijeviReket.osvojioPoenLijeviReket(lopta, desniReket)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 749 | lijeviReket.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 750 | osvojioBod = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 751 | centrirano = true; |
2019US_JusufDelalic | 0:44bf5430d56b | 752 | |
2019US_JusufDelalic | 0:44bf5430d56b | 753 | } else if (desniReket.osvojioPoenDesniReket(lopta, lijeviReket)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 754 | desniReket.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 755 | osvojioBod = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 756 | centrirano = true; |
2019US_JusufDelalic | 0:44bf5430d56b | 757 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 758 | |
2019US_JusufDelalic | 0:44bf5430d56b | 759 | if (centrirano) { |
2019US_JusufDelalic | 0:44bf5430d56b | 760 | if (tasterPressed(off)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 761 | centrirano = false; |
2019US_JusufDelalic | 0:44bf5430d56b | 762 | if (osvojioBod == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 763 | lopta.setDelta_x(-1); |
2019US_JusufDelalic | 0:44bf5430d56b | 764 | lopta.setDelta_y(-1); |
2019US_JusufDelalic | 0:44bf5430d56b | 765 | } else if (osvojioBod == 2) { |
2019US_JusufDelalic | 0:44bf5430d56b | 766 | lopta.setDelta_x(1); |
2019US_JusufDelalic | 0:44bf5430d56b | 767 | lopta.setDelta_y(1); |
2019US_JusufDelalic | 0:44bf5430d56b | 768 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 769 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 770 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 771 | lopta.promijeniKretanje(lijeviReket, desniReket); |
2019US_JusufDelalic | 0:44bf5430d56b | 772 | // lopta.pomjeri(display.getDisplay()); |
2019US_JusufDelalic | 0:44bf5430d56b | 773 | |
2019US_JusufDelalic | 0:44bf5430d56b | 774 | lijeviReket.setY(lijeviReket.getY() + pozicijaLijevi); |
2019US_JusufDelalic | 0:44bf5430d56b | 775 | desniReket.setY(desniReket.getY() + pozicijaDesni); |
2019US_JusufDelalic | 0:44bf5430d56b | 776 | |
2019US_JusufDelalic | 0:44bf5430d56b | 777 | // lijeviReket.pomjeri(display.getDisplay(), mode); |
2019US_JusufDelalic | 0:44bf5430d56b | 778 | // desniReket.pomjeri(display.getDisplay(), mode); |
2019US_JusufDelalic | 0:44bf5430d56b | 779 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 780 | |
2019US_JusufDelalic | 0:44bf5430d56b | 781 | |
2019US_JusufDelalic | 0:44bf5430d56b | 782 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 783 | |
2019US_JusufDelalic | 0:44bf5430d56b | 784 | void gameOverStanje() |
2019US_JusufDelalic | 0:44bf5430d56b | 785 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 786 | // display.GameOver(mode, pobjednik); |
2019US_JusufDelalic | 0:44bf5430d56b | 787 | wait(3); |
2019US_JusufDelalic | 0:44bf5430d56b | 788 | |
2019US_JusufDelalic | 0:44bf5430d56b | 789 | tokIgre = 1; // vrati na odabir |
2019US_JusufDelalic | 0:44bf5430d56b | 790 | mode = 1; // signle player |
2019US_JusufDelalic | 0:44bf5430d56b | 791 | tezina = 1; // easy / medium / hard |
2019US_JusufDelalic | 0:44bf5430d56b | 792 | zapocetiIgru = 1; // start/exit |
2019US_JusufDelalic | 0:44bf5430d56b | 793 | pobjednik = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 794 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 795 | |
2019US_JusufDelalic | 0:44bf5430d56b | 796 | void izadjiStanje() |
2019US_JusufDelalic | 0:44bf5430d56b | 797 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 798 | // display.getDisplay().clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 799 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 800 | |
2019US_JusufDelalic | 0:44bf5430d56b | 801 | |
2019US_JusufDelalic | 0:44bf5430d56b | 802 | }; |
2019US_JusufDelalic | 0:44bf5430d56b | 803 | |
2019US_JusufDelalic | 0:44bf5430d56b | 804 | |
2019US_JusufDelalic | 0:44bf5430d56b | 805 | Ekran ekran(dp4, dp24, dp23, dp25, dp2, dp6, dp18); |
2019US_JusufDelalic | 0:44bf5430d56b | 806 | //Pong igra(tokIgre, lopta, lijevi, desni, ekran); |
2019US_JusufDelalic | 0:44bf5430d56b | 807 | |
2019US_JusufDelalic | 0:44bf5430d56b | 808 | |
2019US_JusufDelalic | 0:44bf5430d56b | 809 | |
2019US_JusufDelalic | 0:44bf5430d56b | 810 | |
2019US_JusufDelalic | 0:44bf5430d56b | 811 | |
2019US_JusufDelalic | 0:44bf5430d56b | 812 | |
2019US_JusufDelalic | 0:44bf5430d56b | 813 | |
2019US_JusufDelalic | 0:44bf5430d56b | 814 | |
2019US_JusufDelalic | 0:44bf5430d56b | 815 | |
2019US_JusufDelalic | 0:44bf5430d56b | 816 | |
2019US_JusufDelalic | 0:44bf5430d56b | 817 | |
2019US_JusufDelalic | 0:44bf5430d56b | 818 | |
2019US_JusufDelalic | 0:44bf5430d56b | 819 | |
2019US_JusufDelalic | 0:44bf5430d56b | 820 | |
2019US_JusufDelalic | 0:44bf5430d56b | 821 | |
2019US_JusufDelalic | 0:44bf5430d56b | 822 | |
2019US_JusufDelalic | 0:44bf5430d56b | 823 | |
2019US_JusufDelalic | 0:44bf5430d56b | 824 | |
2019US_JusufDelalic | 0:44bf5430d56b | 825 | |
2019US_JusufDelalic | 0:44bf5430d56b | 826 | |
2019US_JusufDelalic | 0:44bf5430d56b | 827 | |
2019US_JusufDelalic | 0:44bf5430d56b | 828 | |
2019US_JusufDelalic | 0:44bf5430d56b | 829 | |
2019US_JusufDelalic | 0:44bf5430d56b | 830 | |
2019US_JusufDelalic | 0:44bf5430d56b | 831 | |
2019US_JusufDelalic | 0:44bf5430d56b | 832 | int main() |
2019US_JusufDelalic | 0:44bf5430d56b | 833 | { |
2019US_JusufDelalic | 0:44bf5430d56b | 834 | |
2019US_JusufDelalic | 0:44bf5430d56b | 835 | enableLed = 1; // gasimo ledice |
2019US_JusufDelalic | 0:44bf5430d56b | 836 | lijeviSW.mode(PullUp); |
2019US_JusufDelalic | 0:44bf5430d56b | 837 | desniSW.mode(PullUp); |
2019US_JusufDelalic | 0:44bf5430d56b | 838 | |
2019US_JusufDelalic | 0:44bf5430d56b | 839 | ekran.init(); |
2019US_JusufDelalic | 0:44bf5430d56b | 840 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 841 | |
2019US_JusufDelalic | 0:44bf5430d56b | 842 | int tokIgre = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 843 | Reket lijevi(1, Y_MAX / 2, 6, 2); // kreiramo desni, lijevi reket i loptu |
2019US_JusufDelalic | 0:44bf5430d56b | 844 | Reket desni(82, Y_MAX / 2, 6, 2); |
2019US_JusufDelalic | 0:44bf5430d56b | 845 | Lopta lopta(X_MAX / 2, Y_MAX / 2, 1, 0, 0); |
2019US_JusufDelalic | 0:44bf5430d56b | 846 | |
2019US_JusufDelalic | 0:44bf5430d56b | 847 | |
2019US_JusufDelalic | 0:44bf5430d56b | 848 | int biranjeOpcije = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 849 | |
2019US_JusufDelalic | 0:44bf5430d56b | 850 | ekran.InitialScreen(); // ---------------------------------------------------------------------------------------------------------------------------- |
2019US_JusufDelalic | 0:44bf5430d56b | 851 | wait(3); |
2019US_JusufDelalic | 0:44bf5430d56b | 852 | |
2019US_JusufDelalic | 0:44bf5430d56b | 853 | |
2019US_JusufDelalic | 0:44bf5430d56b | 854 | pozicijaLijevi = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 855 | pozicijaDesni = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 856 | |
2019US_JusufDelalic | 0:44bf5430d56b | 857 | tokIgre++; |
2019US_JusufDelalic | 0:44bf5430d56b | 858 | |
2019US_JusufDelalic | 0:44bf5430d56b | 859 | bool pritisnutTaster = false; |
2019US_JusufDelalic | 0:44bf5430d56b | 860 | |
2019US_JusufDelalic | 0:44bf5430d56b | 861 | int mode = 1; // single player |
2019US_JusufDelalic | 0:44bf5430d56b | 862 | int winner = 1; // player1 |
2019US_JusufDelalic | 0:44bf5430d56b | 863 | int difficulty = 1; // easy |
2019US_JusufDelalic | 0:44bf5430d56b | 864 | |
2019US_JusufDelalic | 0:44bf5430d56b | 865 | //bool poIelaIgra = false; |
2019US_JusufDelalic | 0:44bf5430d56b | 866 | |
2019US_JusufDelalic | 0:44bf5430d56b | 867 | while (1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 868 | |
2019US_JusufDelalic | 0:44bf5430d56b | 869 | biranjeOpcije = 1; // start |
2019US_JusufDelalic | 0:44bf5430d56b | 870 | // Start/Exit |
2019US_JusufDelalic | 0:44bf5430d56b | 871 | while (tokIgre == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 872 | |
2019US_JusufDelalic | 0:44bf5430d56b | 873 | pritisnutTaster = tasterPressed(off); |
2019US_JusufDelalic | 0:44bf5430d56b | 874 | pozicijaLijevi = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 875 | pozicijaDesni = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 876 | |
2019US_JusufDelalic | 0:44bf5430d56b | 877 | |
2019US_JusufDelalic | 0:44bf5430d56b | 878 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 879 | ekran.StartMenu(biranjeOpcije); |
2019US_JusufDelalic | 0:44bf5430d56b | 880 | wait(0.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 881 | |
2019US_JusufDelalic | 0:44bf5430d56b | 882 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 883 | |
2019US_JusufDelalic | 0:44bf5430d56b | 884 | |
2019US_JusufDelalic | 0:44bf5430d56b | 885 | azurirajPozicijuLijevi(); |
2019US_JusufDelalic | 0:44bf5430d56b | 886 | |
2019US_JusufDelalic | 0:44bf5430d56b | 887 | if (pozicijaLijevi % 2 != 0) { |
2019US_JusufDelalic | 0:44bf5430d56b | 888 | |
2019US_JusufDelalic | 0:44bf5430d56b | 889 | if (biranjeOpcije == 1) |
2019US_JusufDelalic | 0:44bf5430d56b | 890 | biranjeOpcije = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 891 | |
2019US_JusufDelalic | 0:44bf5430d56b | 892 | else biranjeOpcije = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 893 | |
2019US_JusufDelalic | 0:44bf5430d56b | 894 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 895 | |
2019US_JusufDelalic | 0:44bf5430d56b | 896 | if (pritisnutTaster) { |
2019US_JusufDelalic | 0:44bf5430d56b | 897 | if (biranjeOpcije == 0) { |
2019US_JusufDelalic | 0:44bf5430d56b | 898 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 899 | ekran.turnOff(); |
2019US_JusufDelalic | 0:44bf5430d56b | 900 | return 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 901 | |
2019US_JusufDelalic | 0:44bf5430d56b | 902 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 903 | |
2019US_JusufDelalic | 0:44bf5430d56b | 904 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 905 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 906 | |
2019US_JusufDelalic | 0:44bf5430d56b | 907 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 908 | |
2019US_JusufDelalic | 0:44bf5430d56b | 909 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 910 | |
2019US_JusufDelalic | 0:44bf5430d56b | 911 | |
2019US_JusufDelalic | 0:44bf5430d56b | 912 | biranjeOpcije = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 913 | // Singleplayer, Multiplayer |
2019US_JusufDelalic | 0:44bf5430d56b | 914 | while (tokIgre == 2) { |
2019US_JusufDelalic | 0:44bf5430d56b | 915 | |
2019US_JusufDelalic | 0:44bf5430d56b | 916 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 917 | |
2019US_JusufDelalic | 0:44bf5430d56b | 918 | pritisnutTaster = tasterPressed(off); |
2019US_JusufDelalic | 0:44bf5430d56b | 919 | // single player |
2019US_JusufDelalic | 0:44bf5430d56b | 920 | pozicijaLijevi = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 921 | pozicijaDesni = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 922 | |
2019US_JusufDelalic | 0:44bf5430d56b | 923 | |
2019US_JusufDelalic | 0:44bf5430d56b | 924 | ekran.SelectMode(biranjeOpcije); |
2019US_JusufDelalic | 0:44bf5430d56b | 925 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 926 | wait(0.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 927 | |
2019US_JusufDelalic | 0:44bf5430d56b | 928 | |
2019US_JusufDelalic | 0:44bf5430d56b | 929 | azurirajPozicijuLijevi(); |
2019US_JusufDelalic | 0:44bf5430d56b | 930 | |
2019US_JusufDelalic | 0:44bf5430d56b | 931 | if (pozicijaLijevi % 2 != 0) { |
2019US_JusufDelalic | 0:44bf5430d56b | 932 | |
2019US_JusufDelalic | 0:44bf5430d56b | 933 | if (biranjeOpcije == 1) |
2019US_JusufDelalic | 0:44bf5430d56b | 934 | biranjeOpcije = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 935 | else biranjeOpcije = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 936 | |
2019US_JusufDelalic | 0:44bf5430d56b | 937 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 938 | |
2019US_JusufDelalic | 0:44bf5430d56b | 939 | |
2019US_JusufDelalic | 0:44bf5430d56b | 940 | if (pritisnutTaster) { |
2019US_JusufDelalic | 0:44bf5430d56b | 941 | if (biranjeOpcije == 0) mode = 2; // multiplayer |
2019US_JusufDelalic | 0:44bf5430d56b | 942 | else if (biranjeOpcije == 1) mode = 1; // single player |
2019US_JusufDelalic | 0:44bf5430d56b | 943 | |
2019US_JusufDelalic | 0:44bf5430d56b | 944 | |
2019US_JusufDelalic | 0:44bf5430d56b | 945 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 946 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 947 | |
2019US_JusufDelalic | 0:44bf5430d56b | 948 | |
2019US_JusufDelalic | 0:44bf5430d56b | 949 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 950 | |
2019US_JusufDelalic | 0:44bf5430d56b | 951 | |
2019US_JusufDelalic | 0:44bf5430d56b | 952 | biranjeOpcije = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 953 | // Easy - 1, Medium - 2, Hard - 3 |
2019US_JusufDelalic | 0:44bf5430d56b | 954 | while (tokIgre == 3) { |
2019US_JusufDelalic | 0:44bf5430d56b | 955 | |
2019US_JusufDelalic | 0:44bf5430d56b | 956 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 957 | pritisnutTaster = tasterPressed(off); |
2019US_JusufDelalic | 0:44bf5430d56b | 958 | |
2019US_JusufDelalic | 0:44bf5430d56b | 959 | pozicijaLijevi = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 960 | pozicijaDesni = Centar; |
2019US_JusufDelalic | 0:44bf5430d56b | 961 | |
2019US_JusufDelalic | 0:44bf5430d56b | 962 | |
2019US_JusufDelalic | 0:44bf5430d56b | 963 | if (biranjeOpcije == 0) { |
2019US_JusufDelalic | 0:44bf5430d56b | 964 | ekran.SelectDifficulty(1); |
2019US_JusufDelalic | 0:44bf5430d56b | 965 | |
2019US_JusufDelalic | 0:44bf5430d56b | 966 | } else if (biranjeOpcije == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 967 | ekran.SelectDifficulty(3); |
2019US_JusufDelalic | 0:44bf5430d56b | 968 | |
2019US_JusufDelalic | 0:44bf5430d56b | 969 | } else if (biranjeOpcije == 2) { |
2019US_JusufDelalic | 0:44bf5430d56b | 970 | ekran.SelectDifficulty(biranjeOpcije); |
2019US_JusufDelalic | 0:44bf5430d56b | 971 | |
2019US_JusufDelalic | 0:44bf5430d56b | 972 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 973 | |
2019US_JusufDelalic | 0:44bf5430d56b | 974 | azurirajPozicijuLijevi(); // mozda na ticker... |
2019US_JusufDelalic | 0:44bf5430d56b | 975 | |
2019US_JusufDelalic | 0:44bf5430d56b | 976 | if (pozicijaLijevi == Dolje) |
2019US_JusufDelalic | 0:44bf5430d56b | 977 | biranjeOpcije++; |
2019US_JusufDelalic | 0:44bf5430d56b | 978 | |
2019US_JusufDelalic | 0:44bf5430d56b | 979 | else if (pozicijaLijevi == Gore) |
2019US_JusufDelalic | 0:44bf5430d56b | 980 | biranjeOpcije--; |
2019US_JusufDelalic | 0:44bf5430d56b | 981 | |
2019US_JusufDelalic | 0:44bf5430d56b | 982 | while (biranjeOpcije < 0) |
2019US_JusufDelalic | 0:44bf5430d56b | 983 | biranjeOpcije += 3; |
2019US_JusufDelalic | 0:44bf5430d56b | 984 | |
2019US_JusufDelalic | 0:44bf5430d56b | 985 | biranjeOpcije %= 3; |
2019US_JusufDelalic | 0:44bf5430d56b | 986 | |
2019US_JusufDelalic | 0:44bf5430d56b | 987 | |
2019US_JusufDelalic | 0:44bf5430d56b | 988 | if (pritisnutTaster) { |
2019US_JusufDelalic | 0:44bf5430d56b | 989 | //igra.setTezina(biranjeOpcije + 1); |
2019US_JusufDelalic | 0:44bf5430d56b | 990 | if (biranjeOpcije == 0) difficulty = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 991 | else if (biranjeOpcije == 1) difficulty = 3; |
2019US_JusufDelalic | 0:44bf5430d56b | 992 | else difficulty = 2; |
2019US_JusufDelalic | 0:44bf5430d56b | 993 | |
2019US_JusufDelalic | 0:44bf5430d56b | 994 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 995 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 996 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 997 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 998 | |
2019US_JusufDelalic | 0:44bf5430d56b | 999 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1000 | wait(0.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1001 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1002 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1003 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1004 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1005 | // pocetno stanje igre... |
2019US_JusufDelalic | 0:44bf5430d56b | 1006 | if (tokIgre == 4) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1007 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1008 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1009 | ekran.postaviCentrirano(lijevi, desni, lopta); |
2019US_JusufDelalic | 0:44bf5430d56b | 1010 | ekran.ispisiBodove(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1011 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1012 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1013 | wait(1.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1014 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1015 | lopta.setDelta_x(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1016 | lopta.setDelta_y(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1017 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1018 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1019 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1020 | while (tokIgre == 4) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1021 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1022 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1023 | if (mode == 1) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1024 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1025 | // Single player |
2019US_JusufDelalic | 0:44bf5430d56b | 1026 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1027 | if (lijevi.osvojioPoenLijeviReket(lopta, desni) || desni.osvojioPoenDesniReket(lopta, lijevi)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1028 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1029 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1030 | ekran.postaviCentrirano(lijevi, desni, lopta); |
2019US_JusufDelalic | 0:44bf5430d56b | 1031 | lopta.setDelta_x(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1032 | lopta.setDelta_y(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1033 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1034 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1035 | if (lijevi.osvojioPoenLijeviReket(lopta, desni)) |
2019US_JusufDelalic | 0:44bf5430d56b | 1036 | lijevi.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1037 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1038 | else desni.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1039 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1040 | ekran.ispisiBodove(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1041 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1042 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1043 | wait(1.5); // prikazujemo centrirano 1.5 sekundi nakon cega lopta pocinje kretanje prema nekom od igraca |
2019US_JusufDelalic | 0:44bf5430d56b | 1044 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1045 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1046 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1047 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1048 | if (lijevi.getBodovi() >= 11 || desni.getBodovi() >= 11) |
2019US_JusufDelalic | 0:44bf5430d56b | 1049 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 1050 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1051 | if (tokIgre != 4) |
2019US_JusufDelalic | 0:44bf5430d56b | 1052 | break; |
2019US_JusufDelalic | 0:44bf5430d56b | 1053 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1054 | azurirajPozicijuLijevi(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1055 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1056 | int delta_lijevi = pozicijaLijevi * 2; |
2019US_JusufDelalic | 0:44bf5430d56b | 1057 | int delta_desni; |
2019US_JusufDelalic | 0:44bf5430d56b | 1058 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1059 | if (lopta.getY() > desni.getY()) |
2019US_JusufDelalic | 0:44bf5430d56b | 1060 | delta_desni = 2; // idi dolje |
2019US_JusufDelalic | 0:44bf5430d56b | 1061 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1062 | else if (lopta.getY() > desni.getY()) |
2019US_JusufDelalic | 0:44bf5430d56b | 1063 | delta_desni = -2; // idi gore |
2019US_JusufDelalic | 0:44bf5430d56b | 1064 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1065 | else delta_desni = 0; |
2019US_JusufDelalic | 0:44bf5430d56b | 1066 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1067 | lopta.promijeniKretanje(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1068 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1069 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1070 | lopta.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1071 | lijevi.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1072 | desni.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1073 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1074 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1075 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1076 | lijevi.pomjeri(ekran.getDisplay(), delta_lijevi); |
2019US_JusufDelalic | 0:44bf5430d56b | 1077 | desni.pomjeri(ekran.getDisplay(), delta_desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1078 | lopta.pomjeri(ekran.getDisplay()); |
2019US_JusufDelalic | 0:44bf5430d56b | 1079 | ekran.ispisiBodove(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1080 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1081 | if (difficulty == 2) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1082 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1083 | lopta.setDelta_y(lopta.getDelta_y() * 1.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1084 | lopta.setDelta_x(lopta.getDelta_x() * 1.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1085 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1086 | delta_desni *= 1.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1087 | } else if (difficulty == 3) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1088 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1089 | lopta.setDelta_y(lopta.getDelta_y() * 2.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1090 | lopta.setDelta_x(lopta.getDelta_x() * 2.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1091 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1092 | delta_desni *= 2.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1093 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1094 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1095 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1096 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1097 | wait(0.2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1098 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1099 | } else { |
2019US_JusufDelalic | 0:44bf5430d56b | 1100 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1101 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1102 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1103 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1104 | if (lijevi.osvojioPoenLijeviReket(lopta, desni) || desni.osvojioPoenDesniReket(lopta, lijevi)) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1105 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1106 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1107 | ekran.postaviCentrirano(lijevi, desni, lopta); |
2019US_JusufDelalic | 0:44bf5430d56b | 1108 | lopta.setDelta_x(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1109 | lopta.setDelta_y(2); |
2019US_JusufDelalic | 0:44bf5430d56b | 1110 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1111 | if (lijevi.osvojioPoenLijeviReket(lopta, desni)) |
2019US_JusufDelalic | 0:44bf5430d56b | 1112 | lijevi.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1113 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1114 | else desni.dodajPoen(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1115 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1116 | ekran.ispisiBodove(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1117 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1118 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1119 | wait(1.5); // prikazujemo centrirano 1.5 sekundi nakon cega lopta pocinje kretanje prema nekom od igraca |
2019US_JusufDelalic | 0:44bf5430d56b | 1120 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1121 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1122 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1123 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1124 | if (lijevi.getBodovi() >= 11 || desni.getBodovi() >= 11) |
2019US_JusufDelalic | 0:44bf5430d56b | 1125 | ++tokIgre; |
2019US_JusufDelalic | 0:44bf5430d56b | 1126 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1127 | if (tokIgre != 4) |
2019US_JusufDelalic | 0:44bf5430d56b | 1128 | break; |
2019US_JusufDelalic | 0:44bf5430d56b | 1129 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1130 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1131 | azurirajPozicijuDesni(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1132 | azurirajPozicijuLijevi(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1133 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1134 | int delta_lijevi = pozicijaLijevi * 2;// neka funkcija od lijevog joysticka koja se poziva tickerom |
2019US_JusufDelalic | 0:44bf5430d56b | 1135 | int delta_desni = pozicijaDesni * 2;// neka funkcija od desnog joysticka koja se poziva tickerom |
2019US_JusufDelalic | 0:44bf5430d56b | 1136 | lopta.promijeniKretanje(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1137 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1138 | lopta.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1139 | lijevi.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1140 | desni.neIzlaziVanOkvira(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1141 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1142 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1143 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1144 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1145 | lijevi.pomjeri(ekran.getDisplay(), delta_lijevi); |
2019US_JusufDelalic | 0:44bf5430d56b | 1146 | desni.pomjeri(ekran.getDisplay(), delta_desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1147 | lopta.pomjeri(ekran.getDisplay()); |
2019US_JusufDelalic | 0:44bf5430d56b | 1148 | ekran.ispisiBodove(lijevi, desni); |
2019US_JusufDelalic | 0:44bf5430d56b | 1149 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1150 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1151 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1152 | if (difficulty == 2) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1153 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1154 | lopta.setDelta_y(lopta.getDelta_y() * 1.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1155 | lopta.setDelta_x(lopta.getDelta_x() * 1.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1156 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1157 | delta_desni *= 1.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1158 | delta_lijevi *= 1.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1159 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1160 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1161 | } else if (difficulty == 3) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1162 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1163 | lopta.setDelta_y(lopta.getDelta_y() * 2.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1164 | lopta.setDelta_x(lopta.getDelta_x() * 2.5); |
2019US_JusufDelalic | 0:44bf5430d56b | 1165 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1166 | delta_desni *= 2.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1167 | delta_lijevi *= 2.5; |
2019US_JusufDelalic | 0:44bf5430d56b | 1168 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1169 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1170 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1171 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1172 | wait(0.3); |
2019US_JusufDelalic | 0:44bf5430d56b | 1173 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1174 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1175 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1176 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1177 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1178 | biranjeOpcije = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 1179 | // Game Over |
2019US_JusufDelalic | 0:44bf5430d56b | 1180 | if (tokIgre == 5) { |
2019US_JusufDelalic | 0:44bf5430d56b | 1181 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1182 | ekran.clear(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1183 | if (lijevi.getBodovi() == 11) |
2019US_JusufDelalic | 0:44bf5430d56b | 1184 | winner = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 1185 | else winner = 2; |
2019US_JusufDelalic | 0:44bf5430d56b | 1186 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1187 | ekran.GameOver(mode, winner); |
2019US_JusufDelalic | 0:44bf5430d56b | 1188 | ekran.refresh(); |
2019US_JusufDelalic | 0:44bf5430d56b | 1189 | wait(3); |
2019US_JusufDelalic | 0:44bf5430d56b | 1190 | tokIgre = 1; |
2019US_JusufDelalic | 0:44bf5430d56b | 1191 | } |
2019US_JusufDelalic | 0:44bf5430d56b | 1192 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1193 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1194 | } // kraj beskonacne while petlje |
2019US_JusufDelalic | 0:44bf5430d56b | 1195 | |
2019US_JusufDelalic | 0:44bf5430d56b | 1196 | } // kraj main -a |