int printspi(int num) { // Recursively print the digits of the number if (num / 10 != 0) { printUart(num / 10); } return ('0' + (num % 10)); } void game() { lcd_init(1); char player[] = "X\n"; uint8_t row_player = 0; char obstacle[] = "O\n"; uint8_t random_rows[8] = {0, 2, 3, 1, 2, 3, 0, 1}; int row_index = 0; uint8_t row_obstacle[3]; int8_t col_obstacle[3]; int element_index = 0; //setCursor(19, row_player); //lcd_print(player); int timestep = 0; int score = 0; int flag = 0; int flag2 = 0; int j; int oldest = 0; while (1) { if (GPIO_READ == 0x55000000) { //delay(1); if (row_player < 3) { row_player++; // setCursor(19, row_player); } } else if (GPIO_READ == 0xAA000000) { //delay(1); if (row_player > 0) { row_player--; // setCursor(19, row_player); } } //if ((timestep == 0) || (timestep % 8 == 0)) { if ((timestep == 0) || (timestep % 7 == 0)) { //timestep = 0; col_obstacle[element_index] = -1; row_obstacle[element_index] = random_rows[row_index]; row_index = (row_index + 1) % 8; element_index = (element_index + 1) % 3; if (flag < 2) { flag++; oldest = 0; } else if (flag2 == 0 && flag == 2) { flag2 = 1; oldest = 0; } else oldest = (oldest + 1) % 3; } for (j = 0; j < flag+1; j++) col_obstacle[j]++; setCursor(19, row_player, 1); lcd_print(player, 1); for (j = 0; j < flag+1; j++) { if (col_obstacle[j] < 20) { setCursor((uint8_t) col_obstacle[j], row_obstacle[j], 1); lcd_print(obstacle, 1); } } if (col_obstacle[oldest] == 19 && row_obstacle[oldest] == row_player) break; else score++; // printf("Timestep: %d\n", timestep); // printf("Oldest: %d\n", oldest); // for (j = 0; j < 3; j++) { // printf("Index %d: (%u, %u)\n", j, (uint8_t) col_obstacle[j], row_obstacle[j]); // } // printf("\n"); delay2(500); timestep++; clear(); //if (timestep == 40) // break; } clear(); // char *score_char = (char *) printspi(score); char str[10] = "GAME OVER\n"; // char str2[] = "Score: "; setCursor(5, 1, 10); lcd_print(str, 10); setCursor(2, 2, 10); // lcd_print(str2, 10); // lcd_print(score_char, 10); // play_note(200, 40); delay(60000); return; //char str[10] = "Hello, Wo\n"; //lcd_print(str); /* char str1[] = "Hello, W\n"; char str2[] = "orld Ama\n"; char str3[] = "r Vassil\n"; char str4[] = "is James\n"; char str5[] = " and the\n"; char str6[] = " disappe\n"; char str7[] = "ared Tog\n"; */ //str = "Hello\n"; /* lcd_print(str1); lcd_print(str2); lcd_print(str3); lcd_print(str4); lcd_print(str5); lcd_print(str6); lcd_print(str7); lcd_print(str1); lcd_print(str2); lcd_print(str3); lcd_print(str4); */ //clear(); }