Snake

Dependencies:   mbed wave_player 4DGL-uLCD-SE MMA8452

Committer:
congvu
Date:
Mon Nov 23 05:54:49 2020 +0000
Revision:
3:2fe73b263a9a
Parent:
2:4947d6a82971
ECE2035;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DCchico 2:4947d6a82971 1 // Copyright 2020 Georgia Tech. All rights reserved.
DCchico 2:4947d6a82971 2 // The materials provided by the instructor in this course are for
DCchico 2:4947d6a82971 3 // the use of the students currently enrolled in the course.
DCchico 2:4947d6a82971 4 // Copyrighted course materials may not be further disseminated.
DCchico 2:4947d6a82971 5 // This file must not be made publicly available anywhere.
DCchico 2:4947d6a82971 6
DCchico 1:10330bce85cb 7 #include "graphics.h"
DCchico 1:10330bce85cb 8
DCchico 1:10330bce85cb 9 #include "globals.h"
DCchico 1:10330bce85cb 10
congvu 3:2fe73b263a9a 11 #define YELLOW 0xFFFF00
congvu 3:2fe73b263a9a 12 #define BROWN 0xD2691E
congvu 3:2fe73b263a9a 13 #define DIRT BROWN
congvu 3:2fe73b263a9a 14
congvu 3:2fe73b263a9a 15 const char head[121] = {
congvu 3:2fe73b263a9a 16 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 17 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 18 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 19 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 20 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 21 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 22 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 23 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 24 'G','R','R','R','G','G','R','R','R','G','G',
congvu 3:2fe73b263a9a 25 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 26 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 27 };
congvu 3:2fe73b263a9a 28
congvu 3:2fe73b263a9a 29 const char tail[121] = {
congvu 3:2fe73b263a9a 30 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 31 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 32 'G','Y','Y','Y','G','G','G','Y','Y','Y','G',
congvu 3:2fe73b263a9a 33 'G','Y','Y','Y','G','G','G','Y','Y','Y','G',
congvu 3:2fe73b263a9a 34 'G','Y','Y','Y','G','G','G','Y','Y','Y','G',
congvu 3:2fe73b263a9a 35 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 36 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 37 'G','Y','Y','Y','G','G','Y','Y','Y','G','G',
congvu 3:2fe73b263a9a 38 'G','Y','Y','Y','G','G','Y','Y','Y','G','G',
congvu 3:2fe73b263a9a 39 'G','Y','Y','Y','G','G','Y','Y','Y','G','G',
congvu 3:2fe73b263a9a 40 'G','G','G','G','G','G','G','G','G','G','G',
congvu 3:2fe73b263a9a 41 };
congvu 3:2fe73b263a9a 42
DCchico 1:10330bce85cb 43 void draw_nothing(int u, int v)
DCchico 1:10330bce85cb 44 {
DCchico 1:10330bce85cb 45 uLCD.filled_rectangle(u, v, u+10, v+10, BLACK);
DCchico 1:10330bce85cb 46 }
DCchico 1:10330bce85cb 47
DCchico 1:10330bce85cb 48 void draw_img(int u, int v, const char* img)
DCchico 1:10330bce85cb 49 {
DCchico 1:10330bce85cb 50 int colors[11*11];
DCchico 1:10330bce85cb 51 for (int i = 0; i < 11*11; i++)
DCchico 1:10330bce85cb 52 {
DCchico 1:10330bce85cb 53 if (img[i] == 'R') colors[i] = RED;
DCchico 1:10330bce85cb 54 else if (img[i] == 'Y') colors[i] = 0xFFFF00; // Yellow
DCchico 1:10330bce85cb 55 else if (img[i] == 'G') colors[i] = GREEN;
DCchico 1:10330bce85cb 56 else if (img[i] == 'D') colors[i] = 0xD2691E; // "Dirt"
DCchico 1:10330bce85cb 57 else if (img[i] == '5') colors[i] = LGREY; // 50% grey
DCchico 1:10330bce85cb 58 else if (img[i] == '3') colors[i] = DGREY;
DCchico 1:10330bce85cb 59 else colors[i] = BLACK;
DCchico 1:10330bce85cb 60 }
DCchico 1:10330bce85cb 61 uLCD.BLIT(u, v, 11, 11, colors);
DCchico 1:10330bce85cb 62 wait_us(250); // Recovery time!
DCchico 1:10330bce85cb 63 }
DCchico 1:10330bce85cb 64
DCchico 1:10330bce85cb 65 void draw_wall(int u, int v)
DCchico 1:10330bce85cb 66 {
congvu 3:2fe73b263a9a 67 uLCD.filled_rectangle(u, v, u+10, v+10, LGREY);
DCchico 1:10330bce85cb 68 }
DCchico 1:10330bce85cb 69
DCchico 1:10330bce85cb 70 void draw_plant(int u, int v)
DCchico 1:10330bce85cb 71 {
DCchico 1:10330bce85cb 72 uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
DCchico 1:10330bce85cb 73 }
DCchico 1:10330bce85cb 74
DCchico 1:10330bce85cb 75 void draw_goodie(int u, int v)
DCchico 1:10330bce85cb 76 {
congvu 3:2fe73b263a9a 77 uLCD.filled_rectangle(u, v, u+10, v+10, 0xD2691E); //DIRT
DCchico 1:10330bce85cb 78 }
DCchico 1:10330bce85cb 79
DCchico 1:10330bce85cb 80 void draw_snake_body(int u, int v)
DCchico 1:10330bce85cb 81 {
DCchico 1:10330bce85cb 82 uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
DCchico 1:10330bce85cb 83 }
DCchico 1:10330bce85cb 84
DCchico 1:10330bce85cb 85 void draw_snake_head(int u, int v)
DCchico 1:10330bce85cb 86 {
DCchico 1:10330bce85cb 87 //May need to design a snake head sprite
DCchico 1:10330bce85cb 88 //Tile still need to be designed on paper
congvu 3:2fe73b263a9a 89
DCchico 1:10330bce85cb 90 uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
congvu 3:2fe73b263a9a 91 draw_img(u,v, head);
congvu 3:2fe73b263a9a 92 // uLCD.filled_rectangle(u+1, v+1, u+3, v+3, RED);
congvu 3:2fe73b263a9a 93 // uLCD.filled_rectangle(u+7, v+1, u+9, v+3, RED);
congvu 3:2fe73b263a9a 94 // uLCD.filled_rectangle(u+1, v+7, u+3, v+9, RED);
congvu 3:2fe73b263a9a 95 // uLCD.filled_rectangle(u+7, v+7, u+9, v+9, RED);
congvu 3:2fe73b263a9a 96
DCchico 1:10330bce85cb 97 }
DCchico 1:10330bce85cb 98
DCchico 1:10330bce85cb 99 void draw_snake_tail(int u, int v)
DCchico 1:10330bce85cb 100 {
DCchico 1:10330bce85cb 101 //May need to design a snake tail sprite
DCchico 1:10330bce85cb 102 //Tile still need to be designed on paper
congvu 3:2fe73b263a9a 103
DCchico 1:10330bce85cb 104 uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
congvu 3:2fe73b263a9a 105 draw_img(u,v, tail);
congvu 3:2fe73b263a9a 106 // uLCD.filled_rectangle(u+1, v+1, u+3, v+3, 0xFFFF00); //YELLOW
congvu 3:2fe73b263a9a 107 // uLCD.filled_rectangle(u+7, v+1, u+9, v+3, 0xFFFF00);
congvu 3:2fe73b263a9a 108 // uLCD.filled_rectangle(u+1, v+7, u+3, v+9, 0xFFFF00);
congvu 3:2fe73b263a9a 109 // uLCD.filled_rectangle(u+7, v+7, u+9, v+9, 0xFFFF00);
DCchico 1:10330bce85cb 110 }
DCchico 1:10330bce85cb 111
DCchico 1:10330bce85cb 112