Dependencies:   mbed

Committer:
sdlashmar
Date:
Fri May 08 08:40:29 2020 +0000
Revision:
4:c5addc5475d3
Parent:
3:36f9e3a75905
Child:
5:256e5e0b6cd7
snake class rev 2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:b7f1f47bb26a 1 /*
eencae 0:b7f1f47bb26a 2 ELEC2645 Embedded Systems Project
eencae 0:b7f1f47bb26a 3 School of Electronic & Electrical Engineering
eencae 0:b7f1f47bb26a 4 University of Leeds
eencae 0:b7f1f47bb26a 5 2019/20
eencae 0:b7f1f47bb26a 6
sdlashmar 1:5aba5e5a748b 7 Name:Samuel Lashmar
sdlashmar 1:5aba5e5a748b 8 Username:el17sdl
sdlashmar 1:5aba5e5a748b 9 Student ID Number:201170334
sdlashmar 1:5aba5e5a748b 10 Date:04/03/20
eencae 0:b7f1f47bb26a 11 */
eencae 0:b7f1f47bb26a 12
eencae 0:b7f1f47bb26a 13 // includes
eencae 0:b7f1f47bb26a 14 #include "mbed.h"
eencae 0:b7f1f47bb26a 15 #include "Gamepad.h"
eencae 0:b7f1f47bb26a 16 #include "N5110.h"
sdlashmar 3:36f9e3a75905 17 #include "Snake.h"
eencae 0:b7f1f47bb26a 18
eencae 0:b7f1f47bb26a 19
sdlashmar 4:c5addc5475d3 20
eencae 0:b7f1f47bb26a 21 // objects
eencae 0:b7f1f47bb26a 22 Gamepad pad;
eencae 0:b7f1f47bb26a 23 N5110 lcd;
sdlashmar 2:6792f99c3c0d 24 BusIn input(PTC5, PTC9, PTC7);
sdlashmar 3:36f9e3a75905 25 Snake snake;
sdlashmar 2:6792f99c3c0d 26
sdlashmar 2:6792f99c3c0d 27 void welcome();
sdlashmar 2:6792f99c3c0d 28
eencae 0:b7f1f47bb26a 29
eencae 0:b7f1f47bb26a 30 int main()
eencae 0:b7f1f47bb26a 31 {
eencae 0:b7f1f47bb26a 32
sdlashmar 2:6792f99c3c0d 33 lcd.init();
sdlashmar 4:c5addc5475d3 34 welcome();
sdlashmar 4:c5addc5475d3 35 pad.init(); //display welcome age on start up
sdlashmar 2:6792f99c3c0d 36 input.mode(PullUp);
sdlashmar 2:6792f99c3c0d 37 while(1) {
sdlashmar 4:c5addc5475d3 38 /*Direction _d = pad.get_direction();
sdlashmar 4:c5addc5475d3 39 if (_d == N) {
sdlashmar 4:c5addc5475d3 40 printf("North\n");
sdlashmar 4:c5addc5475d3 41 } else if (_d == NE) {
sdlashmar 4:c5addc5475d3 42 printf("North East\n");
sdlashmar 4:c5addc5475d3 43 } else if (_d == E) {
sdlashmar 4:c5addc5475d3 44 printf("East\n");
sdlashmar 4:c5addc5475d3 45 } else if (_d == SE) {
sdlashmar 4:c5addc5475d3 46 printf("South East\n");
sdlashmar 4:c5addc5475d3 47 } else if (_d == S) {
sdlashmar 4:c5addc5475d3 48 printf("South\n");
sdlashmar 4:c5addc5475d3 49 } else if (_d == SW) {
sdlashmar 4:c5addc5475d3 50 printf("South West\n");
sdlashmar 4:c5addc5475d3 51 } else if (_d == W) {
sdlashmar 4:c5addc5475d3 52 printf("West\n");
sdlashmar 4:c5addc5475d3 53 } else if (_d == NW) {
sdlashmar 4:c5addc5475d3 54 printf("North West\n");
sdlashmar 4:c5addc5475d3 55 } else {
sdlashmar 4:c5addc5475d3 56 printf("Centre\n");
sdlashmar 4:c5addc5475d3 57 };*/
sdlashmar 2:6792f99c3c0d 58 int state = input; //creates an integer number from button input
sdlashmar 4:c5addc5475d3 59 printf("state: %d\n", state);
sdlashmar 2:6792f99c3c0d 60 //switch state based on button presses
sdlashmar 2:6792f99c3c0d 61 switch(state) {
sdlashmar 2:6792f99c3c0d 62 case 3:
sdlashmar 4:c5addc5475d3 63
sdlashmar 4:c5addc5475d3 64 snake.init(1,3);
sdlashmar 4:c5addc5475d3 65
sdlashmar 4:c5addc5475d3 66 while(1) {
sdlashmar 4:c5addc5475d3 67 lcd.clear();
sdlashmar 4:c5addc5475d3 68 snake.draw(lcd);
sdlashmar 4:c5addc5475d3 69 Direction _d = pad.get_direction();
sdlashmar 4:c5addc5475d3 70 //printf("Stick direction: %s", d);
sdlashmar 4:c5addc5475d3 71 snake.change_direction(_d);
sdlashmar 4:c5addc5475d3 72 snake.update();
sdlashmar 4:c5addc5475d3 73 lcd.refresh();
sdlashmar 4:c5addc5475d3 74 wait(0.5);
sdlashmar 3:36f9e3a75905 75 }
sdlashmar 2:6792f99c3c0d 76 break;
sdlashmar 2:6792f99c3c0d 77 case 5:
sdlashmar 2:6792f99c3c0d 78 lcd.clear();
sdlashmar 2:6792f99c3c0d 79 lcd.printString("High Scores",0,3);
sdlashmar 2:6792f99c3c0d 80 lcd.refresh();
sdlashmar 2:6792f99c3c0d 81 break;
sdlashmar 2:6792f99c3c0d 82 case 6:
sdlashmar 2:6792f99c3c0d 83 lcd.clear();
sdlashmar 2:6792f99c3c0d 84 lcd.printString("How to play",0,3);
sdlashmar 2:6792f99c3c0d 85 lcd.refresh();
sdlashmar 2:6792f99c3c0d 86 break;
sdlashmar 2:6792f99c3c0d 87 }
sdlashmar 2:6792f99c3c0d 88 }
sdlashmar 2:6792f99c3c0d 89
eencae 0:b7f1f47bb26a 90 }
eencae 0:b7f1f47bb26a 91
sdlashmar 4:c5addc5475d3 92
sdlashmar 4:c5addc5475d3 93
sdlashmar 2:6792f99c3c0d 94 void welcome() {
sdlashmar 2:6792f99c3c0d 95 lcd.printString("SNAKE", 28, 0);
sdlashmar 2:6792f99c3c0d 96 lcd.printString("A.Play Game", 0, 1);
sdlashmar 2:6792f99c3c0d 97 lcd.printString("B.Highscores", 0, 2);
sdlashmar 2:6792f99c3c0d 98 lcd.printString("X.How to Play", 0, 3);
sdlashmar 2:6792f99c3c0d 99 lcd.refresh();
sdlashmar 2:6792f99c3c0d 100 }
sdlashmar 2:6792f99c3c0d 101