This program simulates a game of Pac-Man that allows for multiplayer. One player controls Pac-Man, while two other players control a red and yellow ghost using different tactile switches.
Dependencies: 4DGL-uLCD-SE PinDetect mbed
Fork of Pac-Man by
Stage.h@1:839f59c6d021, 2015-10-19 (annotated)
- Committer:
- soapy12312
- Date:
- Mon Oct 19 17:51:14 2015 +0000
- Revision:
- 1:839f59c6d021
- Parent:
- 0:8b6686f2d4be
Multiplayer Pac-Man.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
soapy12312 | 0:8b6686f2d4be | 1 | /****************************************************** |
soapy12312 | 0:8b6686f2d4be | 2 | * Author: Yuanzhe Xu |
soapy12312 | 0:8b6686f2d4be | 3 | * Institution: Georgia Institute of Technology |
soapy12312 | 0:8b6686f2d4be | 4 | * Date: October 18, 2015 |
soapy12312 | 0:8b6686f2d4be | 5 | * |
soapy12312 | 0:8b6686f2d4be | 6 | * This header file declares all the functions and |
soapy12312 | 0:8b6686f2d4be | 7 | * variables needed for the Stage object. |
soapy12312 | 0:8b6686f2d4be | 8 | ******************************************************/ |
soapy12312 | 0:8b6686f2d4be | 9 | |
soapy12312 | 0:8b6686f2d4be | 10 | #define YELLOW 0xFFFF00 |
soapy12312 | 0:8b6686f2d4be | 11 | #define PINK 0xFFB6C1 |
soapy12312 | 0:8b6686f2d4be | 12 | |
soapy12312 | 0:8b6686f2d4be | 13 | #define FACERIGHT 0 |
soapy12312 | 0:8b6686f2d4be | 14 | #define FACEDOWN 1 |
soapy12312 | 0:8b6686f2d4be | 15 | #define FACELEFT 2 |
soapy12312 | 0:8b6686f2d4be | 16 | #define FACEUP 3 |
soapy12312 | 0:8b6686f2d4be | 17 | |
soapy12312 | 0:8b6686f2d4be | 18 | // Stage class |
soapy12312 | 0:8b6686f2d4be | 19 | class Stage { |
soapy12312 | 0:8b6686f2d4be | 20 | public: |
soapy12312 | 0:8b6686f2d4be | 21 | // Stage constructor |
soapy12312 | 0:8b6686f2d4be | 22 | Stage(uLCD_4DGL& uLCD) : uLCD(uLCD) { |
soapy12312 | 0:8b6686f2d4be | 23 | } |
soapy12312 | 0:8b6686f2d4be | 24 | |
soapy12312 | 0:8b6686f2d4be | 25 | // Set up the stage |
soapy12312 | 0:8b6686f2d4be | 26 | void initialize() { |
soapy12312 | 0:8b6686f2d4be | 27 | printCounters(); |
soapy12312 | 0:8b6686f2d4be | 28 | drawStage(); |
soapy12312 | 0:8b6686f2d4be | 29 | setPositions(); |
soapy12312 | 0:8b6686f2d4be | 30 | } |
soapy12312 | 0:8b6686f2d4be | 31 | |
soapy12312 | 0:8b6686f2d4be | 32 | // Check if the position is valid |
soapy12312 | 0:8b6686f2d4be | 33 | bool checkValid(int xCoordinate, int yCoordinate) { |
soapy12312 | 0:8b6686f2d4be | 34 | return (positions[xCoordinate][yCoordinate] != 0); |
soapy12312 | 0:8b6686f2d4be | 35 | } |
soapy12312 | 0:8b6686f2d4be | 36 | |
soapy12312 | 0:8b6686f2d4be | 37 | // Get the valid positions of the players |
soapy12312 | 0:8b6686f2d4be | 38 | char* getPositions() { |
soapy12312 | 0:8b6686f2d4be | 39 | return *positions; |
soapy12312 | 0:8b6686f2d4be | 40 | } |
soapy12312 | 0:8b6686f2d4be | 41 | |
soapy12312 | 0:8b6686f2d4be | 42 | // Get the number of pac dots |
soapy12312 | 0:8b6686f2d4be | 43 | int getPacDots() { |
soapy12312 | 0:8b6686f2d4be | 44 | return pacDots; |
soapy12312 | 0:8b6686f2d4be | 45 | } |
soapy12312 | 0:8b6686f2d4be | 46 | |
soapy12312 | 0:8b6686f2d4be | 47 | // Get the number of big pac dots |
soapy12312 | 0:8b6686f2d4be | 48 | int getBigPacDots() { |
soapy12312 | 0:8b6686f2d4be | 49 | return bigPacDots; |
soapy12312 | 0:8b6686f2d4be | 50 | } |
soapy12312 | 0:8b6686f2d4be | 51 | |
soapy12312 | 0:8b6686f2d4be | 52 | |
soapy12312 | 0:8b6686f2d4be | 53 | private: |
soapy12312 | 0:8b6686f2d4be | 54 | // Total number of pac dots |
soapy12312 | 0:8b6686f2d4be | 55 | int pacDots; |
soapy12312 | 0:8b6686f2d4be | 56 | // Total number of big pac dots |
soapy12312 | 0:8b6686f2d4be | 57 | int bigPacDots; |
soapy12312 | 0:8b6686f2d4be | 58 | // Invalid = 0, valid = 1, pac dot = 2, big pac dot = 3 |
soapy12312 | 0:8b6686f2d4be | 59 | char positions[128][128]; |
soapy12312 | 0:8b6686f2d4be | 60 | // uLCD display |
soapy12312 | 0:8b6686f2d4be | 61 | uLCD_4DGL& uLCD; |
soapy12312 | 0:8b6686f2d4be | 62 | // Set Pacman as a friend class |
soapy12312 | 0:8b6686f2d4be | 63 | friend class Pacman; |
soapy12312 | 0:8b6686f2d4be | 64 | // Set Ghost as a friend class |
soapy12312 | 0:8b6686f2d4be | 65 | friend class Ghost; |
soapy12312 | 0:8b6686f2d4be | 66 | |
soapy12312 | 0:8b6686f2d4be | 67 | // Print score and power-up counters |
soapy12312 | 0:8b6686f2d4be | 68 | void printCounters() { |
soapy12312 | 0:8b6686f2d4be | 69 | uLCD.printf("Score Power-Up %%"); |
soapy12312 | 0:8b6686f2d4be | 70 | } |
soapy12312 | 0:8b6686f2d4be | 71 | |
soapy12312 | 0:8b6686f2d4be | 72 | // Draw the bounds of the maze |
soapy12312 | 0:8b6686f2d4be | 73 | void drawStage() { |
soapy12312 | 0:8b6686f2d4be | 74 | uLCD.pixel(108, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 75 | uLCD.pixel(20, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 76 | uLCD.pixel(68, 24, BLUE); |
soapy12312 | 0:8b6686f2d4be | 77 | uLCD.pixel(60, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 78 | uLCD.line(4, 16, 60, 16, BLUE); |
soapy12312 | 0:8b6686f2d4be | 79 | uLCD.line(68, 16, 124, 16, BLUE); |
soapy12312 | 0:8b6686f2d4be | 80 | uLCD.line(60, 16, 60, 24, BLUE); |
soapy12312 | 0:8b6686f2d4be | 81 | uLCD.line(68, 16, 68, 24, BLUE); |
soapy12312 | 0:8b6686f2d4be | 82 | uLCD.line(60, 24, 68, 24, BLUE); |
soapy12312 | 0:8b6686f2d4be | 83 | uLCD.line(4, 16, 4, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 84 | uLCD.line(4, 40, 20, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 85 | uLCD.line(20, 40, 20, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 86 | uLCD.line(4, 64, 20, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 87 | uLCD.line(4, 72, 20, 72, BLUE); |
soapy12312 | 0:8b6686f2d4be | 88 | uLCD.line(20, 72, 20, 96, BLUE); |
soapy12312 | 0:8b6686f2d4be | 89 | uLCD.line(20, 96, 4, 96, BLUE); |
soapy12312 | 0:8b6686f2d4be | 90 | uLCD.line(4, 96, 4, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 91 | uLCD.line(4, 120, 60, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 92 | uLCD.line(124, 16, 124, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 93 | uLCD.line(124, 40, 108, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 94 | uLCD.line(108, 40, 108, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 95 | uLCD.line(124, 64, 108, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 96 | uLCD.line(124, 72, 108, 72, BLUE); |
soapy12312 | 0:8b6686f2d4be | 97 | uLCD.line(108, 72, 108, 96, BLUE); |
soapy12312 | 0:8b6686f2d4be | 98 | uLCD.line(108, 96, 124, 96, BLUE); |
soapy12312 | 0:8b6686f2d4be | 99 | uLCD.line(124, 96, 124, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 100 | uLCD.line(124, 120, 68, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 101 | uLCD.line(68, 120, 68, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 102 | uLCD.line(68, 112, 60, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 103 | uLCD.line(60, 112, 60, 120, BLUE); |
soapy12312 | 0:8b6686f2d4be | 104 | uLCD.rectangle(12, 24, 20, 32, BLUE); |
soapy12312 | 0:8b6686f2d4be | 105 | uLCD.rectangle(28, 24, 52, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 106 | uLCD.rectangle(76, 24, 100, 40, BLUE); |
soapy12312 | 0:8b6686f2d4be | 107 | uLCD.rectangle(108, 24, 116, 32, BLUE); |
soapy12312 | 0:8b6686f2d4be | 108 | uLCD.rectangle(28, 48, 44, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 109 | uLCD.rectangle(84, 48, 100, 64, BLUE); |
soapy12312 | 0:8b6686f2d4be | 110 | uLCD.rectangle(28, 72, 44, 88, BLUE); |
soapy12312 | 0:8b6686f2d4be | 111 | uLCD.rectangle(84, 72, 100, 88, BLUE); |
soapy12312 | 0:8b6686f2d4be | 112 | uLCD.rectangle(52, 64, 76, 72, BLUE); |
soapy12312 | 0:8b6686f2d4be | 113 | uLCD.line(61, 64, 68, 64, PINK); |
soapy12312 | 0:8b6686f2d4be | 114 | uLCD.pixel(61, 64, PINK); |
soapy12312 | 0:8b6686f2d4be | 115 | uLCD.pixel(68, 64, PINK); |
soapy12312 | 0:8b6686f2d4be | 116 | uLCD.rectangle(12, 104, 20, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 117 | uLCD.rectangle(28, 96, 52, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 118 | uLCD.rectangle(76, 96, 100, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 119 | uLCD.rectangle(108, 104, 116, 112, BLUE); |
soapy12312 | 0:8b6686f2d4be | 120 | uLCD.rectangle(60, 32, 68, 56, BLUE); |
soapy12312 | 0:8b6686f2d4be | 121 | uLCD.rectangle(52, 48, 76, 56, BLUE); |
soapy12312 | 0:8b6686f2d4be | 122 | uLCD.rectangle(60, 80, 68, 104, BLUE); |
soapy12312 | 0:8b6686f2d4be | 123 | uLCD.rectangle(52, 80, 76, 88, BLUE); |
soapy12312 | 0:8b6686f2d4be | 124 | uLCD.rectangle(60, 81, 68, 88, BLACK); |
soapy12312 | 0:8b6686f2d4be | 125 | uLCD.rectangle(60, 48, 68, 55, BLACK); |
soapy12312 | 0:8b6686f2d4be | 126 | uLCD.pixel(60, 48, BLUE); |
soapy12312 | 0:8b6686f2d4be | 127 | uLCD.pixel(68, 48, BLUE); |
soapy12312 | 0:8b6686f2d4be | 128 | uLCD.pixel(60, 88, BLUE); |
soapy12312 | 0:8b6686f2d4be | 129 | uLCD.pixel(68, 88, BLUE); |
soapy12312 | 0:8b6686f2d4be | 130 | } |
soapy12312 | 0:8b6686f2d4be | 131 | |
soapy12312 | 0:8b6686f2d4be | 132 | // Set the positions of the players and pac dots |
soapy12312 | 0:8b6686f2d4be | 133 | void setPositions() { |
soapy12312 | 0:8b6686f2d4be | 134 | // Set the valid positions of the players |
soapy12312 | 0:8b6686f2d4be | 135 | for (int i = 0; i < 128; i++) { |
soapy12312 | 0:8b6686f2d4be | 136 | for (int j = 0; j < 128; j++) { |
soapy12312 | 0:8b6686f2d4be | 137 | positions[i][j] = 0; |
soapy12312 | 0:8b6686f2d4be | 138 | } |
soapy12312 | 0:8b6686f2d4be | 139 | } |
soapy12312 | 0:8b6686f2d4be | 140 | |
soapy12312 | 0:8b6686f2d4be | 141 | for (int i = 8; i <= 56; i++) { |
soapy12312 | 0:8b6686f2d4be | 142 | positions[i][20] = 1; |
soapy12312 | 0:8b6686f2d4be | 143 | positions[i][116] = 1; |
soapy12312 | 0:8b6686f2d4be | 144 | } |
soapy12312 | 0:8b6686f2d4be | 145 | |
soapy12312 | 0:8b6686f2d4be | 146 | for (int j = 20; j <= 36; j++) { |
soapy12312 | 0:8b6686f2d4be | 147 | positions[8][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 148 | positions[120][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 149 | } |
soapy12312 | 0:8b6686f2d4be | 150 | |
soapy12312 | 0:8b6686f2d4be | 151 | for (int i = 8; i <= 24; i++) { |
soapy12312 | 0:8b6686f2d4be | 152 | positions[i][36] = 1; |
soapy12312 | 0:8b6686f2d4be | 153 | positions[i][100] = 1; |
soapy12312 | 0:8b6686f2d4be | 154 | } |
soapy12312 | 0:8b6686f2d4be | 155 | |
soapy12312 | 0:8b6686f2d4be | 156 | for (int j = 20; j <= 116; j++) { |
soapy12312 | 0:8b6686f2d4be | 157 | positions[24][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 158 | positions[104][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 159 | } |
soapy12312 | 0:8b6686f2d4be | 160 | |
soapy12312 | 0:8b6686f2d4be | 161 | for (int j = 20; j <= 44; j++) { |
soapy12312 | 0:8b6686f2d4be | 162 | positions[56][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 163 | positions[72][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 164 | } |
soapy12312 | 0:8b6686f2d4be | 165 | |
soapy12312 | 0:8b6686f2d4be | 166 | for (int i = 24; i <= 56; i++) { |
soapy12312 | 0:8b6686f2d4be | 167 | positions[i][44] = 1; |
soapy12312 | 0:8b6686f2d4be | 168 | positions[i][92] = 1; |
soapy12312 | 0:8b6686f2d4be | 169 | } |
soapy12312 | 0:8b6686f2d4be | 170 | |
soapy12312 | 0:8b6686f2d4be | 171 | for (int j = 44; j <= 92; j++) { |
soapy12312 | 0:8b6686f2d4be | 172 | positions[48][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 173 | positions[80][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 174 | } |
soapy12312 | 0:8b6686f2d4be | 175 | |
soapy12312 | 0:8b6686f2d4be | 176 | for (int i = 4; i <= 48; i++) { |
soapy12312 | 0:8b6686f2d4be | 177 | positions[i][68] = 1; |
soapy12312 | 0:8b6686f2d4be | 178 | } |
soapy12312 | 0:8b6686f2d4be | 179 | |
soapy12312 | 0:8b6686f2d4be | 180 | for (int i = 56; i <= 72; i++) { |
soapy12312 | 0:8b6686f2d4be | 181 | positions[i][28] = 1; |
soapy12312 | 0:8b6686f2d4be | 182 | positions[i][108] = 1; |
soapy12312 | 0:8b6686f2d4be | 183 | } |
soapy12312 | 0:8b6686f2d4be | 184 | |
soapy12312 | 0:8b6686f2d4be | 185 | for (int i = 72; i <= 120; i++) { |
soapy12312 | 0:8b6686f2d4be | 186 | positions[i][20] = 1; |
soapy12312 | 0:8b6686f2d4be | 187 | positions[i][116] = 1; |
soapy12312 | 0:8b6686f2d4be | 188 | } |
soapy12312 | 0:8b6686f2d4be | 189 | |
soapy12312 | 0:8b6686f2d4be | 190 | for (int i = 72; i <= 104; i++) { |
soapy12312 | 0:8b6686f2d4be | 191 | positions[i][44] = 1; |
soapy12312 | 0:8b6686f2d4be | 192 | positions[i][92] = 1; |
soapy12312 | 0:8b6686f2d4be | 193 | } |
soapy12312 | 0:8b6686f2d4be | 194 | |
soapy12312 | 0:8b6686f2d4be | 195 | for (int i = 104; i <= 120; i++) { |
soapy12312 | 0:8b6686f2d4be | 196 | positions[i][36] = 1; |
soapy12312 | 0:8b6686f2d4be | 197 | positions[i][100] = 1; |
soapy12312 | 0:8b6686f2d4be | 198 | } |
soapy12312 | 0:8b6686f2d4be | 199 | |
soapy12312 | 0:8b6686f2d4be | 200 | for (int i = 48; i <= 80; i++) { |
soapy12312 | 0:8b6686f2d4be | 201 | positions[i][60] = 1; |
soapy12312 | 0:8b6686f2d4be | 202 | positions[i][76] = 1; |
soapy12312 | 0:8b6686f2d4be | 203 | } |
soapy12312 | 0:8b6686f2d4be | 204 | |
soapy12312 | 0:8b6686f2d4be | 205 | for (int i = 80; i <= 124; i++) { |
soapy12312 | 0:8b6686f2d4be | 206 | positions[i][68] = 1; |
soapy12312 | 0:8b6686f2d4be | 207 | } |
soapy12312 | 0:8b6686f2d4be | 208 | |
soapy12312 | 0:8b6686f2d4be | 209 | for (int j = 100; j <= 116; j++) { |
soapy12312 | 0:8b6686f2d4be | 210 | positions[8][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 211 | positions[120][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 212 | } |
soapy12312 | 0:8b6686f2d4be | 213 | |
soapy12312 | 0:8b6686f2d4be | 214 | for (int j = 92; j <= 116; j++) { |
soapy12312 | 0:8b6686f2d4be | 215 | positions[56][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 216 | positions[72][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 217 | } |
soapy12312 | 0:8b6686f2d4be | 218 | |
soapy12312 | 0:8b6686f2d4be | 219 | // Set valid positions of the pac dots |
soapy12312 | 0:8b6686f2d4be | 220 | pacDots = -40; |
soapy12312 | 0:8b6686f2d4be | 221 | bigPacDots = 4; |
soapy12312 | 0:8b6686f2d4be | 222 | |
soapy12312 | 0:8b6686f2d4be | 223 | for (int i = 0; i < 128; i++) { |
soapy12312 | 0:8b6686f2d4be | 224 | for (int j = 0; j < 128; j++) { |
soapy12312 | 0:8b6686f2d4be | 225 | if (positions[i][j] == 1) { |
soapy12312 | 0:8b6686f2d4be | 226 | if ((i % 4 == 0) && (j % 4 == 0)) { |
soapy12312 | 0:8b6686f2d4be | 227 | uLCD.pixel(i, j, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 228 | pacDots++; |
soapy12312 | 0:8b6686f2d4be | 229 | positions[i][j] = 2; |
soapy12312 | 0:8b6686f2d4be | 230 | } |
soapy12312 | 0:8b6686f2d4be | 231 | } |
soapy12312 | 0:8b6686f2d4be | 232 | } |
soapy12312 | 0:8b6686f2d4be | 233 | } |
soapy12312 | 0:8b6686f2d4be | 234 | |
soapy12312 | 0:8b6686f2d4be | 235 | uLCD.rectangle(48, 60, 80, 76, BLACK); |
soapy12312 | 0:8b6686f2d4be | 236 | uLCD.line(48, 46, 48, 91, BLACK); |
soapy12312 | 0:8b6686f2d4be | 237 | uLCD.line(80, 46, 80, 91, BLACK); |
soapy12312 | 0:8b6686f2d4be | 238 | uLCD.line(58, 108, 70, 108, BLACK); |
soapy12312 | 0:8b6686f2d4be | 239 | |
soapy12312 | 0:8b6686f2d4be | 240 | for (int i = 48; i <= 80; i++) { |
soapy12312 | 0:8b6686f2d4be | 241 | for (int j = 45; j < 91; j++) { |
soapy12312 | 0:8b6686f2d4be | 242 | if (positions[i][j] == 2) { |
soapy12312 | 0:8b6686f2d4be | 243 | positions[i][j] = 1; |
soapy12312 | 0:8b6686f2d4be | 244 | } |
soapy12312 | 0:8b6686f2d4be | 245 | } |
soapy12312 | 0:8b6686f2d4be | 246 | } |
soapy12312 | 0:8b6686f2d4be | 247 | |
soapy12312 | 0:8b6686f2d4be | 248 | uLCD.filled_circle(8, 100, 1, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 249 | positions[8][100] = 3; |
soapy12312 | 0:8b6686f2d4be | 250 | uLCD.filled_circle(120, 100, 1, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 251 | positions[120][100] = 3; |
soapy12312 | 0:8b6686f2d4be | 252 | uLCD.filled_circle(8, 36, 1, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 253 | positions[8][36] = 3; |
soapy12312 | 0:8b6686f2d4be | 254 | uLCD.filled_circle(120, 36, 1, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 255 | positions[120][36] = 3; |
soapy12312 | 0:8b6686f2d4be | 256 | } |
soapy12312 | 0:8b6686f2d4be | 257 | |
soapy12312 | 0:8b6686f2d4be | 258 | // Redraw the current pac dot locations |
soapy12312 | 0:8b6686f2d4be | 259 | void redrawPacDots() { |
soapy12312 | 0:8b6686f2d4be | 260 | for (int i = 4; i <= 124; i++) { |
soapy12312 | 0:8b6686f2d4be | 261 | for (int j = 20; j <= 116; j++) { |
soapy12312 | 0:8b6686f2d4be | 262 | if (positions[i][j] == 2) { |
soapy12312 | 0:8b6686f2d4be | 263 | uLCD.pixel(i, j, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 264 | } else if (positions[i][j] == 3) { |
soapy12312 | 0:8b6686f2d4be | 265 | uLCD.filled_circle(i, j, 1, YELLOW); |
soapy12312 | 0:8b6686f2d4be | 266 | } |
soapy12312 | 0:8b6686f2d4be | 267 | } |
soapy12312 | 0:8b6686f2d4be | 268 | } |
soapy12312 | 0:8b6686f2d4be | 269 | |
soapy12312 | 0:8b6686f2d4be | 270 | uLCD.pixel(64, 108, BLACK); |
soapy12312 | 0:8b6686f2d4be | 271 | } |
soapy12312 | 0:8b6686f2d4be | 272 | }; |