Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
Diff: main.cpp
- Revision:
- 7:7ab2f4b09196
- Parent:
- 6:fbaee888e5ea
- Child:
- 8:34fd253d0fa5
diff -r fbaee888e5ea -r 7ab2f4b09196 main.cpp
--- a/main.cpp Thu Nov 19 04:33:29 2020 +0000
+++ b/main.cpp Fri Nov 20 01:55:19 2020 +0000
@@ -60,6 +60,10 @@
int speedCounter;
bool invincibility = false;
int shieldCounter = 0;
+int slowflakeCounter = 0;
+void additional_info();
+int redCounter = 0;
+int blueCounter = 0;
// Function prototypes
@@ -82,6 +86,7 @@
#define IN_GAME_MENU 11
#define NOT_RIGHT 12
#define SNAKE_MAX_LENGTH 50
+#define WIN_GAME 13
// Get Actions from User (push buttons & accelerometer)
@@ -174,6 +179,38 @@
*/
void draw_game(int draw_option)
{
+ if (draw_option == WIN_GAME) {
+ int u = 58;
+ int v = 56;
+ uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
+ uLCD.text_width(1);
+ uLCD.text_height(1);
+ uLCD.locate(5,7);
+ uLCD.color(RED);
+ uLCD.printf("YOU WIN\n");
+ draw_snake_head(u+11, v+11);
+ draw_snake_body(u, v+11);
+ draw_snake_tail(u-11, v+11);
+
+ uLCD.textbackground_color(BLACK);
+ uLCD.color(0xFFFFFF);
+ uLCD.text_width(1);
+ uLCD.text_height(1);
+ uLCD.locate(4, 10);
+ uLCD.printf("Press 'B2'\n");
+ uLCD.locate(2, 11);
+ uLCD.printf("to play again!\n");
+
+ do {
+ input = read_inputs();
+ } while(input.b2);
+
+ uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
+ main2();
+
+ }
+
+
// prints game over if the player loses.
if (draw_option == GAME_OVER) {
int u = 58;
@@ -363,10 +400,10 @@
int u = 58;
int v = 56;
- uLCD.filled_rectangle(0, 9, 127, 14, GREEN); // Top
- uLCD.filled_rectangle(0, 13, 2, 114, GREEN); // Left
- uLCD.filled_rectangle(0, 114, 127, 117, GREEN); // Bottom
- uLCD.filled_rectangle(124, 14, 127, 117, GREEN); // Right
+ uLCD.filled_rectangle(0, 9, 127, 14, 0xADD8E6); // Top
+ uLCD.filled_rectangle(0, 13, 2, 114, 0xADD8E6); // Left
+ uLCD.filled_rectangle(0, 114, 127, 117, 0xADD8E6); // Bottom
+ uLCD.filled_rectangle(124, 14, 127, 117, 0xADD8E6); // Right
uLCD.text_width(1);
uLCD.text_height(1);
@@ -376,9 +413,9 @@
uLCD.text_width(1);
uLCD.text_height(1);
- uLCD.locate(3, 4);
+ uLCD.locate(1, 4);
uLCD.color(0xFFFFFF);
- uLCD.printf("Extra Life!");
+ uLCD.printf("Score w/o length");
uLCD.text_width(1);
uLCD.text_height(1);
@@ -386,8 +423,8 @@
uLCD.color(0xFFFFFF);
uLCD.printf("Invincibility");
- draw_life(u-22, v);
- draw_shield(u+22, v);
+ draw_shield(u-22, v);
+ draw_blue_potion(u+22, v);
uLCD.textbackground_color(BLACK);
uLCD.color(0xFFFFFF);
@@ -422,20 +459,18 @@
uLCD.text_width(1);
uLCD.text_height(1);
- uLCD.locate(2, 4);
+ uLCD.locate(5, 4);
uLCD.color(0xFFFFFF);
- uLCD.printf("FORCES 6 STEPS");
+ uLCD.printf("Reverse");
uLCD.text_width(1);
uLCD.text_height(1);
- uLCD.locate(3, 5);
+ uLCD.locate(1, 5);
uLCD.color(0xFFFFFF);
- uLCD.printf("OF DIRECTION");
+ uLCD.printf("Length w/o score");
- draw_arrow_down(u-33, v);
- draw_arrow_up(u-11, v);
- draw_arrow_right(u+33, v);
- draw_arrow_left(u+11, v);
+ draw_red_potion(u-22, v);
+ draw_reverse(u+22, v);
uLCD.textbackground_color(BLACK);
uLCD.color(0xFFFFFF);
@@ -450,6 +485,7 @@
input = read_inputs();
} while(input.b2);
uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
+
}
void harmful_items2() {
@@ -504,6 +540,33 @@
uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
}
+void additional_info() {
+
+ input = read_inputs();
+
+ uLCD.text_width(1);
+ uLCD.text_height(1);
+ uLCD.locate(1, 3);
+ uLCD.color(0xFFFFFF);
+ uLCD.printf("B1: OTHER ITEMS!");
+
+ uLCD.text_width(1);
+ uLCD.text_height(1);
+ uLCD.locate(2, 6);
+ uLCD.color(0xFFFFFF);
+ uLCD.printf("B2: DIFFICULTY MODES!");
+
+ if (!input.b1) {
+ harmful_items2();
+ }
+
+ do {
+ input = read_inputs();
+ } while(input.b3);
+
+ uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
+}
+
/**
* Initialize the main world map. Add walls around the edges, interior chambers,
@@ -527,8 +590,23 @@
add_goodie(16, 5);
add_lightspeed(15, 6);
add_goodie(7, 5);
- add_reverse(18, 5);
-
+ //add_reverse(18, 5);
+ //add_blue_potion(20,5);
+ add_red_potion(22, 5);
+ add_goodie(27, 5);
+ add_goodie(27, 4);
+ add_goodie(27, 3);
+ add_goodie(26, 3);
+ add_goodie(25, 3);
+ add_goodie(24, 3);
+ add_blue_potion(8, 5);
+ for (int i = 0; i < 40; i++) {
+ add_goodie(i, 6);
+ }
+
+
+
+
pc.printf("Adding walls!\r\n");
add_wall(0, 0, HORIZONTAL, map_width());
add_wall(0, map_height()-1, HORIZONTAL, map_width());
@@ -615,6 +693,11 @@
speedCounter--;
return;
}
+ if (slowflakeCounter <= 20 && slowflakeCounter != 0) {
+ slowflakeCounter--;
+ wait(1);
+ return;
+ }
wait(0.2);
}
@@ -665,6 +748,11 @@
speedCounter--;
return;
}
+ if (slowflakeCounter <= 20 && slowflakeCounter != 0) {
+ slowflakeCounter--;
+ wait(1);
+ return;
+ }
wait(0.2);
}
@@ -715,11 +803,22 @@
speedCounter--;
return;
}
+
+ if (slowflakeCounter <= 20 && slowflakeCounter != 0) {
+ slowflakeCounter--;
+ wait(1);
+ return;
+ }
wait(0.2);
}
void go_left2() {
+
+ if (get_here(snake.head_x - 1, snake.head_y)->walkable) {
+ return;
+ }
+
add_nothing(snake.tail_x, snake.tail_y);
// previous coordinate of the snake head which will be used by the body
int previousX = snake.head_x;
@@ -765,6 +864,12 @@
speedCounter--;
return;
}
+
+ if (slowflakeCounter <= 20 && slowflakeCounter != 0) {
+ slowflakeCounter--;
+ wait(1);
+ return;
+ }
wait(0.2);
@@ -783,23 +888,34 @@
//snake.locations[0].x = snake.body_x;
//snake.locations[0].y = snake.body_y;
- pc.printf("Shield Counter: %d\n", shieldCounter);
+ if (score == 20) {
+ draw_game(WIN_GAME);
+ }
+
+
+ //pc.printf("Shield Counter: %d\n", shieldCounter);
switch(action) {
case GO_RIGHT:
nextHead = get_east(snake.head_x, snake.head_y);
pc.printf("GO RIGHT\n");
- if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD) {
+ if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD && nextHead->type != SNOWFLAKE && nextHead->type != BLUEPOTION && nextHead->type !=REDPOTION && nextHead->type != BLUEPOTION) {
pc.printf("Before:\n");
pc.printf("head_x: %d, head_y: %d\n", snake.head_x, snake.head_y);
pc.printf("body_x: %d, body_y: %d\n", snake.body_x, snake.body_y);
pc.printf("tail_x: %d, tail_y: %d\n", snake.tail_x, snake.tail_y);
pc.printf("reverseCounter: %d\n\n", reverseCounter);
+ pc.printf("speedCounter: %d\n\n", speedCounter);
+ pc.printf("shieldCounter: %d\n\n", shieldCounter);
+ pc.printf("slowflakeCounter: %d", slowflakeCounter);
+ pc.printf("blueCounter: %d\n", blueCounter);
+ pc.printf("redCounter: %d", redCounter);
if (reverseCounter == 0) {
go_right2();
}
if (reverseCounter <= 20 && reverseCounter != 0) {
go_left2();
+ pc.printf("reverseCounter: %d", reverseCounter);
reverseCounter--;
}
//draw_snake_head(snake.head_pi, snake.head_pj);
@@ -813,6 +929,12 @@
if (shieldCounter <= 15 && shieldCounter != 0) {
shieldCounter--;
}
+ if (blueCounter <= 20 && blueCounter != 0) {
+ blueCounter--;
+ }
+ if (redCounter <= 20 && redCounter != 0) {
+ redCounter--;
+ }
}
if (!nextHead->walkable && invincibility == false) {
@@ -832,10 +954,14 @@
}
if (nextHead->type == GOODIE) {
+ if (redCounter == 0) {
score++;
+ }
+
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x + 1, snake.head_y);
+ if (blueCounter == 0) {
// if the snake is straight right
if ((snake.body_x - 1) == (snake.tail_x)) {
add_snake_body(snake.body_x - 1, snake.body_y);
@@ -902,19 +1028,22 @@
pc.printf("i: %d\n", i);
}
}
+ }
if (nextHead->type == SNOWFLAKE) {
- wait(5);
+ slowflakeCounter = 20;
map_erase(snake.head_x, snake.head_y);
- add_nothing(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x + 1, snake.head_y);
}
if (nextHead->type == SWORD) {
- if (lives == 0) {
+ if (lives == 0 && shieldCounter == 0) {
draw_game(GAME_OVER);
}
else {
- lives--;
+ if (shieldCounter == 0) {
+ lives--;
+ }
}
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x + 1, snake.head_y);
@@ -937,21 +1066,42 @@
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x + 1, snake.head_y);
}
+
+ if (nextHead->type == REDPOTION) {
+ redCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x + 1, snake.head_y);
+ }
+
+ if (nextHead->type == BLUEPOTION) {
+ blueCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x + 1, snake.head_y);
+ }
+
break;
case GO_LEFT:
nextHead = get_west(snake.head_x, snake.head_y);
pc.printf("GO LEFT\n");
- if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD) {
+ if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD && nextHead->type != SNOWFLAKE && nextHead->type != BLUEPOTION && nextHead->type != REDPOTION) {
pc.printf("Before:\n");
pc.printf("head_x: %d, head_y: %d\n", snake.head_x, snake.head_y);
pc.printf("body_x: %d, body_y: %d\n", snake.body_x, snake.body_y);
pc.printf("tail_x: %d, tail_y: %d\n", snake.tail_x, snake.tail_y);
+ pc.printf("reverseCounter: %d\n\n", reverseCounter);
+ pc.printf("speedCounter: %d\n\n", speedCounter);
+ pc.printf("shieldCounter: %d\n\n", shieldCounter);
+ pc.printf("slowflakeCounter: %d", slowflakeCounter);
+ pc.printf("blueCounter: %d", blueCounter);
+ pc.printf("redCounter: %d", redCounter);
if (reverseCounter == 0) {
go_left2();
}
if (reverseCounter <= 20 && reverseCounter != 0) {
- go_right2();
+ go_right2();
+ pc.printf("reverseCounter: %d", reverseCounter);
+ reverseCounter--;
}
//draw_snake_head(snake.head_pi, snake.head_pj);
//draw_snake_body(snake.body_pi, snake.body_pj);
@@ -964,6 +1114,12 @@
if (shieldCounter <= 15 && shieldCounter != 0) {
shieldCounter--;
}
+ if (blueCounter <= 20 && blueCounter != 0) {
+ blueCounter--;
+ }
+ if (redCounter <= 20 && redCounter != 0) {
+ redCounter--;
+ }
}
if (!nextHead->walkable && invincibility == false) {
@@ -984,9 +1140,14 @@
}
if (nextHead->type == GOODIE) {
+ if (redCounter == 0) {
score++;
+ }
+
map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y); // eat the goodie
+ if (blueCounter == 0) {
if ((snake.body_x + 1) == (snake.tail_x)) {
add_nothing(snake.head_x - 1, snake.head_y); // eat the goodie
add_snake_body(snake.body_x + 1, snake.body_y);
@@ -1005,7 +1166,6 @@
add_snake_tail(snake.tail_x, snake.tail_y + 1);
}
-
// this places a new body coordinate before the main body, this is go right function
for (int i = 0; i < SNAKE_MAX_LENGTH; i++) {
if (snake.locations[i].x == 0 && snake.locations[i].y == 0) {
@@ -1051,19 +1211,23 @@
pc.printf("i: %d\n", i);
}
}
+ }
+
if (nextHead->type == SNOWFLAKE) {
- wait(5);
+ slowflakeCounter = 20;
map_erase(snake.head_x, snake.head_y);
- add_nothing(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y);
}
- if (nextHead->type == SWORD) {
+ if (nextHead->type == SWORD && shieldCounter == 0) {
if (lives == 0) {
draw_game(GAME_OVER);
}
else {
- lives--;
+ if (shieldCounter == 0) {
+ lives--;
+ }
}
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x-1, snake.head_y);
@@ -1087,23 +1251,42 @@
add_nothing(snake.head_x - 1, snake.head_y);
}
+ if (nextHead->type == REDPOTION) {
+ redCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y);
+ }
+
+ if (nextHead->type == BLUEPOTION) {
+ blueCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y);
+ }
break;
case GO_UP:
nextHead = get_north(snake.head_x, snake.head_y);
pc.printf("GO UP\n");
- if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD) {
+ if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD && nextHead->type != SNOWFLAKE && nextHead->type != BLUEPOTION && nextHead->type != REDPOTION) {
pc.printf("Before:\n");
pc.printf("head_x: %d, head_y: %d\n", snake.head_x, snake.head_y);
pc.printf("body_x: %d, body_y: %d\n", snake.body_x, snake.body_y);
pc.printf("tail_x: %d, tail_y: %d\n", snake.tail_x, snake.tail_y);
+ pc.printf("reverseCounter: %d\n\n", reverseCounter);
+ pc.printf("speedCounter: %d\n\n", speedCounter);
+ pc.printf("shieldCounter: %d\n\n", shieldCounter);
+ pc.printf("slowflakeCounter: %d", slowflakeCounter);
+ pc.printf("blueCounter: %d", blueCounter);
+ pc.printf("redCounter: %d", redCounter);
// reverse direction
if (reverseCounter == 0) {
go_up2();
}
if (reverseCounter <= 20 && reverseCounter != 0) {
go_down2();
+ pc.printf("reverseCounter: %d", reverseCounter);
+ reverseCounter--;
}
//draw_snake_head(snake.head_pi, snake.head_pj);
//draw_snake_body(snake.body_pi, snake.body_pj);
@@ -1116,6 +1299,12 @@
if (shieldCounter <= 15 && shieldCounter != 0) {
shieldCounter--;
}
+ if (blueCounter <= 20 && blueCounter != 0) {
+ blueCounter--;
+ }
+ if (redCounter <= 20 && redCounter != 0) {
+ redCounter--;
+ }
}
if (!nextHead->walkable && invincibility == false) {
@@ -1136,10 +1325,15 @@
}
if (nextHead->type == GOODIE) {
+
+ if (redCounter == 0) {
score++;
+ }
+
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y - 1); // eat the goodie
+ if (blueCounter == 0) {
if ((snake.body_x - 1) == snake.tail_x) {
add_snake_body(snake.body_x - 1, snake.body_y);
add_snake_tail(snake.tail_x - 1, snake.tail_y);
@@ -1155,6 +1349,7 @@
add_snake_tail(snake.tail_x, snake.tail_y + 1);
}
+
// this places a new body coordinate before the main body, this is go right function
for (int i = 0; i < SNAKE_MAX_LENGTH; i++) {
if (snake.locations[i].x == 0 && snake.locations[i].y == 0) {
@@ -1204,19 +1399,22 @@
pc.printf("i: %d\n", i);
}
}
+ }
if (nextHead->type == SNOWFLAKE) {
- wait(5);
+ slowflakeCounter = 20;
map_erase(snake.head_x, snake.head_y);
- add_nothing(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y);
}
- if (nextHead->type == SWORD) {
+ if (nextHead->type == SWORD && shieldCounter == 0) {
if (lives == 0) {
draw_game(GAME_OVER);
}
else {
- lives--;
+ if (shieldCounter == 0) {
+ lives--;
+ }
}
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y);
@@ -1234,28 +1432,46 @@
add_nothing(snake.head_x, snake.head_y - 1);
}
- if (nextHead->type == LIGHTSPEED) {
+ if (nextHead->type == SHIELD) {
shieldCounter = 15;
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y - 1);
}
-
+
+ if (nextHead->type == BLUEPOTION) {
+ blueCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x, snake.head_y - 1);
+ }
+ if (nextHead->type == REDPOTION) {
+ redCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x, snake.head_y - 1);
+ }
break;
case GO_DOWN:
nextHead = get_south(snake.head_x, snake.head_y);
pc.printf("GO DOWN\n");
- if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD) {
+ if (nextHead->walkable && nextHead->type != LIFE && nextHead->type != GOODIE && nextHead->type != SWORD && nextHead->type != REVERSE && nextHead->type != LIGHTSPEED && nextHead->type != SHIELD && nextHead->type != SNOWFLAKE && nextHead->type != BLUEPOTION && nextHead->type != REDPOTION) {
pc.printf("Before:\n");
pc.printf("head_x: %d, head_y: %d\n", snake.head_x, snake.head_y);
pc.printf("body_x: %d, body_y: %d\n", snake.body_x, snake.body_y);
pc.printf("tail_x: %d, tail_y: %d\n", snake.tail_x, snake.tail_y);
+ pc.printf("reverseCounter: %d\n\n", reverseCounter);
+ pc.printf("speedCounter: %d\n\n", speedCounter);
+ pc.printf("shieldCounter: %d\n\n", shieldCounter);
+ pc.printf("slowflakeCounter: %d", slowflakeCounter);
+ pc.printf("blueCounter: %d", blueCounter);
+ pc.printf("redCounter: %d", redCounter);
if (reverseCounter == 0) {
go_down2();
}
if (reverseCounter <= 20 && reverseCounter !=0) {
go_up2();
+ pc.printf("reverseCounter: %d", reverseCounter);
+ reverseCounter--;
}
//draw_snake_head(snake.head_pi, snake.head_pj);
//draw_snake_body(snake.body_pi, snake.body_pj);
@@ -1268,6 +1484,12 @@
if (shieldCounter <= 15 && shieldCounter != 0) {
shieldCounter--;
}
+ if (blueCounter <= 20 && blueCounter != 0) {
+ blueCounter--;
+ }
+ if (redCounter <= 20 && redCounter != 0) {
+ redCounter--;
+ }
}
if (!nextHead->walkable && invincibility == false) {
@@ -1288,10 +1510,15 @@
}
if (nextHead->type == GOODIE) {
+
+ if (redCounter == 0) {
score++;
+ }
+
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y + 1); // eat the goodie
+ if (blueCounter == 0) {
// if the tail is to the left of the body
if ((snake.body_x - 1) == snake.tail_x) {
add_snake_body(snake.body_x - 1, snake.body_y);
@@ -1358,20 +1585,23 @@
}
pc.printf("i: %d\n", i);
}
- }
+ }
+ }
if (nextHead->type == SNOWFLAKE) {
- wait(5);
+ slowflakeCounter = 20;
map_erase(snake.head_x, snake.head_y);
- add_nothing(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x - 1, snake.head_y);
}
- if (nextHead->type == SWORD) {
+ if (nextHead->type == SWORD && shieldCounter == 0) {
if (lives == 0) {
draw_game(GAME_OVER);
}
else {
- lives--;
+ if (shieldCounter == 0) {
+ lives--;
+ }
}
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y+1);
@@ -1389,12 +1619,24 @@
add_nothing(snake.head_x, snake.head_y + 1);
}
- if (nextHead->type == LIGHTSPEED) {
+ if (nextHead->type == SHIELD) {
shieldCounter = 15;
map_erase(snake.head_x, snake.head_y);
add_nothing(snake.head_x, snake.head_y + 1);
}
+ if (nextHead->type == REDPOTION) {
+ redCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x, snake.head_y + 1);
+ }
+
+ if (nextHead->type == BLUEPOTION) {
+ blueCounter = 20;
+ map_erase(snake.head_x, snake.head_y);
+ add_nothing(snake.head_x, snake.head_y + 1);
+ }
+
break;
case HAX:
@@ -1419,7 +1661,6 @@
*/
int main()
{
- time_t t;
// First things first: initialize hardware
ASSERT_P(hardware_init() == ERROR_NONE, "Hardware init failed!");
@@ -1427,7 +1668,7 @@
//title_page();
//helpful_items();
//harmful_items();
- //harmful_items2();
+ //additional_info();
// loading screen
//uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
@@ -1491,12 +1732,35 @@
}
int main2() {
+ // First things first: initialize hardware
+ ASSERT_P(hardware_init() == ERROR_NONE, "Hardware init failed!");
+
+ //start_game();
+ //title_page();
+ //helpful_items();
+ //harmful_items();
+ //additional_info();
+
+ // loading screen
+ //uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
+ //uLCD.textbackground_color(BLACK);
+ //uLCD.color(0xFFFFFF);
+ //uLCD.locate(4,7);
+ //uLCD.printf("GOOD LUCK!");
+ //uLCD.locate(4,8);
+ //uLCD.printf("Loading...");
+ //wait(4);
//uLCD.filled_rectangle(0, 0, 255, 255, BLACK);
- //snake_init(&snake);
+ snake_init(&snake);
// 0. Initialize the maps -- implement this function:
- //maps_init();
- //init_main_map();
+ maps_init();
+
+
+
+ init_main_map();
+ //init_map_2();
+
// Initialize game state
set_active_map(0);
@@ -1536,7 +1800,7 @@
// NOTE: Text is 8 pixels tall
if (dt < 100) wait_ms(100 - dt);
}
-
+
}
// Plays a wavfile