Jahanzeb Khan / Mbed 2 deprecated ELEC2645_Project_el19jak

Dependencies:   mbed

Committer:
jahanzebkhan
Date:
Fri Jun 05 22:51:49 2020 +0000
Revision:
2:430dcf420840
Final Submission. I have read and agreed with Statement of Academic integrity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jahanzebkhan 2:430dcf420840 1 #include "body.h"
jahanzebkhan 2:430dcf420840 2
jahanzebkhan 2:430dcf420840 3 Body::Body()
jahanzebkhan 2:430dcf420840 4 {
jahanzebkhan 2:430dcf420840 5 }
jahanzebkhan 2:430dcf420840 6 Body::~Body()
jahanzebkhan 2:430dcf420840 7 {
jahanzebkhan 2:430dcf420840 8 }
jahanzebkhan 2:430dcf420840 9
jahanzebkhan 2:430dcf420840 10 void Body::init()
jahanzebkhan 2:430dcf420840 11 {
jahanzebkhan 2:430dcf420840 12 sx0 = 12;
jahanzebkhan 2:430dcf420840 13 sx1 = 13;
jahanzebkhan 2:430dcf420840 14 sx2 = 14;
jahanzebkhan 2:430dcf420840 15 sx3 = 15;
jahanzebkhan 2:430dcf420840 16 sx4 = 16;
jahanzebkhan 2:430dcf420840 17 sx5 = 17;
jahanzebkhan 2:430dcf420840 18 sx6 = 18;
jahanzebkhan 2:430dcf420840 19 sx8 = 19;
jahanzebkhan 2:430dcf420840 20 sx9 = 20;
jahanzebkhan 2:430dcf420840 21
jahanzebkhan 2:430dcf420840 22 sy0 = 6;
jahanzebkhan 2:430dcf420840 23 sy1 = 6;
jahanzebkhan 2:430dcf420840 24 sy2 = 6;
jahanzebkhan 2:430dcf420840 25 sy3 = 6;
jahanzebkhan 2:430dcf420840 26 sy4 = 6;
jahanzebkhan 2:430dcf420840 27 sy5 = 6;
jahanzebkhan 2:430dcf420840 28 sy6 = 6;
jahanzebkhan 2:430dcf420840 29 sy7 = 6;
jahanzebkhan 2:430dcf420840 30 sy8 = 6;
jahanzebkhan 2:430dcf420840 31 sy9 = 6;
jahanzebkhan 2:430dcf420840 32
jahanzebkhan 2:430dcf420840 33 score = 0;
jahanzebkhan 2:430dcf420840 34 endgame = false;
jahanzebkhan 2:430dcf420840 35 input_check = Button_right;
jahanzebkhan 2:430dcf420840 36 }
jahanzebkhan 2:430dcf420840 37
jahanzebkhan 2:430dcf420840 38 void Body::game_end(N5110 &lcd){
jahanzebkhan 2:430dcf420840 39 if (21 < sx0 < 63){/**If snake hits vertical line*/
jahanzebkhan 2:430dcf420840 40 if (sy0 == 24){
jahanzebkhan 2:430dcf420840 41 endgame = true;
jahanzebkhan 2:430dcf420840 42 }
jahanzebkhan 2:430dcf420840 43 }
jahanzebkhan 2:430dcf420840 44 if (12 < sy0 < 36){/**if snake hits horizontal line*/
jahanzebkhan 2:430dcf420840 45 if (sx0 == 42){
jahanzebkhan 2:430dcf420840 46 endgame = true;
jahanzebkhan 2:430dcf420840 47 }
jahanzebkhan 2:430dcf420840 48 }
jahanzebkhan 2:430dcf420840 49 if ((sx0 == sx1 && sy0 == sy1) || (sx0 == sx2 && sy0 == sy2) || (sx0 == sx3 && sy0 == sy3) || (sx0 == sx4 && sy0 == sy4) || (sx0 == sx5 && sy0 == sy5) || (sx0 == sx6 && sy0 == sy6) || (sx0 == sx7 && sy0 == sy7) || (sx0 == sx8 && sy0 == sy8) || (sx0 == sx9 && sy0 == sy9))
jahanzebkhan 2:430dcf420840 50 {
jahanzebkhan 2:430dcf420840 51 endgame = true;
jahanzebkhan 2:430dcf420840 52 }
jahanzebkhan 2:430dcf420840 53 }
jahanzebkhan 2:430dcf420840 54
jahanzebkhan 2:430dcf420840 55 void Body::visual(N5110 &lcd, Gamepad &pad, Food &food)
jahanzebkhan 2:430dcf420840 56 {
jahanzebkhan 2:430dcf420840 57 lcd.clear();
jahanzebkhan 2:430dcf420840 58
jahanzebkhan 2:430dcf420840 59 char buffer[12];
jahanzebkhan 2:430dcf420840 60 sprintf(buffer,"Score = %2d", score);
jahanzebkhan 2:430dcf420840 61 lcd.printString(buffer,0,1);
jahanzebkhan 2:430dcf420840 62
jahanzebkhan 2:430dcf420840 63 lcd.setPixel(food.fo_x, food.fo_y, true);
jahanzebkhan 2:430dcf420840 64
jahanzebkhan 2:430dcf420840 65 lcd.drawLine(21,24,63,24,1);
jahanzebkhan 2:430dcf420840 66 lcd.drawLine(42,12,42,36,1);
jahanzebkhan 2:430dcf420840 67
jahanzebkhan 2:430dcf420840 68 lcd.setPixel(sx0, sy0, true);
jahanzebkhan 2:430dcf420840 69 lcd.setPixel(sx1, sy1, true);
jahanzebkhan 2:430dcf420840 70 lcd.setPixel(sx2, sy2, true);
jahanzebkhan 2:430dcf420840 71 lcd.setPixel(sx3, sy3, true);
jahanzebkhan 2:430dcf420840 72 lcd.setPixel(sx4, sy4, true);
jahanzebkhan 2:430dcf420840 73 lcd.setPixel(sx5, sy5, true);
jahanzebkhan 2:430dcf420840 74 lcd.setPixel(sx6, sy6, true);
jahanzebkhan 2:430dcf420840 75 lcd.setPixel(sx7, sy7, true);
jahanzebkhan 2:430dcf420840 76 lcd.setPixel(sx8, sy8, true);
jahanzebkhan 2:430dcf420840 77 lcd.setPixel(sx9, sy9, true);
jahanzebkhan 2:430dcf420840 78
jahanzebkhan 2:430dcf420840 79 if (endgame == true){
jahanzebkhan 2:430dcf420840 80 lcd.clear();
jahanzebkhan 2:430dcf420840 81 pad.tone(1500.0,1.0);
jahanzebkhan 2:430dcf420840 82
jahanzebkhan 2:430dcf420840 83 lcd.drawRect(10,5,64,38,FILL_TRANSPARENT);
jahanzebkhan 2:430dcf420840 84 lcd.printString("YOU DIED", 21, 2);
jahanzebkhan 2:430dcf420840 85 char buffer2[12];
jahanzebkhan 2:430dcf420840 86 sprintf(buffer2,"you got %2d", score);
jahanzebkhan 2:430dcf420840 87 }
jahanzebkhan 2:430dcf420840 88
jahanzebkhan 2:430dcf420840 89 lcd.refresh();
jahanzebkhan 2:430dcf420840 90 }
jahanzebkhan 2:430dcf420840 91
jahanzebkhan 2:430dcf420840 92 void Body::user_input(Gamepad &pad)
jahanzebkhan 2:430dcf420840 93 {
jahanzebkhan 2:430dcf420840 94 Input input = input_check;
jahanzebkhan 2:430dcf420840 95
jahanzebkhan 2:430dcf420840 96 if(input != Button_left){
jahanzebkhan 2:430dcf420840 97 if(pad.A_pressed()){
jahanzebkhan 2:430dcf420840 98 input_check = Button_right;
jahanzebkhan 2:430dcf420840 99 }
jahanzebkhan 2:430dcf420840 100 }
jahanzebkhan 2:430dcf420840 101 if(input != Button_right){
jahanzebkhan 2:430dcf420840 102 if(pad.Y_pressed()){
jahanzebkhan 2:430dcf420840 103 input_check = Button_left;
jahanzebkhan 2:430dcf420840 104 }
jahanzebkhan 2:430dcf420840 105 }
jahanzebkhan 2:430dcf420840 106 if(input != Button_top){
jahanzebkhan 2:430dcf420840 107 if(pad.B_pressed()){
jahanzebkhan 2:430dcf420840 108 input_check = Button_bottom;
jahanzebkhan 2:430dcf420840 109 }
jahanzebkhan 2:430dcf420840 110 }
jahanzebkhan 2:430dcf420840 111 if(input != Button_bottom){
jahanzebkhan 2:430dcf420840 112 if(pad.X_pressed()){
jahanzebkhan 2:430dcf420840 113 input_check = Button_top;
jahanzebkhan 2:430dcf420840 114 }
jahanzebkhan 2:430dcf420840 115 }
jahanzebkhan 2:430dcf420840 116 else{
jahanzebkhan 2:430dcf420840 117 input_check = input_check;
jahanzebkhan 2:430dcf420840 118 }
jahanzebkhan 2:430dcf420840 119 }
jahanzebkhan 2:430dcf420840 120
jahanzebkhan 2:430dcf420840 121 bool Body::endgame_check()
jahanzebkhan 2:430dcf420840 122 {
jahanzebkhan 2:430dcf420840 123 return endgame;
jahanzebkhan 2:430dcf420840 124 }
jahanzebkhan 2:430dcf420840 125
jahanzebkhan 2:430dcf420840 126 void Body::food_eaten(N5110 &lcd, Gamepad &pad, Food &food)
jahanzebkhan 2:430dcf420840 127 {
jahanzebkhan 2:430dcf420840 128 if ((sx0 == food.fo_x) && (sy0 == food.fo_y))
jahanzebkhan 2:430dcf420840 129 {
jahanzebkhan 2:430dcf420840 130 score = score + 1;
jahanzebkhan 2:430dcf420840 131 food.chng_food = true;
jahanzebkhan 2:430dcf420840 132 pad.led(1,1);
jahanzebkhan 2:430dcf420840 133 wait(0.2);
jahanzebkhan 2:430dcf420840 134 pad.led(2,1);
jahanzebkhan 2:430dcf420840 135 wait(0.2);
jahanzebkhan 2:430dcf420840 136 pad.led(3,1);
jahanzebkhan 2:430dcf420840 137 wait(0.2);
jahanzebkhan 2:430dcf420840 138 pad.led(4,1);
jahanzebkhan 2:430dcf420840 139 wait(0.2);
jahanzebkhan 2:430dcf420840 140 pad.led(5,1);
jahanzebkhan 2:430dcf420840 141 wait(0.2);
jahanzebkhan 2:430dcf420840 142 pad.led(6,1);
jahanzebkhan 2:430dcf420840 143 wait(0.2);
jahanzebkhan 2:430dcf420840 144 pad.led(1,0);
jahanzebkhan 2:430dcf420840 145 wait(0.2);
jahanzebkhan 2:430dcf420840 146 pad.led(2,0);
jahanzebkhan 2:430dcf420840 147 wait(0.2);
jahanzebkhan 2:430dcf420840 148 pad.led(3,0);
jahanzebkhan 2:430dcf420840 149 wait(0.2);
jahanzebkhan 2:430dcf420840 150 pad.led(4,0);
jahanzebkhan 2:430dcf420840 151 wait(0.2);
jahanzebkhan 2:430dcf420840 152 pad.led(5,0);
jahanzebkhan 2:430dcf420840 153 wait(0.2);
jahanzebkhan 2:430dcf420840 154 pad.led(6,0);
jahanzebkhan 2:430dcf420840 155 }
jahanzebkhan 2:430dcf420840 156 }
jahanzebkhan 2:430dcf420840 157
jahanzebkhan 2:430dcf420840 158 int Body::score_display()
jahanzebkhan 2:430dcf420840 159 {
jahanzebkhan 2:430dcf420840 160 return score;
jahanzebkhan 2:430dcf420840 161 }
jahanzebkhan 2:430dcf420840 162
jahanzebkhan 2:430dcf420840 163 void Body::movement(){
jahanzebkhan 2:430dcf420840 164 if (input_check == Button_top){
jahanzebkhan 2:430dcf420840 165 sx9 = sx8;
jahanzebkhan 2:430dcf420840 166 sx8 = sx7;
jahanzebkhan 2:430dcf420840 167 sx7 = sx6;
jahanzebkhan 2:430dcf420840 168 sx6 = sx5;
jahanzebkhan 2:430dcf420840 169 sx5 = sx4;
jahanzebkhan 2:430dcf420840 170 sx4 = sx3;
jahanzebkhan 2:430dcf420840 171 sx3 = sx2;
jahanzebkhan 2:430dcf420840 172 sx2 = sx1;
jahanzebkhan 2:430dcf420840 173 sx1 = sx0;
jahanzebkhan 2:430dcf420840 174 sy9 = sy8;
jahanzebkhan 2:430dcf420840 175 sy8 = sy7;
jahanzebkhan 2:430dcf420840 176 sy7 = sy6;
jahanzebkhan 2:430dcf420840 177 sy6 = sy5;
jahanzebkhan 2:430dcf420840 178 sy5 = sy4;
jahanzebkhan 2:430dcf420840 179 sy4 = sy3;
jahanzebkhan 2:430dcf420840 180 sy2 = sy2;
jahanzebkhan 2:430dcf420840 181 sy2 = sy1;
jahanzebkhan 2:430dcf420840 182 sy1 = sy0;
jahanzebkhan 2:430dcf420840 183
jahanzebkhan 2:430dcf420840 184 sx0 = sx0;
jahanzebkhan 2:430dcf420840 185 sy0 = sy0 - 1;
jahanzebkhan 2:430dcf420840 186
jahanzebkhan 2:430dcf420840 187 }
jahanzebkhan 2:430dcf420840 188 if (input_check == Button_right){
jahanzebkhan 2:430dcf420840 189 sx9 = sx8;
jahanzebkhan 2:430dcf420840 190 sx8 = sx7;
jahanzebkhan 2:430dcf420840 191 sx7 = sx6;
jahanzebkhan 2:430dcf420840 192 sx6 = sx5;
jahanzebkhan 2:430dcf420840 193 sx5 = sx4;
jahanzebkhan 2:430dcf420840 194 sx4 = sx3;
jahanzebkhan 2:430dcf420840 195 sx3 = sx2;
jahanzebkhan 2:430dcf420840 196 sx2 = sx1;
jahanzebkhan 2:430dcf420840 197 sx1 = sx0;
jahanzebkhan 2:430dcf420840 198 sy9 = sy8;
jahanzebkhan 2:430dcf420840 199 sy8 = sy7;
jahanzebkhan 2:430dcf420840 200 sy7 = sy6;
jahanzebkhan 2:430dcf420840 201 sy6 = sy5;
jahanzebkhan 2:430dcf420840 202 sy5 = sy4;
jahanzebkhan 2:430dcf420840 203 sy4 = sy3;
jahanzebkhan 2:430dcf420840 204 sy2 = sy2;
jahanzebkhan 2:430dcf420840 205 sy2 = sy1;
jahanzebkhan 2:430dcf420840 206 sy1 = sy0;
jahanzebkhan 2:430dcf420840 207
jahanzebkhan 2:430dcf420840 208 sx0 = sx0 + 1;
jahanzebkhan 2:430dcf420840 209 sy0 = sy0;
jahanzebkhan 2:430dcf420840 210 }
jahanzebkhan 2:430dcf420840 211 if (input_check == Button_bottom){
jahanzebkhan 2:430dcf420840 212 sx9 = sx8;
jahanzebkhan 2:430dcf420840 213 sx8 = sx7;
jahanzebkhan 2:430dcf420840 214 sx7 = sx6;
jahanzebkhan 2:430dcf420840 215 sx6 = sx5;
jahanzebkhan 2:430dcf420840 216 sx5 = sx4;
jahanzebkhan 2:430dcf420840 217 sx4 = sx3;
jahanzebkhan 2:430dcf420840 218 sx3 = sx2;
jahanzebkhan 2:430dcf420840 219 sx2 = sx1;
jahanzebkhan 2:430dcf420840 220 sx1 = sx0;
jahanzebkhan 2:430dcf420840 221 sy9 = sy8;
jahanzebkhan 2:430dcf420840 222 sy8 = sy7;
jahanzebkhan 2:430dcf420840 223 sy7 = sy6;
jahanzebkhan 2:430dcf420840 224 sy6 = sy5;
jahanzebkhan 2:430dcf420840 225 sy5 = sy4;
jahanzebkhan 2:430dcf420840 226 sy4 = sy3;
jahanzebkhan 2:430dcf420840 227 sy2 = sy2;
jahanzebkhan 2:430dcf420840 228 sy2 = sy1;
jahanzebkhan 2:430dcf420840 229 sy1 = sy0;
jahanzebkhan 2:430dcf420840 230
jahanzebkhan 2:430dcf420840 231 sx0 = sx0 + 1;
jahanzebkhan 2:430dcf420840 232 sy0 = sy0;
jahanzebkhan 2:430dcf420840 233 }
jahanzebkhan 2:430dcf420840 234 if (input_check == Button_left){
jahanzebkhan 2:430dcf420840 235 sx9 = sx8;
jahanzebkhan 2:430dcf420840 236 sx8 = sx7;
jahanzebkhan 2:430dcf420840 237 sx7 = sx6;
jahanzebkhan 2:430dcf420840 238 sx6 = sx5;
jahanzebkhan 2:430dcf420840 239 sx5 = sx4;
jahanzebkhan 2:430dcf420840 240 sx4 = sx3;
jahanzebkhan 2:430dcf420840 241 sx3 = sx2;
jahanzebkhan 2:430dcf420840 242 sx2 = sx1;
jahanzebkhan 2:430dcf420840 243 sx1 = sx0;
jahanzebkhan 2:430dcf420840 244 sy9 = sy8;
jahanzebkhan 2:430dcf420840 245 sy8 = sy7;
jahanzebkhan 2:430dcf420840 246 sy7 = sy6;
jahanzebkhan 2:430dcf420840 247 sy6 = sy5;
jahanzebkhan 2:430dcf420840 248 sy5 = sy4;
jahanzebkhan 2:430dcf420840 249 sy4 = sy3;
jahanzebkhan 2:430dcf420840 250 sy2 = sy2;
jahanzebkhan 2:430dcf420840 251 sy2 = sy1;
jahanzebkhan 2:430dcf420840 252 sy1 = sy0;
jahanzebkhan 2:430dcf420840 253
jahanzebkhan 2:430dcf420840 254 sx0 = sx0 + 1;
jahanzebkhan 2:430dcf420840 255 sy0 = sy0;
jahanzebkhan 2:430dcf420840 256 }
jahanzebkhan 2:430dcf420840 257 if (sy0 == 0)
jahanzebkhan 2:430dcf420840 258 {
jahanzebkhan 2:430dcf420840 259 sy0 = 41;
jahanzebkhan 2:430dcf420840 260 }
jahanzebkhan 2:430dcf420840 261 if (sy0 == 42)
jahanzebkhan 2:430dcf420840 262 {
jahanzebkhan 2:430dcf420840 263 sy0 = 1;
jahanzebkhan 2:430dcf420840 264 }
jahanzebkhan 2:430dcf420840 265 if (sx0 == 0)
jahanzebkhan 2:430dcf420840 266 {
jahanzebkhan 2:430dcf420840 267 sy0 = 83;
jahanzebkhan 2:430dcf420840 268 }
jahanzebkhan 2:430dcf420840 269 if (sx0 == 84)
jahanzebkhan 2:430dcf420840 270 {
jahanzebkhan 2:430dcf420840 271 sy0 = 1;
jahanzebkhan 2:430dcf420840 272 }
jahanzebkhan 2:430dcf420840 273 }
jahanzebkhan 2:430dcf420840 274
jahanzebkhan 2:430dcf420840 275 void Body::trail_delete(N5110 &lcd)
jahanzebkhan 2:430dcf420840 276 {
jahanzebkhan 2:430dcf420840 277 lcd.setPixel(sx9,sy9,false);
jahanzebkhan 2:430dcf420840 278 }
jahanzebkhan 2:430dcf420840 279