Robin Milward Cooney 200849894

Dependencies:   N5110 SDFileSystem gameCharacters mbed

Committer:
robinmc
Date:
Tue Apr 26 18:44:09 2016 +0000
Revision:
0:28392431dbad
Child:
1:046e66f1ca76
Before organizing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
robinmc 0:28392431dbad 1 /* ELEC2645 Game - Shooty shooty bang bang (priliminary name)
robinmc 0:28392431dbad 2
robinmc 0:28392431dbad 3 Week 19 - initial version, basic testing of sensor and display
robinmc 0:28392431dbad 4
robinmc 0:28392431dbad 5 (c) Robni Milward Cooney Uniersity of Leeds, 06/03/16
robinmc 0:28392431dbad 6
robinmc 0:28392431dbad 7 */
robinmc 0:28392431dbad 8
robinmc 0:28392431dbad 9 #include "mbed.h"
robinmc 0:28392431dbad 10 #include "N5110.h"
robinmc 0:28392431dbad 11 #include "math.h"
robinmc 0:28392431dbad 12 #include "stdint.h"
robinmc 0:28392431dbad 13 #include "tone.h"
robinmc 0:28392431dbad 14 #include "gameCharacters.h"
robinmc 0:28392431dbad 15
robinmc 0:28392431dbad 16 #define joystickTolerance 0.05f
robinmc 0:28392431dbad 17
robinmc 0:28392431dbad 18 N5110 lcd(PTE26,PTA0,PTC4,PTD0,PTD2,PTD1,PTC3); //declare LCD
robinmc 0:28392431dbad 19 BusOut led(PTC8,PTC9,PTC0,PTC7,PTC5); //declare Bus output for LED bar
robinmc 0:28392431dbad 20 DigitalIn swJoy(PTB18); //define potentiomiter switch
robinmc 0:28392431dbad 21 AnalogIn xPot(PTB2); //define x axis analoge in (this is the pot that corresponds to horizontal movement of the joystick)
robinmc 0:28392431dbad 22 AnalogIn yPot(PTB3); //define y axis analoge in (this is the pot that corresponds to vertical movement of the joystick)
robinmc 0:28392431dbad 23 DigitalIn b_A(PTE24); //define additional first button
robinmc 0:28392431dbad 24 DigitalIn b_B(PTE25); //define additional second button
robinmc 0:28392431dbad 25 PwmOut PWM(PTC11);
robinmc 0:28392431dbad 26 InterruptIn press_b_A(PTE24); //declare the push button A as an interrupt
robinmc 0:28392431dbad 27 InterruptIn press_b_B(PTE25); //declare the push button B as an interrupt
robinmc 0:28392431dbad 28 Ticker Ticker_Menu;
robinmc 0:28392431dbad 29 Ticker Ticker_Game;
robinmc 0:28392431dbad 30
robinmc 0:28392431dbad 31 int i; //loop counter
robinmc 0:28392431dbad 32 int loop=0;
robinmc 0:28392431dbad 33 int g_jump=36;
robinmc 0:28392431dbad 34 int jumpUp;
robinmc 0:28392431dbad 35 int accel=0;
robinmc 0:28392431dbad 36 int bullet=9;
robinmc 0:28392431dbad 37 int bullet_height;
robinmc 0:28392431dbad 38 int menu_select;
robinmc 0:28392431dbad 39 int score;
robinmc 0:28392431dbad 40 int kill_score;
robinmc 0:28392431dbad 41 int h_movement=0;
robinmc 0:28392431dbad 42 int ammo=24;
robinmc 0:28392431dbad 43 int bear_movement=100;
robinmc 0:28392431dbad 44 int bird_hMovement=95;
robinmc 0:28392431dbad 45 int bird_vMovement=20;
robinmc 0:28392431dbad 46 int cactus_movement=110;
robinmc 0:28392431dbad 47 int t_rex_movement=120;
robinmc 0:28392431dbad 48 int fire_ball_hMovement=t_rex_movement-6;
robinmc 0:28392431dbad 49 int fire_ball_vMovement=27;
robinmc 0:28392431dbad 50 int heart_movement=90;
robinmc 0:28392431dbad 51 int ammo_movement=100;
robinmc 0:28392431dbad 52 int menuState=0; //initial state for the menu fsm
robinmc 0:28392431dbad 53 int jump_flag=0;
robinmc 0:28392431dbad 54 int shoot_flag=0;
robinmc 0:28392431dbad 55 int print_bear_flag=0;
robinmc 0:28392431dbad 56 int print_bird_flag=0;
robinmc 0:28392431dbad 57 int print_heart_flag=0;
robinmc 0:28392431dbad 58 int print_ammo_flag=0;
robinmc 0:28392431dbad 59 int print_cactus_flag=0;
robinmc 0:28392431dbad 60 int print_t_rex_flag=0;
robinmc 0:28392431dbad 61 int print_fire_ball_flag=0;
robinmc 0:28392431dbad 62 int lose_lives_delay_flag=0;
robinmc 0:28392431dbad 63 int lives_delay_loop=0; //number of times the lose_lives_delay_flag if statement has iterated
robinmc 0:28392431dbad 64 int fire_on_screen=0;
robinmc 0:28392431dbad 65 double lives=4;
robinmc 0:28392431dbad 66 int bear_lives=0;
robinmc 0:28392431dbad 67 int t_rex_lives=0;
robinmc 0:28392431dbad 68 int random_num;
robinmc 0:28392431dbad 69 volatile int g_Ticker_Menu_flag=0;
robinmc 0:28392431dbad 70 volatile int g_Ticker_Game_flag=0;
robinmc 0:28392431dbad 71 volatile int g_press_b_A_flag=0;
robinmc 0:28392431dbad 72 volatile int g_press_b_B_flag=0;
robinmc 0:28392431dbad 73
robinmc 0:28392431dbad 74 void initialize_values()
robinmc 0:28392431dbad 75 {
robinmc 0:28392431dbad 76 i=0; //loop counter
robinmc 0:28392431dbad 77 loop=0;
robinmc 0:28392431dbad 78 g_jump=36;
robinmc 0:28392431dbad 79 accel=0;
robinmc 0:28392431dbad 80 bullet=9;
robinmc 0:28392431dbad 81 h_movement=0;
robinmc 0:28392431dbad 82 ammo=24;
robinmc 0:28392431dbad 83 bear_movement=100;
robinmc 0:28392431dbad 84 bird_hMovement=95;
robinmc 0:28392431dbad 85 bird_vMovement=20;
robinmc 0:28392431dbad 86 cactus_movement=110;
robinmc 0:28392431dbad 87 t_rex_movement=120;
robinmc 0:28392431dbad 88 fire_ball_hMovement=t_rex_movement-6;
robinmc 0:28392431dbad 89 fire_ball_vMovement=27;
robinmc 0:28392431dbad 90 heart_movement=90;
robinmc 0:28392431dbad 91 ammo_movement=100;
robinmc 0:28392431dbad 92 menuState=0; //initial state for the menu fsm
robinmc 0:28392431dbad 93 jump_flag=0;
robinmc 0:28392431dbad 94 shoot_flag=0;
robinmc 0:28392431dbad 95 print_bear_flag=0;
robinmc 0:28392431dbad 96 print_bird_flag=0;
robinmc 0:28392431dbad 97 print_heart_flag=0;
robinmc 0:28392431dbad 98 print_ammo_flag=0;
robinmc 0:28392431dbad 99 print_cactus_flag=0;
robinmc 0:28392431dbad 100 print_t_rex_flag=0;
robinmc 0:28392431dbad 101 print_fire_ball_flag=0;
robinmc 0:28392431dbad 102 lose_lives_delay_flag=0;
robinmc 0:28392431dbad 103 lives_delay_loop=0;
robinmc 0:28392431dbad 104 lives=4;
robinmc 0:28392431dbad 105 bear_lives=0;
robinmc 0:28392431dbad 106 score=0;
robinmc 0:28392431dbad 107 kill_score=0;
robinmc 0:28392431dbad 108 fire_on_screen=0;
robinmc 0:28392431dbad 109 }
robinmc 0:28392431dbad 110
robinmc 0:28392431dbad 111 void generate_random_number()
robinmc 0:28392431dbad 112 {
robinmc 0:28392431dbad 113 time_t seconds = time(NULL);
robinmc 0:28392431dbad 114 srand(seconds);
robinmc 0:28392431dbad 115 random_num=rand()%10000;
robinmc 0:28392431dbad 116 }
robinmc 0:28392431dbad 117 void led_bar() //code to test led bar
robinmc 0:28392431dbad 118 {
robinmc 0:28392431dbad 119 led=pow(2,lives)-1;
robinmc 0:28392431dbad 120 if (lives>5) {
robinmc 0:28392431dbad 121 lives=5;
robinmc 0:28392431dbad 122 }
robinmc 0:28392431dbad 123 }
robinmc 0:28392431dbad 124
robinmc 0:28392431dbad 125
robinmc 0:28392431dbad 126 void ground() //funtion to print the ground
robinmc 0:28392431dbad 127 {
robinmc 0:28392431dbad 128 for (int x = 0; x<=84 ; x++) {
robinmc 0:28392431dbad 129 lcd.setPixel(x,47);
robinmc 0:28392431dbad 130 }
robinmc 0:28392431dbad 131 }
robinmc 0:28392431dbad 132
robinmc 0:28392431dbad 133 void print_heart()
robinmc 0:28392431dbad 134 {
robinmc 0:28392431dbad 135 for(int c=0; c<=4; c++) { //4 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 136 for(int r=0; r<=4; r++) {
robinmc 0:28392431dbad 137 if (g_heart[r][c]==0) {
robinmc 0:28392431dbad 138 if (lcd.getPixel(c+heart_movement,r+35)!=0) {
robinmc 0:28392431dbad 139 lcd.setPixel(c+heart_movement,r+35);
robinmc 0:28392431dbad 140 } else {
robinmc 0:28392431dbad 141 lcd.clearPixel(c+heart_movement,r+35);
robinmc 0:28392431dbad 142 }
robinmc 0:28392431dbad 143 } else if (g_heart[r][c]==1) {
robinmc 0:28392431dbad 144 lcd.setPixel(c+heart_movement,r+35);
robinmc 0:28392431dbad 145 }
robinmc 0:28392431dbad 146 }
robinmc 0:28392431dbad 147 }
robinmc 0:28392431dbad 148 }
robinmc 0:28392431dbad 149
robinmc 0:28392431dbad 150 void print_ammo_pickUp()
robinmc 0:28392431dbad 151 {
robinmc 0:28392431dbad 152 for(int c=0; c<=6; c++) { //6 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 153 for(int r=0; r<=7; r++) {
robinmc 0:28392431dbad 154 if (g_ammo_pickUp[r][c]==0) {
robinmc 0:28392431dbad 155 if (lcd.getPixel(c+ammo_movement,r+35)!=0) {
robinmc 0:28392431dbad 156 lcd.setPixel(c+ammo_movement,r+35);
robinmc 0:28392431dbad 157 } else {
robinmc 0:28392431dbad 158 lcd.clearPixel(c+ammo_movement,r+35);
robinmc 0:28392431dbad 159 }
robinmc 0:28392431dbad 160 } else if (g_ammo_pickUp[r][c]==1) {
robinmc 0:28392431dbad 161 lcd.setPixel(c+ammo_movement,r+35);
robinmc 0:28392431dbad 162 }
robinmc 0:28392431dbad 163 }
robinmc 0:28392431dbad 164 }
robinmc 0:28392431dbad 165 }
robinmc 0:28392431dbad 166
robinmc 0:28392431dbad 167 void print_recks_still_gun()
robinmc 0:28392431dbad 168 {
robinmc 0:28392431dbad 169
robinmc 0:28392431dbad 170 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 171 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 172 if (g_recks_still_gun[r][c]==0) {
robinmc 0:28392431dbad 173 if (lcd.getPixel(c+3,r+37)!=0) {
robinmc 0:28392431dbad 174 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 175 } else {
robinmc 0:28392431dbad 176 lcd.clearPixel(c+3,r+37);
robinmc 0:28392431dbad 177 }
robinmc 0:28392431dbad 178 } else if (g_recks_still_gun[r][c]==1) {
robinmc 0:28392431dbad 179 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 180 }
robinmc 0:28392431dbad 181 }
robinmc 0:28392431dbad 182 }
robinmc 0:28392431dbad 183 }
robinmc 0:28392431dbad 184
robinmc 0:28392431dbad 185 void print_recks_moving_gun()
robinmc 0:28392431dbad 186 {
robinmc 0:28392431dbad 187
robinmc 0:28392431dbad 188 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 189 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 190 if (g_recks_moving_gun[r][c]==0) {
robinmc 0:28392431dbad 191 if (lcd.getPixel(c+3,r+37)!=0) {
robinmc 0:28392431dbad 192 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 193 } else {
robinmc 0:28392431dbad 194 lcd.clearPixel(c+3,r+37);
robinmc 0:28392431dbad 195 }
robinmc 0:28392431dbad 196 } else if (g_recks_moving_gun[r][c]==1) {
robinmc 0:28392431dbad 197 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 198 }
robinmc 0:28392431dbad 199 }
robinmc 0:28392431dbad 200 }
robinmc 0:28392431dbad 201 }
robinmc 0:28392431dbad 202
robinmc 0:28392431dbad 203 void get_recks_still_gun()
robinmc 0:28392431dbad 204 {
robinmc 0:28392431dbad 205
robinmc 0:28392431dbad 206 }
robinmc 0:28392431dbad 207
robinmc 0:28392431dbad 208 void print_recks_crouch_gun()
robinmc 0:28392431dbad 209 {
robinmc 0:28392431dbad 210 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 211 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 212 if (g_recks_crouch_gun[r][c]==0) {
robinmc 0:28392431dbad 213 if (lcd.getPixel(c+3,r+37)!=0) {
robinmc 0:28392431dbad 214 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 215 } else {
robinmc 0:28392431dbad 216 lcd.clearPixel(c+3,r+37);
robinmc 0:28392431dbad 217 }
robinmc 0:28392431dbad 218 } else if (g_recks_crouch_gun[r][c]==1) {
robinmc 0:28392431dbad 219 lcd.setPixel(c+3,r+37);
robinmc 0:28392431dbad 220 }
robinmc 0:28392431dbad 221 }
robinmc 0:28392431dbad 222 }
robinmc 0:28392431dbad 223 }
robinmc 0:28392431dbad 224
robinmc 0:28392431dbad 225
robinmc 0:28392431dbad 226 void print_recks_jump_gun()
robinmc 0:28392431dbad 227 {
robinmc 0:28392431dbad 228 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 229 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 230 if (g_recks_jump_gun[r][c]==0) {
robinmc 0:28392431dbad 231 if (lcd.getPixel(c+3,r+g_jump)!=0) {
robinmc 0:28392431dbad 232 lcd.setPixel(c+3,r+g_jump);
robinmc 0:28392431dbad 233 } else {
robinmc 0:28392431dbad 234 lcd.clearPixel(c+3,r+g_jump);
robinmc 0:28392431dbad 235 }
robinmc 0:28392431dbad 236 } else if (g_recks_jump_gun[r][c]==1) {
robinmc 0:28392431dbad 237 lcd.setPixel(c+3,r+g_jump);
robinmc 0:28392431dbad 238 }
robinmc 0:28392431dbad 239 }
robinmc 0:28392431dbad 240 }
robinmc 0:28392431dbad 241 }
robinmc 0:28392431dbad 242
robinmc 0:28392431dbad 243 void print_mob_bear_p1() //funtion to print the still bear on the LCD
robinmc 0:28392431dbad 244 {
robinmc 0:28392431dbad 245 for(int c=0; c<=18; c++) { //18 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 246 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 247 if (g_mob_bear_p1[r][c]==0) {
robinmc 0:28392431dbad 248 if (lcd.getPixel(c+bear_movement,r+37)!=0) {
robinmc 0:28392431dbad 249 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 250 } else {
robinmc 0:28392431dbad 251 lcd.clearPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 252 }
robinmc 0:28392431dbad 253 } else if (g_mob_bear_p1[r][c]==1) {
robinmc 0:28392431dbad 254 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 255 }
robinmc 0:28392431dbad 256 }
robinmc 0:28392431dbad 257 }
robinmc 0:28392431dbad 258 }
robinmc 0:28392431dbad 259
robinmc 0:28392431dbad 260 void print_mob_bear_p2() //funtion to print the moving bear on the LCD
robinmc 0:28392431dbad 261 {
robinmc 0:28392431dbad 262 for(int c=0; c<=18; c++) { //18 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 263 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 264 if (g_mob_bear_p2[r][c]==0) {
robinmc 0:28392431dbad 265 if (lcd.getPixel(c+bear_movement,r+37)!=0) {
robinmc 0:28392431dbad 266 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 267 } else {
robinmc 0:28392431dbad 268 lcd.clearPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 269 }
robinmc 0:28392431dbad 270 } else if (g_mob_bear_p2[r][c]==1) {
robinmc 0:28392431dbad 271 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 272 }
robinmc 0:28392431dbad 273 }
robinmc 0:28392431dbad 274 }
robinmc 0:28392431dbad 275 }
robinmc 0:28392431dbad 276
robinmc 0:28392431dbad 277 void print_mob_bear_dead() //funtion to print the moving bear on the LCD
robinmc 0:28392431dbad 278 {
robinmc 0:28392431dbad 279 for(int c=0; c<=18; c++) { //18 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 280 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 281 if (g_mob_bear_dead[r][c]==0) {
robinmc 0:28392431dbad 282 if (lcd.getPixel(c+bear_movement,r+37)!=0) {
robinmc 0:28392431dbad 283 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 284 } else {
robinmc 0:28392431dbad 285 lcd.clearPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 286 }
robinmc 0:28392431dbad 287 } else if (g_mob_bear_dead[r][c]==1) {
robinmc 0:28392431dbad 288 lcd.setPixel(c+bear_movement,r+37);
robinmc 0:28392431dbad 289 }
robinmc 0:28392431dbad 290 }
robinmc 0:28392431dbad 291 }
robinmc 0:28392431dbad 292 }
robinmc 0:28392431dbad 293
robinmc 0:28392431dbad 294 void print_mob_bird_p1() //funtion to print the moving bird on the LCD
robinmc 0:28392431dbad 295 {
robinmc 0:28392431dbad 296 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 297 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 298 if (g_mob_bird_p1[r][c]==0) {
robinmc 0:28392431dbad 299 if (lcd.getPixel(c+bird_hMovement,r+bird_vMovement)!=0) {
robinmc 0:28392431dbad 300 lcd.setPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 301 } else {
robinmc 0:28392431dbad 302 lcd.clearPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 303 }
robinmc 0:28392431dbad 304 } else if (g_mob_bird_p1[r][c]==1) {
robinmc 0:28392431dbad 305 lcd.setPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 306 }
robinmc 0:28392431dbad 307 }
robinmc 0:28392431dbad 308 }
robinmc 0:28392431dbad 309 }
robinmc 0:28392431dbad 310
robinmc 0:28392431dbad 311 void print_mob_bird_p2() //funtion to print the moving bird on the LCD
robinmc 0:28392431dbad 312 {
robinmc 0:28392431dbad 313 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 314 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 315 if (g_mob_bird_p2[r][c]==0) {
robinmc 0:28392431dbad 316 if (lcd.getPixel(c+bird_hMovement,r+bird_vMovement)!=0) {
robinmc 0:28392431dbad 317 lcd.setPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 318 } else {
robinmc 0:28392431dbad 319 lcd.clearPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 320 }
robinmc 0:28392431dbad 321 } else if (g_mob_bird_p2[r][c]==1) {
robinmc 0:28392431dbad 322 lcd.setPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 323 }
robinmc 0:28392431dbad 324 }
robinmc 0:28392431dbad 325 }
robinmc 0:28392431dbad 326 }
robinmc 0:28392431dbad 327
robinmc 0:28392431dbad 328 void print_mob_bird_dead() //funtion to print the moving bird on the LCD
robinmc 0:28392431dbad 329 {
robinmc 0:28392431dbad 330 for(int c=0; c<=9; c++) { //9 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 331 for(int r=0; r<=9; r++) {
robinmc 0:28392431dbad 332 if (g_mob_bird_dead[r][c]==0) {
robinmc 0:28392431dbad 333 lcd.clearPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 334 } else if (g_mob_bird_dead[r][c]==1) {
robinmc 0:28392431dbad 335 lcd.setPixel(c+bird_hMovement,r+bird_vMovement);
robinmc 0:28392431dbad 336 }
robinmc 0:28392431dbad 337 }
robinmc 0:28392431dbad 338 }
robinmc 0:28392431dbad 339 }
robinmc 0:28392431dbad 340
robinmc 0:28392431dbad 341 void print_cactus() //funtion to print the moving bird on the LCD
robinmc 0:28392431dbad 342 {
robinmc 0:28392431dbad 343 for(int c=0; c<=4; c++) { //4 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 344 for(int r=0; r<=11; r++) {
robinmc 0:28392431dbad 345 if (cactus[r][c]==0) {
robinmc 0:28392431dbad 346 if (lcd.getPixel(c+cactus_movement,r+35)!=0) {
robinmc 0:28392431dbad 347 lcd.setPixel(c+cactus_movement,r+35);
robinmc 0:28392431dbad 348 } else {
robinmc 0:28392431dbad 349 lcd.clearPixel(c+cactus_movement,r+35);
robinmc 0:28392431dbad 350 }
robinmc 0:28392431dbad 351 } else if (cactus[r][c]==1) {
robinmc 0:28392431dbad 352 lcd.setPixel(c+cactus_movement,r+35);
robinmc 0:28392431dbad 353 }
robinmc 0:28392431dbad 354 }
robinmc 0:28392431dbad 355 }
robinmc 0:28392431dbad 356 }
robinmc 0:28392431dbad 357
robinmc 0:28392431dbad 358 void print_t_rex()
robinmc 0:28392431dbad 359 {
robinmc 0:28392431dbad 360 for(int c=0; c<=24; c++) { //24 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 361 for(int r=0; r<=25; r++) {
robinmc 0:28392431dbad 362 if (g_t_rex[r][c]==0) {
robinmc 0:28392431dbad 363 if (lcd.getPixel(c+t_rex_movement,r+21)!=0) {
robinmc 0:28392431dbad 364 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 365 } else {
robinmc 0:28392431dbad 366 lcd.clearPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 367 }
robinmc 0:28392431dbad 368 } else if (g_t_rex[r][c]==1) {
robinmc 0:28392431dbad 369 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 370 }
robinmc 0:28392431dbad 371 }
robinmc 0:28392431dbad 372 }
robinmc 0:28392431dbad 373 }
robinmc 0:28392431dbad 374
robinmc 0:28392431dbad 375 void print_t_rex_moving()
robinmc 0:28392431dbad 376 {
robinmc 0:28392431dbad 377 for(int c=0; c<=24; c++) { //24 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 378 for(int r=0; r<=25; r++) {
robinmc 0:28392431dbad 379 if (g_t_rex_moving[r][c]==0) {
robinmc 0:28392431dbad 380 if (lcd.getPixel(c+t_rex_movement,r+21)!=0) {
robinmc 0:28392431dbad 381 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 382 } else {
robinmc 0:28392431dbad 383 lcd.clearPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 384 }
robinmc 0:28392431dbad 385 } else if (g_t_rex_moving[r][c]==1) {
robinmc 0:28392431dbad 386 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 387 }
robinmc 0:28392431dbad 388 }
robinmc 0:28392431dbad 389 }
robinmc 0:28392431dbad 390 }
robinmc 0:28392431dbad 391
robinmc 0:28392431dbad 392 void print_t_rex_attack()
robinmc 0:28392431dbad 393 {
robinmc 0:28392431dbad 394 for(int c=0; c<=24; c++) { //24 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 395 for(int r=0; r<=25; r++) {
robinmc 0:28392431dbad 396 if (g_t_rex_attack[r][c]==0) {
robinmc 0:28392431dbad 397 if (lcd.getPixel(c+t_rex_movement,r+21)!=0) {
robinmc 0:28392431dbad 398 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 399 } else {
robinmc 0:28392431dbad 400 lcd.clearPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 401 }
robinmc 0:28392431dbad 402 } else if (g_t_rex_attack[r][c]==1) {
robinmc 0:28392431dbad 403 lcd.setPixel(c+t_rex_movement,r+21);
robinmc 0:28392431dbad 404 }
robinmc 0:28392431dbad 405 }
robinmc 0:28392431dbad 406 }
robinmc 0:28392431dbad 407 }
robinmc 0:28392431dbad 408
robinmc 0:28392431dbad 409 void print_fire_ball_p1()
robinmc 0:28392431dbad 410 {
robinmc 0:28392431dbad 411 for(int c=0; c<=8; c++) { //24 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 412 for(int r=0; r<=8; r++) {
robinmc 0:28392431dbad 413 if (g_fire_ball_p1[r][c]==0) {
robinmc 0:28392431dbad 414 if (lcd.getPixel(c+fire_ball_hMovement,r+fire_ball_vMovement)!=0) {
robinmc 0:28392431dbad 415 lcd.setPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 416 } else {
robinmc 0:28392431dbad 417 lcd.clearPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 418 }
robinmc 0:28392431dbad 419 } else if (g_fire_ball_p1[r][c]==1) {
robinmc 0:28392431dbad 420 lcd.setPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 421 }
robinmc 0:28392431dbad 422 }
robinmc 0:28392431dbad 423 }
robinmc 0:28392431dbad 424 }
robinmc 0:28392431dbad 425
robinmc 0:28392431dbad 426 void print_fire_ball_p2()
robinmc 0:28392431dbad 427 {
robinmc 0:28392431dbad 428 for(int c=0; c<=8; c++) { //24 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 429 for(int r=0; r<=8; r++) {
robinmc 0:28392431dbad 430 if (g_fire_ball_p2[r][c]==0) {
robinmc 0:28392431dbad 431 if (lcd.getPixel(c+fire_ball_hMovement,r+fire_ball_vMovement)!=0) {
robinmc 0:28392431dbad 432 lcd.setPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 433 } else {
robinmc 0:28392431dbad 434 lcd.clearPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 435 }
robinmc 0:28392431dbad 436 } else if (g_fire_ball_p2[r][c]==1) {
robinmc 0:28392431dbad 437 lcd.setPixel(c+fire_ball_hMovement,r+fire_ball_vMovement);
robinmc 0:28392431dbad 438 }
robinmc 0:28392431dbad 439 }
robinmc 0:28392431dbad 440 }
robinmc 0:28392431dbad 441 }
robinmc 0:28392431dbad 442
robinmc 0:28392431dbad 443
robinmc 0:28392431dbad 444 void print_clouds()
robinmc 0:28392431dbad 445 {
robinmc 0:28392431dbad 446 uint8_t clouds_movement=h_movement; //8 bit unsigned interger
robinmc 0:28392431dbad 447 for(int c=clouds_movement; c<=clouds_movement+83; c++) {
robinmc 0:28392431dbad 448 for(int r=0; r<=2; r++) {
robinmc 0:28392431dbad 449 if (g_clouds[r][c]==0) {
robinmc 0:28392431dbad 450 lcd.clearPixel(c-clouds_movement,r+6);
robinmc 0:28392431dbad 451 } else if (g_clouds[r][c]==1) {
robinmc 0:28392431dbad 452 lcd.setPixel(c-clouds_movement,r+6);
robinmc 0:28392431dbad 453 }
robinmc 0:28392431dbad 454 }
robinmc 0:28392431dbad 455 }
robinmc 0:28392431dbad 456 }
robinmc 0:28392431dbad 457
robinmc 0:28392431dbad 458 void clearCells() // function to clear all pixels on screen
robinmc 0:28392431dbad 459 {
robinmc 0:28392431dbad 460 for (int i=0; i<85; i++) { //go through every pixel on the x axis
robinmc 0:28392431dbad 461 for (int j=0; j<49; j++) { // go through every pixel on the y axis
robinmc 0:28392431dbad 462 lcd.clearPixel(i,j); // clear the cell
robinmc 0:28392431dbad 463 }
robinmc 0:28392431dbad 464 }
robinmc 0:28392431dbad 465 lcd.refresh(); //refresh the lcd
robinmc 0:28392431dbad 466 }
robinmc 0:28392431dbad 467
robinmc 0:28392431dbad 468 void shoot()
robinmc 0:28392431dbad 469 {
robinmc 0:28392431dbad 470 lcd.setPixel(bullet,g_jump+4);
robinmc 0:28392431dbad 471 lcd.setPixel(bullet+1,g_jump+4);
robinmc 0:28392431dbad 472 }
robinmc 0:28392431dbad 473
robinmc 0:28392431dbad 474 void print_score();
robinmc 0:28392431dbad 475 void print_ammo();
robinmc 0:28392431dbad 476
robinmc 0:28392431dbad 477 void intro()
robinmc 0:28392431dbad 478 {
robinmc 0:28392431dbad 479
robinmc 0:28392431dbad 480 }
robinmc 0:28392431dbad 481
robinmc 0:28392431dbad 482 void Ticker_Menu_isr()
robinmc 0:28392431dbad 483 {
robinmc 0:28392431dbad 484 g_Ticker_Menu_flag=1;
robinmc 0:28392431dbad 485 }
robinmc 0:28392431dbad 486
robinmc 0:28392431dbad 487 void Ticker_Game_isr()
robinmc 0:28392431dbad 488 {
robinmc 0:28392431dbad 489 g_Ticker_Game_flag=1;
robinmc 0:28392431dbad 490 }
robinmc 0:28392431dbad 491
robinmc 0:28392431dbad 492 void press_b_A_isr()
robinmc 0:28392431dbad 493 {
robinmc 0:28392431dbad 494 g_press_b_A_flag=1;
robinmc 0:28392431dbad 495 }
robinmc 0:28392431dbad 496
robinmc 0:28392431dbad 497 enum joystickDirection { //emunm type for every neccessary direction of the joystick
robinmc 0:28392431dbad 498 CENTRE, //when the joystick isn't moved
robinmc 0:28392431dbad 499 DOWN,
robinmc 0:28392431dbad 500 UP,
robinmc 0:28392431dbad 501 LEFT,
robinmc 0:28392431dbad 502 RIGHT,
robinmc 0:28392431dbad 503 };
robinmc 0:28392431dbad 504
robinmc 0:28392431dbad 505 typedef struct JoyStick Joystick; //struct for Joystick
robinmc 0:28392431dbad 506 struct JoyStick {
robinmc 0:28392431dbad 507 float x; // current x value
robinmc 0:28392431dbad 508 float x0; // 'centred' x value
robinmc 0:28392431dbad 509 float y; // current y value
robinmc 0:28392431dbad 510 float y0; // 'centred' y value
robinmc 0:28392431dbad 511 int swJoy; // button state (assume pull-down used, so 1 = pressed, 0 = unpressed)
robinmc 0:28392431dbad 512 joystickDirection direction; // current direction
robinmc 0:28392431dbad 513 };
robinmc 0:28392431dbad 514 // create struct variable
robinmc 0:28392431dbad 515 Joystick joystick;
robinmc 0:28392431dbad 516
robinmc 0:28392431dbad 517 // read default positions of the joystick to calibrate later readings
robinmc 0:28392431dbad 518 void calibrateJoystick()
robinmc 0:28392431dbad 519 {
robinmc 0:28392431dbad 520 swJoy.mode(PullDown);
robinmc 0:28392431dbad 521 // must not move during calibration
robinmc 0:28392431dbad 522 joystick.x0 = xPot; // initial positions in the range 0.0 to 1.0 (0.5 if centred exactly)
robinmc 0:28392431dbad 523 joystick.y0 = yPot;
robinmc 0:28392431dbad 524 }
robinmc 0:28392431dbad 525 void updateJoystick()
robinmc 0:28392431dbad 526 {
robinmc 0:28392431dbad 527 // read current joystick values relative to calibrated values (in range -0.5 to 0.5, 0.0 is centred)
robinmc 0:28392431dbad 528 joystick.x = xPot - joystick.x0;
robinmc 0:28392431dbad 529 joystick.y = yPot - joystick.y0;
robinmc 0:28392431dbad 530 // read button state
robinmc 0:28392431dbad 531 joystick.swJoy = swJoy;
robinmc 0:28392431dbad 532
robinmc 0:28392431dbad 533 // calculate direction depending on x,y values
robinmc 0:28392431dbad 534 // tolerance allows a little lee-way in case joystick not exactly in the stated direction
robinmc 0:28392431dbad 535 if ( fabs(joystick.y) < joystickTolerance && fabs(joystick.x) < joystickTolerance) {
robinmc 0:28392431dbad 536 joystick.direction = CENTRE;
robinmc 0:28392431dbad 537 } else if ( joystick.y > joystickTolerance && fabs(joystick.x) < joystickTolerance) {
robinmc 0:28392431dbad 538 joystick.direction = UP;
robinmc 0:28392431dbad 539 } else if ( joystick.y < joystickTolerance && fabs(joystick.x) < joystickTolerance) {
robinmc 0:28392431dbad 540 joystick.direction = DOWN;
robinmc 0:28392431dbad 541 } else if ( joystick.x > joystickTolerance && fabs(joystick.y) < joystickTolerance) {
robinmc 0:28392431dbad 542 joystick.direction = LEFT;
robinmc 0:28392431dbad 543 } else if ( joystick.x < joystickTolerance && fabs(joystick.y) < joystickTolerance) {
robinmc 0:28392431dbad 544 joystick.direction = RIGHT;
robinmc 0:28392431dbad 545 }
robinmc 0:28392431dbad 546 }
robinmc 0:28392431dbad 547
robinmc 0:28392431dbad 548 struct motion { //defines the motion of the charecters
robinmc 0:28392431dbad 549 int x;
robinmc 0:28392431dbad 550 int v_x;
robinmc 0:28392431dbad 551 int acc_x;
robinmc 0:28392431dbad 552 int y;
robinmc 0:28392431dbad 553 int v_y;
robinmc 0:28392431dbad 554 int acc_y;
robinmc 0:28392431dbad 555 };
robinmc 0:28392431dbad 556
robinmc 0:28392431dbad 557 struct menuState {
robinmc 0:28392431dbad 558 int menu_select; // output value
robinmc 0:28392431dbad 559 int nextState[5]; // array of next states 6 to account for all of the joystick states
robinmc 0:28392431dbad 560 };
robinmc 0:28392431dbad 561 typedef const struct menuState STyp;
robinmc 0:28392431dbad 562
robinmc 0:28392431dbad 563 STyp fsm_main_menu[5] = {
robinmc 0:28392431dbad 564 {0,{0,1,4,0,0}},
robinmc 0:28392431dbad 565 {8,{1,2,0,1,1}},
robinmc 0:28392431dbad 566 {16,{2,3,1,2,2}},
robinmc 0:28392431dbad 567 {24,{3,4,2,3,3}},
robinmc 0:28392431dbad 568 {32,{4,0,3,4,4}}
robinmc 0:28392431dbad 569 };
robinmc 0:28392431dbad 570
robinmc 0:28392431dbad 571 STyp fsm_settings_menu[5] = {
robinmc 0:28392431dbad 572 {0,{0,1,1,0,0}},
robinmc 0:28392431dbad 573 {8,{1,0,0,1,1}},
robinmc 0:28392431dbad 574 {16,{2,2,2,2,2}},
robinmc 0:28392431dbad 575 {24,{3,3,3,3,3}},
robinmc 0:28392431dbad 576 {32,{4,4,4,4,4}}
robinmc 0:28392431dbad 577 };
robinmc 0:28392431dbad 578
robinmc 0:28392431dbad 579 int main() //main function, currently used to test different functions
robinmc 0:28392431dbad 580 {
robinmc 0:28392431dbad 581 b_A.mode(PullDown);
robinmc 0:28392431dbad 582 b_B.mode(PullDown);
robinmc 0:28392431dbad 583 swJoy.mode(PullDown);
robinmc 0:28392431dbad 584 initialize_values();
robinmc 0:28392431dbad 585 lcd.init();
robinmc 0:28392431dbad 586 Ticker_Menu.attach(&Ticker_Menu_isr,0.2);
robinmc 0:28392431dbad 587 Ticker_Game.attach(&Ticker_Game_isr,0.1);
robinmc 0:28392431dbad 588 //press_b_A.fall(&press_b_A_isr);
robinmc 0:28392431dbad 589 //press_b_A.mode(PullDown);
robinmc 0:28392431dbad 590 calibrateJoystick();
robinmc 0:28392431dbad 591 int run=0;
robinmc 0:28392431dbad 592
robinmc 0:28392431dbad 593 Menu: //declares a "goto" location for the goto functions
robinmc 0:28392431dbad 594 while(1) {
robinmc 0:28392431dbad 595
robinmc 0:28392431dbad 596 if (g_Ticker_Menu_flag) {
robinmc 0:28392431dbad 597 g_Ticker_Menu_flag=0;
robinmc 0:28392431dbad 598 updateJoystick();
robinmc 0:28392431dbad 599 generate_random_number();
robinmc 0:28392431dbad 600 menu_select = fsm_main_menu[menuState].menu_select; // set ouput depending on current state
robinmc 0:28392431dbad 601 menuState = fsm_main_menu[menuState].nextState[joystick.direction]; // when joystick.direction has a vaule of CENTRE/RIGHT/LEFT the state machine input is 0 when it has a value of DOWN it is 0b01 when it has a value of UP is is 0b10
robinmc 0:28392431dbad 602 clearCells();
robinmc 0:28392431dbad 603 lcd.printString("Story mode",13,0);
robinmc 0:28392431dbad 604 lcd.printString("Minigame",18,1);
robinmc 0:28392431dbad 605 lcd.printString("Settings",18,2);
robinmc 0:28392431dbad 606 lcd.printString("Leaderboard",9,3);
robinmc 0:28392431dbad 607 lcd.printString("Credits",21,4);
robinmc 0:28392431dbad 608 for (int i=0; i<85; i++) { //go through every pixel on the x axis
robinmc 0:28392431dbad 609 for (int j=menu_select; j<(menu_select+8); j++) { // go through relevant pixels on the y axis
robinmc 0:28392431dbad 610 if (lcd.getPixel(i,j)== 0) { //if the pixel is on trun it off
robinmc 0:28392431dbad 611 lcd.setPixel(i,j);
robinmc 0:28392431dbad 612 } else {
robinmc 0:28392431dbad 613 lcd.clearPixel(i,j); //if the pixel is off turn it on
robinmc 0:28392431dbad 614 }
robinmc 0:28392431dbad 615 }
robinmc 0:28392431dbad 616 }
robinmc 0:28392431dbad 617 lcd.refresh();
robinmc 0:28392431dbad 618 if (b_A & menu_select==0) {
robinmc 0:28392431dbad 619 goto Story_Mode;
robinmc 0:28392431dbad 620 } else if (b_A & menu_select==8) {
robinmc 0:28392431dbad 621 goto Minigame;
robinmc 0:28392431dbad 622 } else if (b_A & menu_select==16) {
robinmc 0:28392431dbad 623 goto Settings;
robinmc 0:28392431dbad 624 } else if (b_A & menu_select==24) {
robinmc 0:28392431dbad 625 goto Leaderboard;
robinmc 0:28392431dbad 626 } else if (b_A & menu_select==32) {
robinmc 0:28392431dbad 627 goto Credits;
robinmc 0:28392431dbad 628 }
robinmc 0:28392431dbad 629 }
robinmc 0:28392431dbad 630 sleep();
robinmc 0:28392431dbad 631 }
robinmc 0:28392431dbad 632
robinmc 0:28392431dbad 633 Story_Mode:
robinmc 0:28392431dbad 634 Minigame:
robinmc 0:28392431dbad 635 Settings:
robinmc 0:28392431dbad 636 menuState=0;
robinmc 0:28392431dbad 637 while (1) {
robinmc 0:28392431dbad 638 if (g_Ticker_Menu_flag) {
robinmc 0:28392431dbad 639 g_Ticker_Menu_flag=0;
robinmc 0:28392431dbad 640 updateJoystick();
robinmc 0:28392431dbad 641 menu_select = fsm_settings_menu[menuState].menu_select; // set ouput depending on current state
robinmc 0:28392431dbad 642 menuState = fsm_settings_menu[menuState].nextState[joystick.direction]; // when joystick.direction has a vaule of CENTRE/RIGHT/LEFT the state machine input is 0 when it has a value of DOWN it is 0b01 when it has a value of UP is is 0b10
robinmc 0:28392431dbad 643 clearCells();
robinmc 0:28392431dbad 644 lcd.printString("Brightness",13,0);
robinmc 0:28392431dbad 645 lcd.printString("Music",18,1);
robinmc 0:28392431dbad 646 for (int i=0; i<85; i++) { //go through every pixel on the x axis
robinmc 0:28392431dbad 647 for (int j=menu_select; j<(menu_select+8); j++) { // go through relevant pixels on the y axis
robinmc 0:28392431dbad 648 if (lcd.getPixel(i,j)== 0) { //if the pixel is on trun it off
robinmc 0:28392431dbad 649 lcd.setPixel(i,j);
robinmc 0:28392431dbad 650 } else {
robinmc 0:28392431dbad 651 lcd.clearPixel(i,j); //if the pixel is off turn it on
robinmc 0:28392431dbad 652 }
robinmc 0:28392431dbad 653 }
robinmc 0:28392431dbad 654 }
robinmc 0:28392431dbad 655 lcd.refresh();
robinmc 0:28392431dbad 656 if (b_A & menu_select==0) {
robinmc 0:28392431dbad 657 goto Brightness;
robinmc 0:28392431dbad 658 } else if (b_A & menu_select==8) {
robinmc 0:28392431dbad 659 goto Music;
robinmc 0:28392431dbad 660 }
robinmc 0:28392431dbad 661 }
robinmc 0:28392431dbad 662 }
robinmc 0:28392431dbad 663 Brightness:
robinmc 0:28392431dbad 664 Music:
robinmc 0:28392431dbad 665 Leaderboard:
robinmc 0:28392431dbad 666 Credits:
robinmc 0:28392431dbad 667 Continue:
robinmc 0:28392431dbad 668 wait(0.5);
robinmc 0:28392431dbad 669 while (1) {
robinmc 0:28392431dbad 670 clearCells();
robinmc 0:28392431dbad 671 updateJoystick();
robinmc 0:28392431dbad 672 led_bar();
robinmc 0:28392431dbad 673 print_score();
robinmc 0:28392431dbad 674 generate_random_number();
robinmc 0:28392431dbad 675 if (g_Ticker_Game_flag) {
robinmc 0:28392431dbad 676 g_Ticker_Game_flag=0;
robinmc 0:28392431dbad 677 if (lives==0) {
robinmc 0:28392431dbad 678 goto GameOver;
robinmc 0:28392431dbad 679 }
robinmc 0:28392431dbad 680 if (lose_lives_delay_flag==1) {
robinmc 0:28392431dbad 681 lives_delay_loop++;
robinmc 0:28392431dbad 682 if (lives_delay_loop>=10) { //means that the delay between one life beeing lost and another one beeing lost is at least 1s
robinmc 0:28392431dbad 683 lives_delay_loop=0;
robinmc 0:28392431dbad 684 lose_lives_delay_flag=0;
robinmc 0:28392431dbad 685 }
robinmc 0:28392431dbad 686
robinmc 0:28392431dbad 687 }
robinmc 0:28392431dbad 688 if (ammo<=5) {
robinmc 0:28392431dbad 689 if (i%8>=4) {
robinmc 0:28392431dbad 690 print_ammo();
robinmc 0:28392431dbad 691 }
robinmc 0:28392431dbad 692 } else {
robinmc 0:28392431dbad 693 print_ammo();
robinmc 0:28392431dbad 694 }
robinmc 0:28392431dbad 695 if (b_B) {
robinmc 0:28392431dbad 696 jump_flag=1;
robinmc 0:28392431dbad 697 }
robinmc 0:28392431dbad 698 if (swJoy==1) {
robinmc 0:28392431dbad 699 goto Pause;
robinmc 0:28392431dbad 700 }
robinmc 0:28392431dbad 701 if (shoot_flag==0) {
robinmc 0:28392431dbad 702 bullet=9;
robinmc 0:28392431dbad 703 if (joystick.direction==DOWN) {
robinmc 0:28392431dbad 704 bullet_height=40;
robinmc 0:28392431dbad 705 } else {
robinmc 0:28392431dbad 706 bullet_height=g_jump+4;
robinmc 0:28392431dbad 707 }
robinmc 0:28392431dbad 708 } else if (shoot_flag==1&loop==0) {
robinmc 0:28392431dbad 709 loop++;
robinmc 0:28392431dbad 710 ammo--;
robinmc 0:28392431dbad 711 if (joystick.direction==DOWN&jump_flag!=1) {
robinmc 0:28392431dbad 712 bullet_height=42;
robinmc 0:28392431dbad 713 } else {
robinmc 0:28392431dbad 714 bullet_height=g_jump+4;
robinmc 0:28392431dbad 715 }
robinmc 0:28392431dbad 716 }
robinmc 0:28392431dbad 717 if (b_A) {
robinmc 0:28392431dbad 718 if (ammo<=0) {
robinmc 0:28392431dbad 719 shoot_flag=0;
robinmc 0:28392431dbad 720 } else {
robinmc 0:28392431dbad 721 shoot_flag=1;
robinmc 0:28392431dbad 722 }
robinmc 0:28392431dbad 723 }
robinmc 0:28392431dbad 724 if (random_num<1000) {
robinmc 0:28392431dbad 725 print_bear_flag=1;
robinmc 0:28392431dbad 726 } else if (random_num>=1000&random_num<3000) {
robinmc 0:28392431dbad 727 print_bird_flag=1;
robinmc 0:28392431dbad 728 } else if (random_num>=3000&random_num<3010) {
robinmc 0:28392431dbad 729 print_heart_flag=1;
robinmc 0:28392431dbad 730 } else if (random_num>=3010&random_num<3050) {
robinmc 0:28392431dbad 731 print_ammo_flag=1;
robinmc 0:28392431dbad 732 } else if (random_num>=3050&random_num<6000) {
robinmc 0:28392431dbad 733 print_cactus_flag=1;
robinmc 0:28392431dbad 734 } else if (random_num>=6000&random_num<7000) {
robinmc 0:28392431dbad 735 print_ammo_flag=1;
robinmc 0:28392431dbad 736 print_t_rex_flag=1;
robinmc 0:28392431dbad 737 }
robinmc 0:28392431dbad 738 if (print_t_rex_flag==1&random_num%10==0&fire_on_screen==0) {
robinmc 0:28392431dbad 739 fire_on_screen=1;
robinmc 0:28392431dbad 740 print_fire_ball_flag=1;
robinmc 0:28392431dbad 741 fire_ball_hMovement=t_rex_movement-6;
robinmc 0:28392431dbad 742 fire_ball_vMovement=27;
robinmc 0:28392431dbad 743 }
robinmc 0:28392431dbad 744 if (joystick.direction==CENTRE&jump_flag!=1) {
robinmc 0:28392431dbad 745 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 746 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 747 print_recks_still_gun();
robinmc 0:28392431dbad 748 if (shoot_flag==1) {
robinmc 0:28392431dbad 749 bullet+=20;
robinmc 0:28392431dbad 750 if (bullet>=84) {
robinmc 0:28392431dbad 751 shoot_flag=0;
robinmc 0:28392431dbad 752 loop=0;
robinmc 0:28392431dbad 753 }
robinmc 0:28392431dbad 754 }
robinmc 0:28392431dbad 755 } else if (joystick.direction==LEFT&jump_flag!=1) {
robinmc 0:28392431dbad 756 if (run%2==0) {
robinmc 0:28392431dbad 757 print_recks_still_gun();
robinmc 0:28392431dbad 758 } else if (run%2==1) {
robinmc 0:28392431dbad 759 print_recks_moving_gun();
robinmc 0:28392431dbad 760 }
robinmc 0:28392431dbad 761 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 762 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 763 if (shoot_flag==1) {
robinmc 0:28392431dbad 764 bullet+=21;
robinmc 0:28392431dbad 765 if (bullet>=84) {
robinmc 0:28392431dbad 766 shoot_flag=0;
robinmc 0:28392431dbad 767 loop=0;
robinmc 0:28392431dbad 768 }
robinmc 0:28392431dbad 769 }
robinmc 0:28392431dbad 770 h_movement--;
robinmc 0:28392431dbad 771 run++;
robinmc 0:28392431dbad 772 } else if (joystick.direction==RIGHT&jump_flag!=1) {
robinmc 0:28392431dbad 773 if (run%2==0) {
robinmc 0:28392431dbad 774 print_recks_still_gun();
robinmc 0:28392431dbad 775 } else if (run%2==1) {
robinmc 0:28392431dbad 776 print_recks_moving_gun();
robinmc 0:28392431dbad 777 }
robinmc 0:28392431dbad 778 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 779 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 780 if (shoot_flag==1) {
robinmc 0:28392431dbad 781 bullet+=19;
robinmc 0:28392431dbad 782 if (bullet>=84) {
robinmc 0:28392431dbad 783 shoot_flag=0;
robinmc 0:28392431dbad 784 loop=0;
robinmc 0:28392431dbad 785 }
robinmc 0:28392431dbad 786 }
robinmc 0:28392431dbad 787 h_movement++;
robinmc 0:28392431dbad 788 run++;
robinmc 0:28392431dbad 789 } else if (joystick.direction==DOWN&jump_flag!=1) {
robinmc 0:28392431dbad 790 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 791 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 792 print_recks_crouch_gun();
robinmc 0:28392431dbad 793 bullet_height=42;
robinmc 0:28392431dbad 794 if (shoot_flag==1) {
robinmc 0:28392431dbad 795 bullet+=20;
robinmc 0:28392431dbad 796 if (bullet>=84) {
robinmc 0:28392431dbad 797 shoot_flag=0;
robinmc 0:28392431dbad 798 loop=0;
robinmc 0:28392431dbad 799 }
robinmc 0:28392431dbad 800 }
robinmc 0:28392431dbad 801 } else if (jump_flag==1) {
robinmc 0:28392431dbad 802 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 803 if (shoot_flag==1) {
robinmc 0:28392431dbad 804 bullet+=21;
robinmc 0:28392431dbad 805 if (bullet>=84) {
robinmc 0:28392431dbad 806 shoot_flag=0;
robinmc 0:28392431dbad 807 loop=0;
robinmc 0:28392431dbad 808 }
robinmc 0:28392431dbad 809 }
robinmc 0:28392431dbad 810 h_movement--;
robinmc 0:28392431dbad 811 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 812 if (shoot_flag==1) {
robinmc 0:28392431dbad 813 bullet+=19;
robinmc 0:28392431dbad 814 if (bullet>=84) {
robinmc 0:28392431dbad 815 shoot_flag=0;
robinmc 0:28392431dbad 816 loop=0;
robinmc 0:28392431dbad 817 }
robinmc 0:28392431dbad 818 }
robinmc 0:28392431dbad 819 h_movement++;
robinmc 0:28392431dbad 820 } else if (joystick.direction==CENTRE) {
robinmc 0:28392431dbad 821 if (shoot_flag==1) {
robinmc 0:28392431dbad 822 bullet+=20;
robinmc 0:28392431dbad 823 if (bullet>=84) {
robinmc 0:28392431dbad 824 shoot_flag=0;
robinmc 0:28392431dbad 825 loop=0;
robinmc 0:28392431dbad 826 }
robinmc 0:28392431dbad 827 }
robinmc 0:28392431dbad 828 }
robinmc 0:28392431dbad 829 if (g_jump<=36&jumpUp==0&g_jump!=15) {
robinmc 0:28392431dbad 830 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 831 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 832 if (bullet>=84) {
robinmc 0:28392431dbad 833 shoot_flag=0;
robinmc 0:28392431dbad 834 loop=0;
robinmc 0:28392431dbad 835 }
robinmc 0:28392431dbad 836 print_recks_jump_gun();
robinmc 0:28392431dbad 837 g_jump-=6-accel;
robinmc 0:28392431dbad 838 accel++;
robinmc 0:28392431dbad 839 } else if (g_jump>=15&g_jump!=36) {
robinmc 0:28392431dbad 840 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 841 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 842 if (bullet>=84) {
robinmc 0:28392431dbad 843 shoot_flag=0;
robinmc 0:28392431dbad 844 loop=0;
robinmc 0:28392431dbad 845 }
robinmc 0:28392431dbad 846 print_recks_jump_gun();
robinmc 0:28392431dbad 847 g_jump+=6-accel;
robinmc 0:28392431dbad 848 accel--;
robinmc 0:28392431dbad 849 jumpUp=1;
robinmc 0:28392431dbad 850 } else if (g_jump==36&jumpUp==1) {
robinmc 0:28392431dbad 851 lcd.setPixel(bullet,bullet_height);
robinmc 0:28392431dbad 852 lcd.setPixel(bullet+1,bullet_height);
robinmc 0:28392431dbad 853 if (bullet>=84) {
robinmc 0:28392431dbad 854 shoot_flag=0;
robinmc 0:28392431dbad 855 loop=0;
robinmc 0:28392431dbad 856 }
robinmc 0:28392431dbad 857 print_recks_still_gun();
robinmc 0:28392431dbad 858 jump_flag=0;
robinmc 0:28392431dbad 859 jumpUp=0;
robinmc 0:28392431dbad 860 g_jump=36;
robinmc 0:28392431dbad 861 accel=0;
robinmc 0:28392431dbad 862 }
robinmc 0:28392431dbad 863 }
robinmc 0:28392431dbad 864 }
robinmc 0:28392431dbad 865 if (print_bear_flag==1) {
robinmc 0:28392431dbad 866 if (i%4>=2) {
robinmc 0:28392431dbad 867 print_mob_bear_p1();
robinmc 0:28392431dbad 868 } else if (i%4<2) {
robinmc 0:28392431dbad 869 print_mob_bear_p2();
robinmc 0:28392431dbad 870 }
robinmc 0:28392431dbad 871 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 872 bear_movement++;
robinmc 0:28392431dbad 873 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 874 bear_movement--;
robinmc 0:28392431dbad 875 }
robinmc 0:28392431dbad 876 bear_movement-=2;
robinmc 0:28392431dbad 877 if (bear_movement<=-15) {
robinmc 0:28392431dbad 878 bear_movement=100;
robinmc 0:28392431dbad 879 print_bear_flag=0;
robinmc 0:28392431dbad 880 }
robinmc 0:28392431dbad 881 if (bear_movement<=8&bear_movement>=-5&g_jump>28&lose_lives_delay_flag==0) { //a life is lost if recks has an vertical and horizontal position equal to one of the pixels corresponding to the bears position
robinmc 0:28392431dbad 882 lives--;
robinmc 0:28392431dbad 883 lose_lives_delay_flag=1;
robinmc 0:28392431dbad 884 }
robinmc 0:28392431dbad 885 if (shoot_flag==1&bullet_height<72) {
robinmc 0:28392431dbad 886 bear_lives++;
robinmc 0:28392431dbad 887 if (bear_lives==12-3*g_g1-3*g_g2) {
robinmc 0:28392431dbad 888 print_mob_bear_dead();
robinmc 0:28392431dbad 889 print_bear_flag=0;
robinmc 0:28392431dbad 890 bear_movement=100;
robinmc 0:28392431dbad 891 kill_score+=7;
robinmc 0:28392431dbad 892 bear_lives=0;
robinmc 0:28392431dbad 893 }
robinmc 0:28392431dbad 894 }
robinmc 0:28392431dbad 895 }
robinmc 0:28392431dbad 896 if (print_bird_flag==1) {
robinmc 0:28392431dbad 897 if (i%8>=4) {
robinmc 0:28392431dbad 898 print_mob_bird_p1();
robinmc 0:28392431dbad 899 } else if (i%8<4) {
robinmc 0:28392431dbad 900 print_mob_bird_p2();
robinmc 0:28392431dbad 901 }
robinmc 0:28392431dbad 902 bird_hMovement-=2;
robinmc 0:28392431dbad 903 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 904 bird_hMovement++;
robinmc 0:28392431dbad 905 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 906 bird_hMovement--;
robinmc 0:28392431dbad 907 }
robinmc 0:28392431dbad 908 if (random_num%6==0) {
robinmc 0:28392431dbad 909 bird_vMovement--;
robinmc 0:28392431dbad 910 } else if (random_num%6>=4) {
robinmc 0:28392431dbad 911 bird_vMovement++;
robinmc 0:28392431dbad 912 }
robinmc 0:28392431dbad 913 if (bird_vMovement>=37) {
robinmc 0:28392431dbad 914 bird_vMovement=37;
robinmc 0:28392431dbad 915 } else if (bird_vMovement<=10) {
robinmc 0:28392431dbad 916 bird_vMovement=10;
robinmc 0:28392431dbad 917 }
robinmc 0:28392431dbad 918 if (bird_hMovement<=-10) {
robinmc 0:28392431dbad 919 print_bird_flag=0;
robinmc 0:28392431dbad 920 bird_hMovement=100;
robinmc 0:28392431dbad 921 bird_vMovement=20;
robinmc 0:28392431dbad 922 bear_lives=0;
robinmc 0:28392431dbad 923 }
robinmc 0:28392431dbad 924 if ((bird_hMovement>=0&bird_hMovement<=10)&(bird_vMovement+5>=g_jump&bird_vMovement+5<=g_jump+10&lose_lives_delay_flag==0)) {
robinmc 0:28392431dbad 925 lives--;
robinmc 0:28392431dbad 926 lose_lives_delay_flag=1;
robinmc 0:28392431dbad 927 }
robinmc 0:28392431dbad 928 if (shoot_flag==1&(bullet_height==bird_vMovement+5|bullet_height==bird_vMovement+4)) {
robinmc 0:28392431dbad 929 print_mob_bird_dead();
robinmc 0:28392431dbad 930 print_bird_flag=0;
robinmc 0:28392431dbad 931 bird_hMovement=100;
robinmc 0:28392431dbad 932 bird_vMovement=20;
robinmc 0:28392431dbad 933 kill_score+=5;
robinmc 0:28392431dbad 934 }
robinmc 0:28392431dbad 935 }
robinmc 0:28392431dbad 936 if (print_cactus_flag==1) {
robinmc 0:28392431dbad 937 print_cactus();
robinmc 0:28392431dbad 938 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 939 cactus_movement++;
robinmc 0:28392431dbad 940 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 941 cactus_movement--;
robinmc 0:28392431dbad 942 }
robinmc 0:28392431dbad 943 if (cactus_movement<=-10) {
robinmc 0:28392431dbad 944 cactus_movement=110;
robinmc 0:28392431dbad 945 print_cactus_flag=0;
robinmc 0:28392431dbad 946 }
robinmc 0:28392431dbad 947 if (cactus_movement<=10&cactus_movement>=2&g_jump>32&lose_lives_delay_flag==0) {
robinmc 0:28392431dbad 948 lives--;
robinmc 0:28392431dbad 949 lose_lives_delay_flag=1;
robinmc 0:28392431dbad 950 }
robinmc 0:28392431dbad 951 }
robinmc 0:28392431dbad 952
robinmc 0:28392431dbad 953 if (print_t_rex_flag==1) {
robinmc 0:28392431dbad 954 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 955 t_rex_movement++;
robinmc 0:28392431dbad 956 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 957 t_rex_movement--;
robinmc 0:28392431dbad 958 }
robinmc 0:28392431dbad 959 if (random_num%4==0&print_fire_ball_flag!=1) {
robinmc 0:28392431dbad 960 t_rex_movement+=2;
robinmc 0:28392431dbad 961 print_t_rex_moving();
robinmc 0:28392431dbad 962 } else if (random_num%4==1&print_fire_ball_flag!=1) {
robinmc 0:28392431dbad 963 t_rex_movement-=2;
robinmc 0:28392431dbad 964 print_t_rex_moving();
robinmc 0:28392431dbad 965 } else if (random_num%4>1&print_fire_ball_flag!=1) {
robinmc 0:28392431dbad 966 print_t_rex();
robinmc 0:28392431dbad 967 }
robinmc 0:28392431dbad 968 if (t_rex_movement<=-100) {
robinmc 0:28392431dbad 969 t_rex_movement=120;
robinmc 0:28392431dbad 970 print_t_rex_flag=0;
robinmc 0:28392431dbad 971 }
robinmc 0:28392431dbad 972 if (t_rex_movement<=6&t_rex_movement>=2&lose_lives_delay_flag==0) {
robinmc 0:28392431dbad 973 lives--;
robinmc 0:28392431dbad 974 lose_lives_delay_flag=1;
robinmc 0:28392431dbad 975 }
robinmc 0:28392431dbad 976 }
robinmc 0:28392431dbad 977 if (print_fire_ball_flag==1) {
robinmc 0:28392431dbad 978 print_t_rex_attack();
robinmc 0:28392431dbad 979 fire_ball_hMovement-=2;
robinmc 0:28392431dbad 980 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 981 fire_ball_hMovement++;
robinmc 0:28392431dbad 982 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 983 fire_ball_hMovement--;
robinmc 0:28392431dbad 984 }
robinmc 0:28392431dbad 985 if (i%4>=2) {
robinmc 0:28392431dbad 986 print_fire_ball_p1();
robinmc 0:28392431dbad 987 } else {
robinmc 0:28392431dbad 988 print_fire_ball_p2();
robinmc 0:28392431dbad 989 }
robinmc 0:28392431dbad 990 if (fire_ball_vMovement>=37) {
robinmc 0:28392431dbad 991 fire_ball_vMovement=37;
robinmc 0:28392431dbad 992 }
robinmc 0:28392431dbad 993 if (random_num%3==0) {
robinmc 0:28392431dbad 994 fire_ball_vMovement++;
robinmc 0:28392431dbad 995 } else if (random_num%3==1) {
robinmc 0:28392431dbad 996 fire_ball_vMovement+=2;
robinmc 0:28392431dbad 997 }
robinmc 0:28392431dbad 998 if (fire_ball_hMovement<=-10) {
robinmc 0:28392431dbad 999 fire_ball_vMovement=27;
robinmc 0:28392431dbad 1000 fire_ball_hMovement=t_rex_movement-6;
robinmc 0:28392431dbad 1001 print_fire_ball_flag=0;
robinmc 0:28392431dbad 1002 fire_on_screen=0;
robinmc 0:28392431dbad 1003 }
robinmc 0:28392431dbad 1004 if (fire_ball_hMovement>=3&fire_ball_hMovement<=8&fire_ball_vMovement>g_jump-5&fire_ball_vMovement<g_jump+10&lose_lives_delay_flag==0) {
robinmc 0:28392431dbad 1005 lives--;
robinmc 0:28392431dbad 1006 lose_lives_delay_flag=1;
robinmc 0:28392431dbad 1007 }
robinmc 0:28392431dbad 1008 if (shoot_flag==1) {
robinmc 0:28392431dbad 1009 t_rex_lives++;
robinmc 0:28392431dbad 1010 if (t_rex_lives>=24-3*g_g1-3*g_g2) {
robinmc 0:28392431dbad 1011 print_t_rex_flag=0;
robinmc 0:28392431dbad 1012 t_rex_movement=120;
robinmc 0:28392431dbad 1013 kill_score+=20;
robinmc 0:28392431dbad 1014 t_rex_lives=0;
robinmc 0:28392431dbad 1015 }
robinmc 0:28392431dbad 1016 }
robinmc 0:28392431dbad 1017 }
robinmc 0:28392431dbad 1018 if (print_heart_flag==1) {
robinmc 0:28392431dbad 1019 print_heart();
robinmc 0:28392431dbad 1020 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 1021 heart_movement++;
robinmc 0:28392431dbad 1022 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 1023 heart_movement--;
robinmc 0:28392431dbad 1024 }
robinmc 0:28392431dbad 1025 if (heart_movement<=5&g_jump>26) {
robinmc 0:28392431dbad 1026 heart_movement=90;
robinmc 0:28392431dbad 1027 print_heart_flag=0;
robinmc 0:28392431dbad 1028 lives++;
robinmc 0:28392431dbad 1029 }
robinmc 0:28392431dbad 1030 }
robinmc 0:28392431dbad 1031 if (print_ammo_flag==1) {
robinmc 0:28392431dbad 1032 print_ammo_pickUp();
robinmc 0:28392431dbad 1033 if (joystick.direction==LEFT) {
robinmc 0:28392431dbad 1034 ammo_movement++;
robinmc 0:28392431dbad 1035 } else if (joystick.direction==RIGHT) {
robinmc 0:28392431dbad 1036 ammo_movement--;
robinmc 0:28392431dbad 1037 }
robinmc 0:28392431dbad 1038 if (ammo_movement<=5&g_jump>26) {
robinmc 0:28392431dbad 1039 ammo_movement=90;
robinmc 0:28392431dbad 1040 print_ammo_flag=0;
robinmc 0:28392431dbad 1041 ammo+=5;
robinmc 0:28392431dbad 1042 ammo+=rand()%7;
robinmc 0:28392431dbad 1043 }
robinmc 0:28392431dbad 1044 }
robinmc 0:28392431dbad 1045 print_clouds();
robinmc 0:28392431dbad 1046 ground();
robinmc 0:28392431dbad 1047 i++;
robinmc 0:28392431dbad 1048 lcd.refresh();
robinmc 0:28392431dbad 1049 sleep();
robinmc 0:28392431dbad 1050 }
robinmc 0:28392431dbad 1051
robinmc 0:28392431dbad 1052 Pause:
robinmc 0:28392431dbad 1053 while (1) {
robinmc 0:28392431dbad 1054 clearCells();
robinmc 0:28392431dbad 1055 wait(0.2);
robinmc 0:28392431dbad 1056 if (swJoy==1) {
robinmc 0:28392431dbad 1057 goto Continue;
robinmc 0:28392431dbad 1058 }
robinmc 0:28392431dbad 1059 }
robinmc 0:28392431dbad 1060 GameOver:
robinmc 0:28392431dbad 1061 clearCells();
robinmc 0:28392431dbad 1062 lcd.printString("GAME",25,1);
robinmc 0:28392431dbad 1063 lcd.printString("OVER",25,2);
robinmc 0:28392431dbad 1064 lcd.printString("A Retry",40,4);
robinmc 0:28392431dbad 1065 lcd.printString("B Back to Menu",0,5);
robinmc 0:28392431dbad 1066 while (1) {
robinmc 0:28392431dbad 1067 if (b_A==1) {
robinmc 0:28392431dbad 1068 wait(0.2);
robinmc 0:28392431dbad 1069 initialize_values();
robinmc 0:28392431dbad 1070 goto Continue;
robinmc 0:28392431dbad 1071 } else if (b_B==1) {
robinmc 0:28392431dbad 1072 wait(0.2);
robinmc 0:28392431dbad 1073 initialize_values();
robinmc 0:28392431dbad 1074 goto Menu;
robinmc 0:28392431dbad 1075 }
robinmc 0:28392431dbad 1076 }
robinmc 0:28392431dbad 1077 }
robinmc 0:28392431dbad 1078
robinmc 0:28392431dbad 1079
robinmc 0:28392431dbad 1080
robinmc 0:28392431dbad 1081
robinmc 0:28392431dbad 1082
robinmc 0:28392431dbad 1083 // -----------------------------------------------------------------------------------------------------------------------------------------
robinmc 0:28392431dbad 1084
robinmc 0:28392431dbad 1085 void game() {
robinmc 0:28392431dbad 1086
robinmc 0:28392431dbad 1087 };
robinmc 0:28392431dbad 1088
robinmc 0:28392431dbad 1089 void print_ammo()
robinmc 0:28392431dbad 1090 {
robinmc 0:28392431dbad 1091 for(int c=0; c<=2; c++) { // 2 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 1092 for(int r=0; r<=4; r++) {
robinmc 0:28392431dbad 1093 for (int n=70; n<=74; n+=4) {
robinmc 0:28392431dbad 1094 if (n==74&ammo%10==0) {
robinmc 0:28392431dbad 1095 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1096 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1097 } else {
robinmc 0:28392431dbad 1098 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1099 }
robinmc 0:28392431dbad 1100 } else if (n==74&ammo%10==1) {
robinmc 0:28392431dbad 1101 if (one[r][c]==1) {
robinmc 0:28392431dbad 1102 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1103 } else {
robinmc 0:28392431dbad 1104 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1105 }
robinmc 0:28392431dbad 1106 } else if (n==74&ammo%10==2) {
robinmc 0:28392431dbad 1107 if (two[r][c]==1) {
robinmc 0:28392431dbad 1108 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1109 } else {
robinmc 0:28392431dbad 1110 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1111 }
robinmc 0:28392431dbad 1112 } else if (n==74&ammo%10==3) {
robinmc 0:28392431dbad 1113 if (three[r][c]==1) {
robinmc 0:28392431dbad 1114 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1115 } else {
robinmc 0:28392431dbad 1116 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1117 }
robinmc 0:28392431dbad 1118 } else if (n==74&ammo%10==4) {
robinmc 0:28392431dbad 1119 if (four[r][c]==1) {
robinmc 0:28392431dbad 1120 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1121 } else {
robinmc 0:28392431dbad 1122 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1123 }
robinmc 0:28392431dbad 1124 } else if (n==74&ammo%10==5) {
robinmc 0:28392431dbad 1125 if (five[r][c]==1) {
robinmc 0:28392431dbad 1126 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1127 } else {
robinmc 0:28392431dbad 1128 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1129 }
robinmc 0:28392431dbad 1130 } else if (n==74&ammo%10==6) {
robinmc 0:28392431dbad 1131 if (six[r][c]==1) {
robinmc 0:28392431dbad 1132 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1133 } else {
robinmc 0:28392431dbad 1134 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1135 }
robinmc 0:28392431dbad 1136 } else if (n==74&ammo%10==7) {
robinmc 0:28392431dbad 1137 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1138 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1139 } else {
robinmc 0:28392431dbad 1140 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1141 }
robinmc 0:28392431dbad 1142 } else if (n==74&ammo%10==8) {
robinmc 0:28392431dbad 1143 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1144 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1145 } else {
robinmc 0:28392431dbad 1146 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1147 }
robinmc 0:28392431dbad 1148 } else if (n==74&ammo%10==9) {
robinmc 0:28392431dbad 1149 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1150 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1151 } else {
robinmc 0:28392431dbad 1152 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1153 }
robinmc 0:28392431dbad 1154 }
robinmc 0:28392431dbad 1155
robinmc 0:28392431dbad 1156 if (n==70&(ammo%100>=0&ammo%100<10)) {
robinmc 0:28392431dbad 1157 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1158 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1159 } else {
robinmc 0:28392431dbad 1160 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1161 }
robinmc 0:28392431dbad 1162 } else if (n==70&(ammo%100>=10&ammo%100<20)) {
robinmc 0:28392431dbad 1163 if (one[r][c]==1) {
robinmc 0:28392431dbad 1164 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1165 } else {
robinmc 0:28392431dbad 1166 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1167 }
robinmc 0:28392431dbad 1168 } else if (n==70&(ammo%100>=20&ammo%100<30)) {
robinmc 0:28392431dbad 1169 if (two[r][c]==1) {
robinmc 0:28392431dbad 1170 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1171 } else {
robinmc 0:28392431dbad 1172 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1173 }
robinmc 0:28392431dbad 1174 } else if (n==70&(ammo%100>=30&ammo%100<40)) {
robinmc 0:28392431dbad 1175 if (three[r][c]==1) {
robinmc 0:28392431dbad 1176 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1177 } else {
robinmc 0:28392431dbad 1178 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1179 }
robinmc 0:28392431dbad 1180 } else if (n==70&(ammo%100>=40&ammo%100<50)) {
robinmc 0:28392431dbad 1181 if (four[r][c]==1) {
robinmc 0:28392431dbad 1182 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1183 } else {
robinmc 0:28392431dbad 1184 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1185 }
robinmc 0:28392431dbad 1186 } else if (n==70&(ammo%100>=50&ammo%100<60)) {
robinmc 0:28392431dbad 1187 if (five[r][c]==1) {
robinmc 0:28392431dbad 1188 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1189 } else {
robinmc 0:28392431dbad 1190 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1191 }
robinmc 0:28392431dbad 1192 } else if (n==70&(ammo%100>=60&ammo%100<70)) {
robinmc 0:28392431dbad 1193 if (six[r][c]==1) {
robinmc 0:28392431dbad 1194 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1195 } else {
robinmc 0:28392431dbad 1196 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1197 }
robinmc 0:28392431dbad 1198 } else if (n==70&(ammo%100>=70&ammo%100<80)) {
robinmc 0:28392431dbad 1199 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1200 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1201 } else {
robinmc 0:28392431dbad 1202 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1203 }
robinmc 0:28392431dbad 1204 } else if (n==70&(ammo%100>=80&ammo%100<90)) {
robinmc 0:28392431dbad 1205 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1206 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1207 } else {
robinmc 0:28392431dbad 1208 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1209 }
robinmc 0:28392431dbad 1210 } else if (n==70&(ammo%100>=90&ammo%100<100)) {
robinmc 0:28392431dbad 1211 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1212 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1213 } else {
robinmc 0:28392431dbad 1214 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1215 }
robinmc 0:28392431dbad 1216 }
robinmc 0:28392431dbad 1217 }
robinmc 0:28392431dbad 1218 }
robinmc 0:28392431dbad 1219 }
robinmc 0:28392431dbad 1220 for(int c=0; c<=14; c++) { //14 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 1221 for(int r=0; r<=4; r++) {
robinmc 0:28392431dbad 1222 if (g_ammo[r][c]==0) {
robinmc 0:28392431dbad 1223 lcd.clearPixel(c+50,r);
robinmc 0:28392431dbad 1224 } else if (g_ammo[r][c]==1) {
robinmc 0:28392431dbad 1225 lcd.setPixel(c+50,r);
robinmc 0:28392431dbad 1226 }
robinmc 0:28392431dbad 1227 }
robinmc 0:28392431dbad 1228 }
robinmc 0:28392431dbad 1229 if (ammo>=99) {
robinmc 0:28392431dbad 1230 ammo=99;
robinmc 0:28392431dbad 1231 }
robinmc 0:28392431dbad 1232 lcd.refresh();
robinmc 0:28392431dbad 1233 }
robinmc 0:28392431dbad 1234
robinmc 0:28392431dbad 1235 void print_score()
robinmc 0:28392431dbad 1236 {
robinmc 0:28392431dbad 1237 score=h_movement/10+kill_score;
robinmc 0:28392431dbad 1238 if (score<=0) {
robinmc 0:28392431dbad 1239 score=0;
robinmc 0:28392431dbad 1240 }
robinmc 0:28392431dbad 1241 for(int c=0; c<=2; c++) { //2 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 1242 for(int r=0; r<=4; r++) {
robinmc 0:28392431dbad 1243 for (int n=24; n<=36; n+=4) {
robinmc 0:28392431dbad 1244 if (n==36&score%10==0) {
robinmc 0:28392431dbad 1245 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1246 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1247 } else {
robinmc 0:28392431dbad 1248 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1249 }
robinmc 0:28392431dbad 1250 } else if (n==36&score%10==1) {
robinmc 0:28392431dbad 1251 if (one[r][c]==1) {
robinmc 0:28392431dbad 1252 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1253 } else {
robinmc 0:28392431dbad 1254 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1255 }
robinmc 0:28392431dbad 1256 } else if (n==36&score%10==2) {
robinmc 0:28392431dbad 1257 if (two[r][c]==1) {
robinmc 0:28392431dbad 1258 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1259 } else {
robinmc 0:28392431dbad 1260 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1261 }
robinmc 0:28392431dbad 1262 } else if (n==36&score%10==3) {
robinmc 0:28392431dbad 1263 if (three[r][c]==1) {
robinmc 0:28392431dbad 1264 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1265 } else {
robinmc 0:28392431dbad 1266 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1267 }
robinmc 0:28392431dbad 1268 } else if (n==36&score%10==4) {
robinmc 0:28392431dbad 1269 if (four[r][c]==1) {
robinmc 0:28392431dbad 1270 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1271 } else {
robinmc 0:28392431dbad 1272 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1273 }
robinmc 0:28392431dbad 1274 } else if (n==36&score%10==5) {
robinmc 0:28392431dbad 1275 if (five[r][c]==1) {
robinmc 0:28392431dbad 1276 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1277 } else {
robinmc 0:28392431dbad 1278 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1279 }
robinmc 0:28392431dbad 1280 } else if (n==36&score%10==6) {
robinmc 0:28392431dbad 1281 if (six[r][c]==1) {
robinmc 0:28392431dbad 1282 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1283 } else {
robinmc 0:28392431dbad 1284 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1285 }
robinmc 0:28392431dbad 1286 } else if (n==36&score%10==7) {
robinmc 0:28392431dbad 1287 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1288 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1289 } else {
robinmc 0:28392431dbad 1290 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1291 }
robinmc 0:28392431dbad 1292 } else if (n==36&score%10==8) {
robinmc 0:28392431dbad 1293 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1294 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1295 } else {
robinmc 0:28392431dbad 1296 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1297 }
robinmc 0:28392431dbad 1298 } else if (n==36&score%10==9) {
robinmc 0:28392431dbad 1299 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1300 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1301 } else {
robinmc 0:28392431dbad 1302 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1303 }
robinmc 0:28392431dbad 1304 }
robinmc 0:28392431dbad 1305
robinmc 0:28392431dbad 1306 if (n==32&(score%100>=0&score%100<10)) {
robinmc 0:28392431dbad 1307 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1308 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1309 } else {
robinmc 0:28392431dbad 1310 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1311 }
robinmc 0:28392431dbad 1312 } else if (n==32&(score%100>=10&score%100<20)) {
robinmc 0:28392431dbad 1313 if (one[r][c]==1) {
robinmc 0:28392431dbad 1314 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1315 } else {
robinmc 0:28392431dbad 1316 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1317 }
robinmc 0:28392431dbad 1318 } else if (n==32&(score%100>=20&score%100<30)) {
robinmc 0:28392431dbad 1319 if (two[r][c]==1) {
robinmc 0:28392431dbad 1320 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1321 } else {
robinmc 0:28392431dbad 1322 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1323 }
robinmc 0:28392431dbad 1324 } else if (n==32&(score%100>=30&score%100<40)) {
robinmc 0:28392431dbad 1325 if (three[r][c]==1) {
robinmc 0:28392431dbad 1326 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1327 } else {
robinmc 0:28392431dbad 1328 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1329 }
robinmc 0:28392431dbad 1330 } else if (n==32&(score%100>=40&score%100<50)) {
robinmc 0:28392431dbad 1331 if (four[r][c]==1) {
robinmc 0:28392431dbad 1332 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1333 } else {
robinmc 0:28392431dbad 1334 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1335 }
robinmc 0:28392431dbad 1336 } else if (n==32&(score%100>=50&score%100<60)) {
robinmc 0:28392431dbad 1337 if (five[r][c]==1) {
robinmc 0:28392431dbad 1338 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1339 } else {
robinmc 0:28392431dbad 1340 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1341 }
robinmc 0:28392431dbad 1342 } else if (n==32&(score%100>=60&score%100<70)) {
robinmc 0:28392431dbad 1343 if (six[r][c]==1) {
robinmc 0:28392431dbad 1344 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1345 } else {
robinmc 0:28392431dbad 1346 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1347 }
robinmc 0:28392431dbad 1348 } else if (n==32&(score%100>=70&score%100<80)) {
robinmc 0:28392431dbad 1349 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1350 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1351 } else {
robinmc 0:28392431dbad 1352 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1353 }
robinmc 0:28392431dbad 1354 } else if (n==32&(score%100>=80&score%100<90)) {
robinmc 0:28392431dbad 1355 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1356 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1357 } else {
robinmc 0:28392431dbad 1358 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1359 }
robinmc 0:28392431dbad 1360 } else if (n==32&(score%100>=90&score%100<100)) {
robinmc 0:28392431dbad 1361 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1362 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1363 } else {
robinmc 0:28392431dbad 1364 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1365 }
robinmc 0:28392431dbad 1366 }
robinmc 0:28392431dbad 1367 if (n==28&(score%1000>=0&score%1000<100)) {
robinmc 0:28392431dbad 1368 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1369 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1370 } else {
robinmc 0:28392431dbad 1371 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1372 }
robinmc 0:28392431dbad 1373 } else if (n==28&(score%1000>=100&score%1000<200)) {
robinmc 0:28392431dbad 1374 if (one[r][c]==1) {
robinmc 0:28392431dbad 1375 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1376 } else {
robinmc 0:28392431dbad 1377 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1378 }
robinmc 0:28392431dbad 1379 } else if (n==28&(score%1000>=200&score%1000<300)) {
robinmc 0:28392431dbad 1380 if (two[r][c]==1) {
robinmc 0:28392431dbad 1381 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1382 } else {
robinmc 0:28392431dbad 1383 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1384 }
robinmc 0:28392431dbad 1385 } else if (n==28&(score%1000>=300&score%1000<400)) {
robinmc 0:28392431dbad 1386 if (three[r][c]==1) {
robinmc 0:28392431dbad 1387 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1388 } else {
robinmc 0:28392431dbad 1389 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1390 }
robinmc 0:28392431dbad 1391 } else if (n==28&(score%1000>=400&score%1000<500)) {
robinmc 0:28392431dbad 1392 if (four[r][c]==1) {
robinmc 0:28392431dbad 1393 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1394 } else {
robinmc 0:28392431dbad 1395 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1396 }
robinmc 0:28392431dbad 1397 } else if (n==28&(score%1000>=500&score%1000<600)) {
robinmc 0:28392431dbad 1398 if (five[r][c]==1) {
robinmc 0:28392431dbad 1399 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1400 } else {
robinmc 0:28392431dbad 1401 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1402 }
robinmc 0:28392431dbad 1403 } else if (n==28&(score%1000>=600&score%1000<700)) {
robinmc 0:28392431dbad 1404 if (six[r][c]==1) {
robinmc 0:28392431dbad 1405 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1406 } else {
robinmc 0:28392431dbad 1407 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1408 }
robinmc 0:28392431dbad 1409 } else if (n==28&(score%1000>=700&score%1000<800)) {
robinmc 0:28392431dbad 1410 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1411 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1412 } else {
robinmc 0:28392431dbad 1413 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1414 }
robinmc 0:28392431dbad 1415 } else if (n==28&(score%1000>=800&score%1000<900)) {
robinmc 0:28392431dbad 1416 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1417 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1418 } else {
robinmc 0:28392431dbad 1419 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1420 }
robinmc 0:28392431dbad 1421 } else if (n==28&(score%1000>=900&score%1000<1000)) {
robinmc 0:28392431dbad 1422 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1423 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1424 } else {
robinmc 0:28392431dbad 1425 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1426 }
robinmc 0:28392431dbad 1427 }
robinmc 0:28392431dbad 1428 if (n==24&(score%10000>=0&score%10000<1000)) {
robinmc 0:28392431dbad 1429 if (zero[r][c]==1) {
robinmc 0:28392431dbad 1430 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1431 } else {
robinmc 0:28392431dbad 1432 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1433 }
robinmc 0:28392431dbad 1434 } else if (n==24&(score%10000>=1000&score%10000<2000)) {
robinmc 0:28392431dbad 1435 if (one[r][c]==1) {
robinmc 0:28392431dbad 1436 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1437 } else {
robinmc 0:28392431dbad 1438 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1439 }
robinmc 0:28392431dbad 1440 } else if (n==24&(score%10000>=2000&score%10000<3000)) {
robinmc 0:28392431dbad 1441 if (two[r][c]==1) {
robinmc 0:28392431dbad 1442 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1443 } else {
robinmc 0:28392431dbad 1444 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1445 }
robinmc 0:28392431dbad 1446 } else if (n==24&(score%10000>=3000&score%10000<4000)) {
robinmc 0:28392431dbad 1447 if (three[r][c]==1) {
robinmc 0:28392431dbad 1448 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1449 } else {
robinmc 0:28392431dbad 1450 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1451 }
robinmc 0:28392431dbad 1452 } else if (n==24&(score%10000>=4000&score%10000<5000)) {
robinmc 0:28392431dbad 1453 if (four[r][c]==1) {
robinmc 0:28392431dbad 1454 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1455 } else {
robinmc 0:28392431dbad 1456 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1457 }
robinmc 0:28392431dbad 1458 } else if (n==24&(score%10000>=5000&score%10000<6000)) {
robinmc 0:28392431dbad 1459 if (five[r][c]==1) {
robinmc 0:28392431dbad 1460 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1461 } else {
robinmc 0:28392431dbad 1462 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1463 }
robinmc 0:28392431dbad 1464 } else if (n==24&(score%10000>=6000&score%10000<7000)) {
robinmc 0:28392431dbad 1465 if (six[r][c]==1) {
robinmc 0:28392431dbad 1466 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1467 } else {
robinmc 0:28392431dbad 1468 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1469 }
robinmc 0:28392431dbad 1470 } else if (n==24&(score%10000>=7000&score%10000<8000)) {
robinmc 0:28392431dbad 1471 if (seven[r][c]==1) {
robinmc 0:28392431dbad 1472 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1473 } else {
robinmc 0:28392431dbad 1474 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1475 }
robinmc 0:28392431dbad 1476 } else if (n==24&(score%10000>=8000&score%10000<9000)) {
robinmc 0:28392431dbad 1477 if (eight[r][c]==1) {
robinmc 0:28392431dbad 1478 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1479 } else {
robinmc 0:28392431dbad 1480 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1481 }
robinmc 0:28392431dbad 1482 } else if (n==24&(score%10000>=9000&score%10000<10000)) {
robinmc 0:28392431dbad 1483 if (nine[r][c]==1) {
robinmc 0:28392431dbad 1484 lcd.setPixel(c+n,r);
robinmc 0:28392431dbad 1485 } else {
robinmc 0:28392431dbad 1486 lcd.clearPixel(c+n,r);
robinmc 0:28392431dbad 1487 }
robinmc 0:28392431dbad 1488 }
robinmc 0:28392431dbad 1489 }
robinmc 0:28392431dbad 1490 }
robinmc 0:28392431dbad 1491 }
robinmc 0:28392431dbad 1492 for(int c=0; c<=18; c++) { //18 beacause the the loop stats from 0 but the array size from 1
robinmc 0:28392431dbad 1493 for(int r=0; r<=4; r++) {
robinmc 0:28392431dbad 1494 if (g_score[r][c]==0) {
robinmc 0:28392431dbad 1495 lcd.clearPixel(c,r);
robinmc 0:28392431dbad 1496 } else if (g_score[r][c]==1) {
robinmc 0:28392431dbad 1497 lcd.setPixel(c,r);
robinmc 0:28392431dbad 1498 }
robinmc 0:28392431dbad 1499 }
robinmc 0:28392431dbad 1500 }
robinmc 0:28392431dbad 1501 lcd.refresh();
robinmc 0:28392431dbad 1502 }