Faizan and Pages fun little game

Dependencies:   4DGL-uLCD-SE mbed SDFileSystem wave_player

Committer:
fkhan39
Date:
Sat Oct 29 19:35:46 2016 +0000
Revision:
1:9eeeb0d8f036
Parent:
0:de9ffb858be9
Child:
2:4c5f409d6bb8
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fkhan39 0:de9ffb858be9 1 #include "mbed.h"
fkhan39 0:de9ffb858be9 2 #include "uLCD_4DGL.h"
fkhan39 0:de9ffb858be9 3 #include "food.h"
fkhan39 1:9eeeb0d8f036 4 #include <algorithm>
fkhan39 1:9eeeb0d8f036 5
fkhan39 0:de9ffb858be9 6 #define BREAD 1
fkhan39 0:de9ffb858be9 7 #define LETTUCE 2
fkhan39 0:de9ffb858be9 8 #define CHEESE 3
fkhan39 0:de9ffb858be9 9 #define TOMATO 4
fkhan39 0:de9ffb858be9 10 #define BADLETTUCE 5
fkhan39 0:de9ffb858be9 11 #define BADCHEESE 6
fkhan39 0:de9ffb858be9 12 #define BADTOMATO 7
fkhan39 0:de9ffb858be9 13
fkhan39 1:9eeeb0d8f036 14 #define MAX(i) std::max(i,0)
fkhan39 1:9eeeb0d8f036 15 #define MIN(i) std::min(i,128)
fkhan39 0:de9ffb858be9 16
fkhan39 1:9eeeb0d8f036 17 #define MAROON 0x8b0000;
fkhan39 1:9eeeb0d8f036 18 #define DARKBROWN 0x654321;
fkhan39 1:9eeeb0d8f036 19
fkhan39 1:9eeeb0d8f036 20 Food::Food(int type, int location, uLCD_4DGL * uLCD) {
fkhan39 1:9eeeb0d8f036 21 lcd = uLCD;
fkhan39 0:de9ffb858be9 22 typeOfFood = type;
fkhan39 0:de9ffb858be9 23 isBad = (type == BADLETTUCE
fkhan39 0:de9ffb858be9 24 || type == BADTOMATO || type == BADCHEESE) ? true : false;
fkhan39 1:9eeeb0d8f036 25 x = location;
fkhan39 1:9eeeb0d8f036 26 y = -3;
fkhan39 0:de9ffb858be9 27 }
fkhan39 0:de9ffb858be9 28
fkhan39 0:de9ffb858be9 29 void Food::draw() {
fkhan39 0:de9ffb858be9 30 switch (typeOfFood) {
fkhan39 1:9eeeb0d8f036 31 case LETTUCE: drawLettuce(GREEN);
fkhan39 1:9eeeb0d8f036 32 break;
fkhan39 1:9eeeb0d8f036 33 case TOMATO: drawTomato(RED):
fkhan39 1:9eeeb0d8f036 34 break;
fkhan39 1:9eeeb0d8f036 35 case CHEESE: drawCheese(YELLOW);
fkhan39 1:9eeeb0d8f036 36 break;
fkhan39 1:9eeeb0d8f036 37 case BREAD: drawBread();
fkhan39 0:de9ffb858be9 38 break;
fkhan39 1:9eeeb0d8f036 39 case BADLETTUCE: drawLettuce(PURPLE);
fkhan39 1:9eeeb0d8f036 40 break;
fkhan39 1:9eeeb0d8f036 41 case BADTOMATO: drawTomato(PURPLE);
fkhan39 1:9eeeb0d8f036 42 break;
fkhan39 1:9eeeb0d8f036 43 case BADCHEESE: drawCheese(PURPLE);
fkhan39 1:9eeeb0d8f036 44 break;
fkhan39 1:9eeeb0d8f036 45 case
fkhan39 1:9eeeb0d8f036 46 default:
fkhan39 0:de9ffb858be9 47 }
fkhan39 0:de9ffb858be9 48 }
fkhan39 0:de9ffb858be9 49
fkhan39 1:9eeeb0d8f036 50 void Food::drawLettuce(int color) {
fkhan39 1:9eeeb0d8f036 51 lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), color);
fkhan39 1:9eeeb0d8f036 52 lcd.pixel(x + 1, y, BLACK);
fkhan39 1:9eeeb0d8f036 53 lcd.pixel(x + 3, y, BLACK);
fkhan39 1:9eeeb0d8f036 54 lcd.pixel(x + 5, y, BLACK);
fkhan39 1:9eeeb0d8f036 55 lcd.pixel(x, y + 3, BLACK);
fkhan39 1:9eeeb0d8f036 56 lcd.pixel(x + 6, y + 3, BLACK);
fkhan39 1:9eeeb0d8f036 57 lcd.pixel(x + 7, y + 3, BLACK);
fkhan39 1:9eeeb0d8f036 58 }
fkhan39 1:9eeeb0d8f036 59
fkhan39 1:9eeeb0d8f036 60 void Food::drawTomato(int color) {
fkhan39 1:9eeeb0d8f036 61 lcd.filled_rectangle(MAX(x + 1), MAX(y), MIN(x + 2), MIN(y + 7), color);
fkhan39 1:9eeeb0d8f036 62 lcd.line(x + 2, y, x + 5, y, MAROON);
fkhan39 1:9eeeb0d8f036 63 lcd.line(x + 2, y + 3, x + 5, y + 3, color);
fkhan39 1:9eeeb0d8f036 64 lcd.line(x, y + 1, x + 1, y + 1, MAROON);
fkhan39 1:9eeeb0d8f036 65 lcd.line(x, y + 6, x + 1, y + 7, MAROON);
fkhan39 1:9eeeb0d8f036 66 }
fkhan39 1:9eeeb0d8f036 67
fkhan39 1:9eeeb0d8f036 68 void Food::drawCheese(int color) {
fkhan39 1:9eeeb0d8f036 69 lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), color);
fkhan39 1:9eeeb0d8f036 70 lcd.pixel(x, y + 7, WHITE);
fkhan39 1:9eeeb0d8f036 71 lcd.pixel(x + 1, y + 5, WHITE);
fkhan39 1:9eeeb0d8f036 72 lcd.filled_rectangle(x + 2, y + 2, x + 3, y + 3, WHITE);
fkhan39 1:9eeeb0d8f036 73 }
fkhan39 1:9eeeb0d8f036 74
fkhan39 1:9eeeb0d8f036 75 void Food::drawBread() {
fkhan39 1:9eeeb0d8f036 76 lcd.filled_rectangle(MAX(x), MAX(y), MIN(x + 7), MIN(y + 3), BROWN);
fkhan39 1:9eeeb0d8f036 77 lcd.pixel(x, y, BLACK);
fkhan39 1:9eeeb0d8f036 78 lcd.pixel(x, y + 3, BLACK);
fkhan39 1:9eeeb0d8f036 79 lcd.pixel(x, y + 1, DARKBROWN);
fkhan39 1:9eeeb0d8f036 80 lcd.pixel(x, y + 2, DARKBROWN);
fkhan39 1:9eeeb0d8f036 81 }