SNAKE GAME
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
graphics.cpp@0:24041b847eb5, 2020-11-25 (annotated)
- Committer:
- congvu
- Date:
- Wed Nov 25 04:25:25 2020 +0000
- Revision:
- 0:24041b847eb5
ECE2035 SNAKE GAME;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
congvu | 0:24041b847eb5 | 1 | // Copyright 2020 Georgia Tech. All rights reserved. |
congvu | 0:24041b847eb5 | 2 | // The materials provided by the instructor in this course are for |
congvu | 0:24041b847eb5 | 3 | // the use of the students currently enrolled in the course. |
congvu | 0:24041b847eb5 | 4 | // Copyrighted course materials may not be further disseminated. |
congvu | 0:24041b847eb5 | 5 | // This file must not be made publicly available anywhere. |
congvu | 0:24041b847eb5 | 6 | |
congvu | 0:24041b847eb5 | 7 | #include "graphics.h" |
congvu | 0:24041b847eb5 | 8 | |
congvu | 0:24041b847eb5 | 9 | #include "globals.h" |
congvu | 0:24041b847eb5 | 10 | |
congvu | 0:24041b847eb5 | 11 | #define YELLOW 0xFFFF00 |
congvu | 0:24041b847eb5 | 12 | #define BROWN 0xD2691E |
congvu | 0:24041b847eb5 | 13 | #define DIRT BROWN |
congvu | 0:24041b847eb5 | 14 | |
congvu | 0:24041b847eb5 | 15 | const char head[121] = { |
congvu | 0:24041b847eb5 | 16 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 17 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 18 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 19 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 20 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 21 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 22 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 23 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 24 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 25 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 26 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 27 | }; |
congvu | 0:24041b847eb5 | 28 | |
congvu | 0:24041b847eb5 | 29 | const char tail[121] = { |
congvu | 0:24041b847eb5 | 30 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 31 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 32 | 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', |
congvu | 0:24041b847eb5 | 33 | 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', |
congvu | 0:24041b847eb5 | 34 | 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', |
congvu | 0:24041b847eb5 | 35 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 36 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 37 | 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', |
congvu | 0:24041b847eb5 | 38 | 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', |
congvu | 0:24041b847eb5 | 39 | 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', |
congvu | 0:24041b847eb5 | 40 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 41 | }; |
congvu | 0:24041b847eb5 | 42 | |
congvu | 0:24041b847eb5 | 43 | const char poison[121] = { |
congvu | 0:24041b847eb5 | 44 | 'Y','3','3','3','3','3','3','3','3','3','Y', |
congvu | 0:24041b847eb5 | 45 | '3','Y','3','3','3','3','3','3','3','Y','3', |
congvu | 0:24041b847eb5 | 46 | '3','3','Y','3','3','3','3','3','Y','3','3', |
congvu | 0:24041b847eb5 | 47 | '3','3','3','Y','3','3','3','Y','3','3','3', |
congvu | 0:24041b847eb5 | 48 | '3','3','3','3','Y','3','Y','3','3','3','3', |
congvu | 0:24041b847eb5 | 49 | '3','3','3','3','3','Y','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 50 | '3','3','3','3','Y','3','Y','3','3','3','3', |
congvu | 0:24041b847eb5 | 51 | '3','3','3','Y','3','3','3','Y','3','3','3', |
congvu | 0:24041b847eb5 | 52 | '3','3','Y','3','3','3','3','3','Y','3','3', |
congvu | 0:24041b847eb5 | 53 | '3','Y','3','3','3','3','3','3','3','Y','3', |
congvu | 0:24041b847eb5 | 54 | 'Y','3','3','3','3','3','3','3','3','3','Y', |
congvu | 0:24041b847eb5 | 55 | }; |
congvu | 0:24041b847eb5 | 56 | |
congvu | 0:24041b847eb5 | 57 | const char speedup[121] = { |
congvu | 0:24041b847eb5 | 58 | '3','3','3','3','3','G','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 59 | '3','3','3','3','G','3','G','3','3','3','3', |
congvu | 0:24041b847eb5 | 60 | '3','3','3','G','3','3','3','G','3','3','3', |
congvu | 0:24041b847eb5 | 61 | '3','3','G','3','3','3','3','3','G','3','3', |
congvu | 0:24041b847eb5 | 62 | '3','G','3','3','3','3','3','3','3','G','3', |
congvu | 0:24041b847eb5 | 63 | 'G','3','3','3','3','3','3','3','3','3','G', |
congvu | 0:24041b847eb5 | 64 | '3','3','3','3','3','G','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 65 | '3','3','3','3','G','3','G','3','3','3','3', |
congvu | 0:24041b847eb5 | 66 | '3','3','3','G','3','3','3','G','3','3','3', |
congvu | 0:24041b847eb5 | 67 | '3','3','G','3','3','3','3','3','G','3','3', |
congvu | 0:24041b847eb5 | 68 | '3','G','3','3','3','3','3','3','3','G','3', |
congvu | 0:24041b847eb5 | 69 | }; |
congvu | 0:24041b847eb5 | 70 | |
congvu | 0:24041b847eb5 | 71 | const char slowdown[121] = { |
congvu | 0:24041b847eb5 | 72 | 'G','3','3','3','3','3','3','3','3','3','G', |
congvu | 0:24041b847eb5 | 73 | '3','G','3','3','3','3','3','3','3','G','3', |
congvu | 0:24041b847eb5 | 74 | '3','3','G','3','3','3','3','3','G','3','3', |
congvu | 0:24041b847eb5 | 75 | '3','3','3','G','3','3','3','G','3','3','3', |
congvu | 0:24041b847eb5 | 76 | '3','3','3','3','G','3','G','3','3','3','3', |
congvu | 0:24041b847eb5 | 77 | '3','3','3','3','3','G','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 78 | 'G','3','3','3','3','3','3','3','3','3','G', |
congvu | 0:24041b847eb5 | 79 | '3','G','3','3','3','3','3','3','3','G','3', |
congvu | 0:24041b847eb5 | 80 | '3','3','G','3','3','3','3','3','G','3','3', |
congvu | 0:24041b847eb5 | 81 | '3','3','3','G','3','3','3','G','3','3','3', |
congvu | 0:24041b847eb5 | 82 | '3','3','3','3','G','3','G','3','3','3','3', |
congvu | 0:24041b847eb5 | 83 | }; |
congvu | 0:24041b847eb5 | 84 | |
congvu | 0:24041b847eb5 | 85 | const char decrease_length[121] = { |
congvu | 0:24041b847eb5 | 86 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 87 | '3','3','3','3','Y','Y','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 88 | '3','3','3','Y','3','3','Y','Y','Y','3','3', |
congvu | 0:24041b847eb5 | 89 | '3','3','3','Y','3','3','Y','3','3','3','3', |
congvu | 0:24041b847eb5 | 90 | '3','3','3','3','Y','Y','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 91 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 92 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 93 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 94 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 95 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 96 | '3','3','3','3','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 97 | }; |
congvu | 0:24041b847eb5 | 98 | |
congvu | 0:24041b847eb5 | 99 | const char random[121] = { |
congvu | 0:24041b847eb5 | 100 | '5','5','5','5','5','G','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 101 | '5','5','5','5','G','5','G','5','5','5','5', |
congvu | 0:24041b847eb5 | 102 | '5','5','5','G','5','5','5','G','5','5','5', |
congvu | 0:24041b847eb5 | 103 | '5','5','5','5','5','5','5','G','5','5','5', |
congvu | 0:24041b847eb5 | 104 | '5','5','5','5','5','5','5','G','5','5','5', |
congvu | 0:24041b847eb5 | 105 | '5','5','5','5','5','5','G','5','5','5','5', |
congvu | 0:24041b847eb5 | 106 | '5','5','5','5','5','G','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 107 | '5','5','5','5','5','G','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 108 | '5','5','5','5','5','G','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 109 | '5','5','5','5','5','5','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 110 | '5','5','5','5','5','G','5','5','5','5','5', |
congvu | 0:24041b847eb5 | 111 | }; |
congvu | 0:24041b847eb5 | 112 | |
congvu | 0:24041b847eb5 | 113 | const char moving[121] = { |
congvu | 0:24041b847eb5 | 114 | 'G','G','G','G','R','R','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 115 | 'G','G','G','G','R','R','R','G','G','G','G', |
congvu | 0:24041b847eb5 | 116 | 'G','R','R','R','R','R','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 117 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 118 | 'G','R','R','R','G','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 119 | 'G','R','R','G','G','G','G','G','R','G','G', |
congvu | 0:24041b847eb5 | 120 | 'G','R','R','R','R','R','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 121 | 'G','R','R','R','R','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 122 | 'G','G','R','R','R','G','R','R','R','G','G', |
congvu | 0:24041b847eb5 | 123 | 'G','G','G','R','R','R','R','R','G','G','G', |
congvu | 0:24041b847eb5 | 124 | 'G','G','G','G','R','R','R','G','G','G','G', |
congvu | 0:24041b847eb5 | 125 | }; |
congvu | 0:24041b847eb5 | 126 | |
congvu | 0:24041b847eb5 | 127 | const char invinc[121] = { |
congvu | 0:24041b847eb5 | 128 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 129 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 130 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 131 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 132 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 133 | 'R','R','R','R','R','R','R','R','R','R','R', |
congvu | 0:24041b847eb5 | 134 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 135 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 136 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 137 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 138 | '3','3','3','3','3','R','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 139 | }; |
congvu | 0:24041b847eb5 | 140 | const char goodie[121] = { |
congvu | 0:24041b847eb5 | 141 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 142 | 'B','B','B','G','G','B','D','B','B','B','B', |
congvu | 0:24041b847eb5 | 143 | 'B','B','B','B','G','D','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 144 | 'B','B','R','B','B','R','R','R','B','B','B', |
congvu | 0:24041b847eb5 | 145 | 'B','R','W','W','R','R','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 146 | 'B','R','W','R','R','R','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 147 | 'B','R','R','R','R','R','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 148 | 'B','R','R','R','R','R','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 149 | 'B','B','R','R','R','R','R','R','R','B','B', |
congvu | 0:24041b847eb5 | 150 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 151 | }; |
congvu | 0:24041b847eb5 | 152 | |
congvu | 0:24041b847eb5 | 153 | const char brick [121] = { |
congvu | 0:24041b847eb5 | 154 | '5','5','5','5','3','3','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 155 | '5','S','S','S','B','5','5','3','3','B','B', |
congvu | 0:24041b847eb5 | 156 | '5','5','5','5','B','B','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 157 | '5','S','S','S','B','5','5','3','3','B','B', |
congvu | 0:24041b847eb5 | 158 | '5','5','5','5','B','B','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 159 | '5','S','S','S','B','5','5','3','3','B','B', |
congvu | 0:24041b847eb5 | 160 | '5','5','5','5','B','B','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 161 | '5','S','S','S','B','5','5','3','3','B','B', |
congvu | 0:24041b847eb5 | 162 | '5','5','5','5','B','B','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 163 | '5','S','S','S','B','5','5','3','3','B','B', |
congvu | 0:24041b847eb5 | 164 | '5','5','5','5','B','B','3','3','3','3','3', |
congvu | 0:24041b847eb5 | 165 | }; |
congvu | 0:24041b847eb5 | 166 | |
congvu | 0:24041b847eb5 | 167 | const char plant [121] = { |
congvu | 0:24041b847eb5 | 168 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 169 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 170 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 171 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 172 | 'B','B','B','G','B','G','B','G','G','B','B', |
congvu | 0:24041b847eb5 | 173 | 'B','B','G','G','G','G','G','G','G','G','B', |
congvu | 0:24041b847eb5 | 174 | 'B','G','G','G','G','G','G','G','G','G','B', |
congvu | 0:24041b847eb5 | 175 | 'G','G','G','G','G','G','G','G','G','B','B', |
congvu | 0:24041b847eb5 | 176 | 'B','G','G','G','G','G','G','G','G','G','B', |
congvu | 0:24041b847eb5 | 177 | 'G','G','G','G','G','G','G','G','G','G','B', |
congvu | 0:24041b847eb5 | 178 | 'G','G','G','G','G','G','G','G','G','G','G', |
congvu | 0:24041b847eb5 | 179 | }; |
congvu | 0:24041b847eb5 | 180 | |
congvu | 0:24041b847eb5 | 181 | const char inclength [121] = { |
congvu | 0:24041b847eb5 | 182 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 183 | 'B','B','B','G','G','B','D','B','B','B','B', |
congvu | 0:24041b847eb5 | 184 | 'B','B','B','B','G','D','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 185 | 'B','B','R','B','B','R','R','R','G','B','B', |
congvu | 0:24041b847eb5 | 186 | 'B','G','W','W','R','R','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 187 | 'B','R','W','R','G','G','R','R','R','R','B', |
congvu | 0:24041b847eb5 | 188 | 'B','R','R','R','G','G','R','G','G','R','B', |
congvu | 0:24041b847eb5 | 189 | 'B','R','R','G','R','R','R','G','G','R','B', |
congvu | 0:24041b847eb5 | 190 | 'B','B','R','R','R','R','R','R','R','B','B', |
congvu | 0:24041b847eb5 | 191 | 'B','B','B','B','B','B','B','B','B','B','B', |
congvu | 0:24041b847eb5 | 192 | }; |
congvu | 0:24041b847eb5 | 193 | void draw_nothing(int u, int v) |
congvu | 0:24041b847eb5 | 194 | { |
congvu | 0:24041b847eb5 | 195 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 196 | } |
congvu | 0:24041b847eb5 | 197 | |
congvu | 0:24041b847eb5 | 198 | void draw_img(int u, int v, const char* img) |
congvu | 0:24041b847eb5 | 199 | { |
congvu | 0:24041b847eb5 | 200 | int colors[11*11]; |
congvu | 0:24041b847eb5 | 201 | for (int i = 0; i < 11*11; i++) |
congvu | 0:24041b847eb5 | 202 | { |
congvu | 0:24041b847eb5 | 203 | if (img[i] == 'R') colors[i] = RED; |
congvu | 0:24041b847eb5 | 204 | else if (img[i] == 'Y') colors[i] = 0xFFFF00; // Yellow |
congvu | 0:24041b847eb5 | 205 | else if (img[i] == 'G') colors[i] = GREEN; |
congvu | 0:24041b847eb5 | 206 | else if (img[i] == 'D') colors[i] = 0xD2691E; // "Dirt" |
congvu | 0:24041b847eb5 | 207 | else if (img[i] == '5') colors[i] = LGREY; // 50% grey |
congvu | 0:24041b847eb5 | 208 | else if (img[i] == '3') colors[i] = DGREY; |
congvu | 0:24041b847eb5 | 209 | else colors[i] = BLACK; |
congvu | 0:24041b847eb5 | 210 | } |
congvu | 0:24041b847eb5 | 211 | uLCD.BLIT(u, v, 11, 11, colors); |
congvu | 0:24041b847eb5 | 212 | wait_us(250); // Recovery time! |
congvu | 0:24041b847eb5 | 213 | } |
congvu | 0:24041b847eb5 | 214 | |
congvu | 0:24041b847eb5 | 215 | void draw_wall(int u, int v) |
congvu | 0:24041b847eb5 | 216 | { |
congvu | 0:24041b847eb5 | 217 | draw_img(u,v, brick); |
congvu | 0:24041b847eb5 | 218 | // uLCD.filled_rectangle(u, v, u+10, v+10, LGREY); |
congvu | 0:24041b847eb5 | 219 | } |
congvu | 0:24041b847eb5 | 220 | |
congvu | 0:24041b847eb5 | 221 | void draw_plant(int u, int v) |
congvu | 0:24041b847eb5 | 222 | { |
congvu | 0:24041b847eb5 | 223 | draw_img(u,v, plant); |
congvu | 0:24041b847eb5 | 224 | // uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); |
congvu | 0:24041b847eb5 | 225 | } |
congvu | 0:24041b847eb5 | 226 | |
congvu | 0:24041b847eb5 | 227 | void draw_goodie(int u, int v) |
congvu | 0:24041b847eb5 | 228 | { |
congvu | 0:24041b847eb5 | 229 | draw_img(u,v, goodie); |
congvu | 0:24041b847eb5 | 230 | //uLCD.filled_rectangle(u, v, u+10, v+10, 0xD2691E); //DIRT |
congvu | 0:24041b847eb5 | 231 | } |
congvu | 0:24041b847eb5 | 232 | |
congvu | 0:24041b847eb5 | 233 | void draw_snake_body(int u, int v) |
congvu | 0:24041b847eb5 | 234 | { |
congvu | 0:24041b847eb5 | 235 | uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); |
congvu | 0:24041b847eb5 | 236 | } |
congvu | 0:24041b847eb5 | 237 | |
congvu | 0:24041b847eb5 | 238 | void draw_snake_head(int u, int v) |
congvu | 0:24041b847eb5 | 239 | { |
congvu | 0:24041b847eb5 | 240 | //May need to design a snake head sprite |
congvu | 0:24041b847eb5 | 241 | //Tile still need to be designed on paper |
congvu | 0:24041b847eb5 | 242 | |
congvu | 0:24041b847eb5 | 243 | uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); |
congvu | 0:24041b847eb5 | 244 | draw_img(u,v, head); |
congvu | 0:24041b847eb5 | 245 | |
congvu | 0:24041b847eb5 | 246 | } |
congvu | 0:24041b847eb5 | 247 | |
congvu | 0:24041b847eb5 | 248 | void draw_snake_tail(int u, int v) |
congvu | 0:24041b847eb5 | 249 | { |
congvu | 0:24041b847eb5 | 250 | //May need to design a snake tail sprite |
congvu | 0:24041b847eb5 | 251 | //Tile still need to be designed on paper |
congvu | 0:24041b847eb5 | 252 | |
congvu | 0:24041b847eb5 | 253 | uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); |
congvu | 0:24041b847eb5 | 254 | draw_img(u,v, tail); |
congvu | 0:24041b847eb5 | 255 | } |
congvu | 0:24041b847eb5 | 256 | |
congvu | 0:24041b847eb5 | 257 | void draw_poison(int u, int v) { |
congvu | 0:24041b847eb5 | 258 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 259 | draw_img(u, v, poison); |
congvu | 0:24041b847eb5 | 260 | } |
congvu | 0:24041b847eb5 | 261 | |
congvu | 0:24041b847eb5 | 262 | void draw_speedup(int u, int v) { |
congvu | 0:24041b847eb5 | 263 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 264 | draw_img(u, v, speedup); |
congvu | 0:24041b847eb5 | 265 | } |
congvu | 0:24041b847eb5 | 266 | |
congvu | 0:24041b847eb5 | 267 | void draw_slowdown(int u, int v) { |
congvu | 0:24041b847eb5 | 268 | draw_img(u, v, slowdown); |
congvu | 0:24041b847eb5 | 269 | } |
congvu | 0:24041b847eb5 | 270 | |
congvu | 0:24041b847eb5 | 271 | void draw_decrease_length(int u, int v) { |
congvu | 0:24041b847eb5 | 272 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 273 | draw_img(u, v, decrease_length); |
congvu | 0:24041b847eb5 | 274 | } |
congvu | 0:24041b847eb5 | 275 | |
congvu | 0:24041b847eb5 | 276 | void draw_random(int u, int v) { |
congvu | 0:24041b847eb5 | 277 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 278 | draw_img(u, v, random); |
congvu | 0:24041b847eb5 | 279 | } |
congvu | 0:24041b847eb5 | 280 | |
congvu | 0:24041b847eb5 | 281 | void draw_moving(int u, int v) { |
congvu | 0:24041b847eb5 | 282 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 283 | draw_img(u, v, moving); |
congvu | 0:24041b847eb5 | 284 | } |
congvu | 0:24041b847eb5 | 285 | |
congvu | 0:24041b847eb5 | 286 | void draw_invinc(int u, int v) { |
congvu | 0:24041b847eb5 | 287 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
congvu | 0:24041b847eb5 | 288 | draw_img(u, v, invinc); |
congvu | 0:24041b847eb5 | 289 | } |
congvu | 0:24041b847eb5 | 290 | |
congvu | 0:24041b847eb5 | 291 | void draw_inclength(int u, int v) { |
congvu | 0:24041b847eb5 | 292 | //uLCD.filled_rectangle(u, v, u+10, v+10, RED); |
congvu | 0:24041b847eb5 | 293 | draw_img(u, v, inclength); |
congvu | 0:24041b847eb5 | 294 | } |
congvu | 0:24041b847eb5 | 295 | |
congvu | 0:24041b847eb5 | 296 | void draw_welcome(int difficulty, int full) { |
congvu | 0:24041b847eb5 | 297 | if (full) { |
congvu | 0:24041b847eb5 | 298 | uLCD.text_bold(ON); |
congvu | 0:24041b847eb5 | 299 | uLCD.text_string("SNAKE GAME", 4, 2, FONT_7X8, RED); |
congvu | 0:24041b847eb5 | 300 | uLCD.text_string("Project 2.2 ", 2, 4, FONT_7X8, GREEN); |
congvu | 0:24041b847eb5 | 301 | uLCD.text_string("Cong Vu", 2, 5, FONT_7X8, GREEN); |
congvu | 0:24041b847eb5 | 302 | uLCD.text_string("Button 1: START",1,7,FONT_7X8, GREEN); |
congvu | 0:24041b847eb5 | 303 | uLCD.text_string("Button 2: LEVEL",1,8, FONT_7X8, GREEN); |
congvu | 0:24041b847eb5 | 304 | |
congvu | 0:24041b847eb5 | 305 | } |
congvu | 0:24041b847eb5 | 306 | |
congvu | 0:24041b847eb5 | 307 | uLCD.locate(1, 11); |
congvu | 0:24041b847eb5 | 308 | switch (difficulty) { |
congvu | 0:24041b847eb5 | 309 | case 0: |
congvu | 0:24041b847eb5 | 310 | uLCD.printf("Level: EASY"); |
congvu | 0:24041b847eb5 | 311 | break; |
congvu | 0:24041b847eb5 | 312 | case 1: |
congvu | 0:24041b847eb5 | 313 | uLCD.printf("Level: MED "); |
congvu | 0:24041b847eb5 | 314 | break; |
congvu | 0:24041b847eb5 | 315 | case 2: |
congvu | 0:24041b847eb5 | 316 | uLCD.printf("Level: HARD"); |
congvu | 0:24041b847eb5 | 317 | break; |
congvu | 0:24041b847eb5 | 318 | default: |
congvu | 0:24041b847eb5 | 319 | return; |
congvu | 0:24041b847eb5 | 320 | } |
congvu | 0:24041b847eb5 | 321 | } |