Code for Player 2 of Rock Paper Scissors

Dependencies:   4DGL-uLCD-SE PinDetect SDFileSystem mbed wave_player

Committer:
pkulkarni34
Date:
Mon Oct 19 07:58:09 2015 +0000
Revision:
1:5841ff349aae
Parent:
0:75276caf1a37
Child:
2:54fafe349aa7
Commented Version 2; Date : 10/19/2015; Time: 3:57 AM;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pkulkarni34 0:75276caf1a37 1 //ECE 4180 Mini Project
pkulkarni34 0:75276caf1a37 2 //Prachi Kulkarni and Kendra Dodson
pkulkarni34 0:75276caf1a37 3
pkulkarni34 0:75276caf1a37 4 #include "mbed.h"
pkulkarni34 0:75276caf1a37 5 #include "uLCD_4DGL.h"
pkulkarni34 0:75276caf1a37 6 #include "SDFileSystem.h"
pkulkarni34 0:75276caf1a37 7 #include "wave_player.h"
pkulkarni34 0:75276caf1a37 8
pkulkarni34 0:75276caf1a37 9 SDFileSystem sd(p5, p6, p7, p8, "sd");
pkulkarni34 0:75276caf1a37 10 AnalogOut DACout(p18);
pkulkarni34 0:75276caf1a37 11 wave_player waver(&DACout); // Wave Player
pkulkarni34 0:75276caf1a37 12
pkulkarni34 0:75276caf1a37 13 //DigitalOut myled(LED1);
pkulkarni34 0:75276caf1a37 14 uLCD_4DGL lcd(p28, p27, p29); //uLCD
pkulkarni34 0:75276caf1a37 15 DigitalIn pb1(p17); //Pushbutton 1
pkulkarni34 0:75276caf1a37 16 DigitalIn pb2(p19); //Pushbutton 2
pkulkarni34 0:75276caf1a37 17 DigitalIn pb3(p20); //Pushbutton 3
pkulkarni34 0:75276caf1a37 18
pkulkarni34 0:75276caf1a37 19 PwmOut led1(p21); //led 1
pkulkarni34 0:75276caf1a37 20 PwmOut led2(p22); //led2
pkulkarni34 0:75276caf1a37 21 PwmOut led3(p23); //led3
pkulkarni34 0:75276caf1a37 22
pkulkarni34 0:75276caf1a37 23 //shiftbrite
pkulkarni34 0:75276caf1a37 24 DigitalOut latch(p15);
pkulkarni34 0:75276caf1a37 25 DigitalOut enable(p16);
pkulkarni34 0:75276caf1a37 26 SPI spi(p11, p12, p13);
pkulkarni34 0:75276caf1a37 27
pkulkarni34 0:75276caf1a37 28 //Choice
pkulkarni34 0:75276caf1a37 29 //Choice = 1 for rock
pkulkarni34 0:75276caf1a37 30 //Choice = 2 for paper
pkulkarni34 0:75276caf1a37 31 //Choice = 3 for scissors
pkulkarni34 1:5841ff349aae 32 int choice1 = 0; //Player 1's choice
pkulkarni34 1:5841ff349aae 33 int choice2 = 0; //Player 2's choice
pkulkarni34 0:75276caf1a37 34
pkulkarni34 0:75276caf1a37 35 //Points
pkulkarni34 1:5841ff349aae 36 int p1 = 0; //Player 1's points
pkulkarni34 1:5841ff349aae 37 int p2 = 0; //Player 2's points
pkulkarni34 0:75276caf1a37 38
pkulkarni34 1:5841ff349aae 39 //RGB function for Shiftbrite
pkulkarni34 0:75276caf1a37 40 void RGB_LED(int red, int green, int blue);
pkulkarni34 0:75276caf1a37 41 void RGB_LED(int red, int green, int blue)
pkulkarni34 0:75276caf1a37 42 {
pkulkarni34 0:75276caf1a37 43 unsigned int low_color=0;
pkulkarni34 0:75276caf1a37 44 unsigned int high_color=0;
pkulkarni34 0:75276caf1a37 45 high_color=(blue<<4)|((red&0x3C0)>>6);
pkulkarni34 0:75276caf1a37 46 low_color=(((red&0x3F)<<10)|(green));
pkulkarni34 0:75276caf1a37 47 spi.write(high_color);
pkulkarni34 0:75276caf1a37 48 spi.write(low_color);
pkulkarni34 0:75276caf1a37 49 latch=1;
pkulkarni34 0:75276caf1a37 50 latch=0;
pkulkarni34 0:75276caf1a37 51 }
pkulkarni34 0:75276caf1a37 52
pkulkarni34 0:75276caf1a37 53
pkulkarni34 0:75276caf1a37 54 int main() {
pkulkarni34 0:75276caf1a37 55 L1:
pkulkarni34 0:75276caf1a37 56 spi.format(16,0);
pkulkarni34 0:75276caf1a37 57 spi.frequency(500000);
pkulkarni34 0:75276caf1a37 58 enable=0;
pkulkarni34 0:75276caf1a37 59 latch=0;
pkulkarni34 0:75276caf1a37 60 pb1.mode(PullUp);
pkulkarni34 0:75276caf1a37 61 wait(0.001);
pkulkarni34 0:75276caf1a37 62 pb2.mode(PullUp);
pkulkarni34 0:75276caf1a37 63 wait(0.001);
pkulkarni34 0:75276caf1a37 64 pb3.mode(PullUp);
pkulkarni34 0:75276caf1a37 65 wait(0.001);
pkulkarni34 0:75276caf1a37 66
pkulkarni34 0:75276caf1a37 67 //Display
pkulkarni34 0:75276caf1a37 68 lcd.locate(0,0);
pkulkarni34 0:75276caf1a37 69 //lcd_mutex.lock();
pkulkarni34 0:75276caf1a37 70 lcd.printf("Rock Paper Scissor");
pkulkarni34 0:75276caf1a37 71 lcd.locate(0,4);
pkulkarni34 0:75276caf1a37 72 lcd.printf("Button 1 for Rocks");
pkulkarni34 0:75276caf1a37 73 lcd.locate(0,6);
pkulkarni34 0:75276caf1a37 74 lcd.printf("Button 2 for Paper");
pkulkarni34 0:75276caf1a37 75 lcd.locate(0,8);
pkulkarni34 0:75276caf1a37 76 lcd.printf("Button 3 for Scissors\n\n");
pkulkarni34 0:75276caf1a37 77 lcd.printf("Press 1 to continue");
pkulkarni34 0:75276caf1a37 78 wait(2);
pkulkarni34 0:75276caf1a37 79
pkulkarni34 0:75276caf1a37 80 while(1){
pkulkarni34 1:5841ff349aae 81 //If push button 1 is pressed, start the game!
pkulkarni34 0:75276caf1a37 82 if(pb1 != 1){
pkulkarni34 0:75276caf1a37 83 L3:
pkulkarni34 0:75276caf1a37 84 lcd.cls(); //Clear screen
pkulkarni34 0:75276caf1a37 85
pkulkarni34 1:5841ff349aae 86 //Tell player 1 that she/he has 5 seconds to chose between rock,paper and scissors
pkulkarni34 0:75276caf1a37 87 lcd.locate(0,4);
pkulkarni34 0:75276caf1a37 88 lcd.printf(" Player 1 \n\n\n");
pkulkarni34 0:75276caf1a37 89 lcd.printf("You have 5 seconds");
pkulkarni34 0:75276caf1a37 90 lcd.printf(" to choose\n");
pkulkarni34 0:75276caf1a37 91 lcd.printf(" an option!\n");
pkulkarni34 0:75276caf1a37 92 wait(2);
pkulkarni34 0:75276caf1a37 93
pkulkarni34 0:75276caf1a37 94
pkulkarni34 1:5841ff349aae 95 //Start timer for 5 seconds
pkulkarni34 0:75276caf1a37 96 int i;
pkulkarni34 0:75276caf1a37 97 int red = 1;
pkulkarni34 0:75276caf1a37 98 for(i = 5; i > -1 ; i--){
pkulkarni34 0:75276caf1a37 99 lcd.cls();
pkulkarni34 1:5841ff349aae 100 lcd.locate(4,4); //Place text in the center of the screen
pkulkarni34 1:5841ff349aae 101 lcd.text_width(8); //Set tet width
pkulkarni34 1:5841ff349aae 102 lcd.text_height(8); //Set text height
pkulkarni34 1:5841ff349aae 103 lcd.text_bold(ON); //Set text style to 'bold'
pkulkarni34 1:5841ff349aae 104 RGB_LED(red*25,0,0);//Increase intensity of light on shiftbrite as time decreases
pkulkarni34 0:75276caf1a37 105 red = red + 5;
pkulkarni34 1:5841ff349aae 106 lcd.printf("%d",i); //Display time left on LCD
pkulkarni34 0:75276caf1a37 107 wait(1);
pkulkarni34 1:5841ff349aae 108 //Press pushbutton 1 to choose rock
pkulkarni34 0:75276caf1a37 109 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 110 lcd.cls();
pkulkarni34 0:75276caf1a37 111 choice1 = 1;
pkulkarni34 0:75276caf1a37 112 lcd.printf("You chose rock!");
pkulkarni34 0:75276caf1a37 113 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 0:75276caf1a37 114 wait(2);
pkulkarni34 0:75276caf1a37 115 lcd.cls();
pkulkarni34 0:75276caf1a37 116 break;
pkulkarni34 0:75276caf1a37 117 }
pkulkarni34 1:5841ff349aae 118 //Press pushbutton 2 to choose paper
pkulkarni34 0:75276caf1a37 119 if(pb2 != 1) {
pkulkarni34 0:75276caf1a37 120 lcd.cls();
pkulkarni34 0:75276caf1a37 121 choice1 = 2;
pkulkarni34 0:75276caf1a37 122 lcd.printf("You chose paper!");
pkulkarni34 0:75276caf1a37 123 lcd.rectangle(40, 60, 80,100,WHITE);
pkulkarni34 0:75276caf1a37 124 wait(2);
pkulkarni34 0:75276caf1a37 125 lcd.cls();
pkulkarni34 0:75276caf1a37 126 break;
pkulkarni34 0:75276caf1a37 127 }
pkulkarni34 1:5841ff349aae 128 //Press pushbutton 3 to choose scissor
pkulkarni34 0:75276caf1a37 129 if(pb3 != 1) {
pkulkarni34 0:75276caf1a37 130 lcd.cls();
pkulkarni34 0:75276caf1a37 131 choice1 = 3;
pkulkarni34 0:75276caf1a37 132 lcd.printf("You chose scissors!");
pkulkarni34 0:75276caf1a37 133 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 134 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 135 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 136 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 0:75276caf1a37 137 wait(2);
pkulkarni34 0:75276caf1a37 138 lcd.cls();
pkulkarni34 0:75276caf1a37 139 break;
pkulkarni34 0:75276caf1a37 140 }
pkulkarni34 0:75276caf1a37 141 }
pkulkarni34 1:5841ff349aae 142 RGB_LED(0,0,0); // Reset shitbrite color
pkulkarni34 1:5841ff349aae 143
pkulkarni34 1:5841ff349aae 144 //If user doesn't choose an option, show "Time Out" message and restart game
pkulkarni34 1:5841ff349aae 145 if(i == -1){
pkulkarni34 0:75276caf1a37 146 lcd.cls();
pkulkarni34 0:75276caf1a37 147 lcd.printf("Your time is up");
pkulkarni34 0:75276caf1a37 148 wait(5);
pkulkarni34 1:5841ff349aae 149 goto L1; //Starts the game again
pkulkarni34 0:75276caf1a37 150 }
pkulkarni34 0:75276caf1a37 151
pkulkarni34 0:75276caf1a37 152 lcd.cls(); //Clear screen
pkulkarni34 0:75276caf1a37 153 wait(2);
pkulkarni34 0:75276caf1a37 154
pkulkarni34 1:5841ff349aae 155 //Check to see if Player 2 is ready to play
pkulkarni34 0:75276caf1a37 156 lcd.printf("Press 1 if P2 is ready");
pkulkarni34 1:5841ff349aae 157
pkulkarni34 1:5841ff349aae 158 //Start timer for player 2 if player 2 presses pushbutton 1
pkulkarni34 0:75276caf1a37 159 while(1){
pkulkarni34 0:75276caf1a37 160 if(pb1 != 1) break;
pkulkarni34 0:75276caf1a37 161 }
pkulkarni34 0:75276caf1a37 162 lcd.cls();
pkulkarni34 0:75276caf1a37 163 wait(1);
pkulkarni34 0:75276caf1a37 164
pkulkarni34 0:75276caf1a37 165 lcd.locate(0,4);
pkulkarni34 0:75276caf1a37 166 lcd.printf(" Player 2 \n\n\n");
pkulkarni34 0:75276caf1a37 167 lcd.printf("You have 5 seconds");
pkulkarni34 0:75276caf1a37 168 lcd.printf(" to choose\n");
pkulkarni34 0:75276caf1a37 169 lcd.printf(" an option!\n");
pkulkarni34 0:75276caf1a37 170 wait(5);
pkulkarni34 0:75276caf1a37 171
pkulkarni34 0:75276caf1a37 172
pkulkarni34 0:75276caf1a37 173
pkulkarni34 0:75276caf1a37 174 int j;
pkulkarni34 0:75276caf1a37 175 int blue = 1;
pkulkarni34 0:75276caf1a37 176 for(j = 5; j > -1 ; j--){
pkulkarni34 0:75276caf1a37 177 lcd.cls();
pkulkarni34 0:75276caf1a37 178 lcd.locate(4,4);
pkulkarni34 0:75276caf1a37 179 lcd.text_width(8);
pkulkarni34 0:75276caf1a37 180 lcd.text_height(8);
pkulkarni34 0:75276caf1a37 181 RGB_LED(0,0,blue*25);
pkulkarni34 0:75276caf1a37 182 blue = blue + 5;
pkulkarni34 0:75276caf1a37 183 lcd.printf("%d",j);
pkulkarni34 0:75276caf1a37 184 wait(1);
pkulkarni34 1:5841ff349aae 185
pkulkarni34 1:5841ff349aae 186 //Rock
pkulkarni34 0:75276caf1a37 187 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 188 lcd.cls();
pkulkarni34 0:75276caf1a37 189 choice2 = 1;
pkulkarni34 0:75276caf1a37 190 lcd.printf("You chose rock!");
pkulkarni34 0:75276caf1a37 191 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 0:75276caf1a37 192 wait(2);
pkulkarni34 0:75276caf1a37 193 lcd.cls();
pkulkarni34 0:75276caf1a37 194 break;
pkulkarni34 0:75276caf1a37 195 }
pkulkarni34 1:5841ff349aae 196 //Paper
pkulkarni34 0:75276caf1a37 197 if(pb2 != 1) {
pkulkarni34 0:75276caf1a37 198 lcd.cls();
pkulkarni34 0:75276caf1a37 199 choice2 = 2;
pkulkarni34 0:75276caf1a37 200 lcd.printf("You chose paper!");
pkulkarni34 0:75276caf1a37 201 lcd.rectangle(40, 60, 80,100,WHITE);
pkulkarni34 0:75276caf1a37 202 wait(2);
pkulkarni34 0:75276caf1a37 203 lcd.cls();
pkulkarni34 0:75276caf1a37 204 break;
pkulkarni34 0:75276caf1a37 205 }
pkulkarni34 1:5841ff349aae 206 //Scissors
pkulkarni34 0:75276caf1a37 207 if(pb3 != 1) {
pkulkarni34 0:75276caf1a37 208 lcd.cls();
pkulkarni34 0:75276caf1a37 209 choice2 = 3;
pkulkarni34 0:75276caf1a37 210 lcd.printf("You chose scissors!");
pkulkarni34 0:75276caf1a37 211 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 212 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 213 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 214 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 0:75276caf1a37 215 wait(2);
pkulkarni34 0:75276caf1a37 216 lcd.cls();
pkulkarni34 0:75276caf1a37 217 break;
pkulkarni34 0:75276caf1a37 218 }
pkulkarni34 0:75276caf1a37 219 }
pkulkarni34 1:5841ff349aae 220
pkulkarni34 1:5841ff349aae 221 //Time out message
pkulkarni34 0:75276caf1a37 222 if(j == -1){
pkulkarni34 0:75276caf1a37 223 lcd.cls();
pkulkarni34 0:75276caf1a37 224 lcd.printf("Your time is up");
pkulkarni34 0:75276caf1a37 225 wait(5);
pkulkarni34 0:75276caf1a37 226 goto L1;
pkulkarni34 0:75276caf1a37 227 }
pkulkarni34 0:75276caf1a37 228 RGB_LED(0,0,0);
pkulkarni34 0:75276caf1a37 229
pkulkarni34 0:75276caf1a37 230
pkulkarni34 1:5841ff349aae 231 //Check to see who won
pkulkarni34 1:5841ff349aae 232
pkulkarni34 1:5841ff349aae 233 //Case 1 : Both players choose same option
pkulkarni34 0:75276caf1a37 234 if(choice1 == 1 && choice2 == 1 ||
pkulkarni34 0:75276caf1a37 235 choice1== 2 && choice2 == 2 ||
pkulkarni34 0:75276caf1a37 236 choice1 == 3 && choice2 == 3 ) {
pkulkarni34 0:75276caf1a37 237 lcd.cls();
pkulkarni34 0:75276caf1a37 238 lcd.printf("It's a draw!");
pkulkarni34 0:75276caf1a37 239 wait(4);
pkulkarni34 0:75276caf1a37 240 lcd.cls();
pkulkarni34 0:75276caf1a37 241 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 242 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 243
pkulkarni34 0:75276caf1a37 244 while(1){
pkulkarni34 0:75276caf1a37 245 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 246 lcd.cls();
pkulkarni34 0:75276caf1a37 247 goto L3;
pkulkarni34 0:75276caf1a37 248 }
pkulkarni34 0:75276caf1a37 249 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 250 }
pkulkarni34 0:75276caf1a37 251 }
pkulkarni34 1:5841ff349aae 252 //Case 2:
pkulkarni34 1:5841ff349aae 253 //Player 1 : Rock
pkulkarni34 1:5841ff349aae 254 //Player 2 : Paper
pkulkarni34 0:75276caf1a37 255 else if(choice1 == 1 && choice2 == 2){
pkulkarni34 0:75276caf1a37 256
pkulkarni34 0:75276caf1a37 257 lcd.cls();
pkulkarni34 0:75276caf1a37 258 lcd.printf("Player 1 chose Rock\n");
pkulkarni34 0:75276caf1a37 259 lcd.printf("Player 2 chose Paper\n\n");
pkulkarni34 0:75276caf1a37 260
pkulkarni34 0:75276caf1a37 261 lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 262 lcd.rectangle(40, 60, 80,100,WHITE);
pkulkarni34 0:75276caf1a37 263 p2++;
pkulkarni34 0:75276caf1a37 264 wait(4);
pkulkarni34 0:75276caf1a37 265 lcd.cls();
pkulkarni34 0:75276caf1a37 266 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 267 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 268
pkulkarni34 0:75276caf1a37 269 while(1){
pkulkarni34 0:75276caf1a37 270 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 271 lcd.cls();
pkulkarni34 0:75276caf1a37 272 goto L3;
pkulkarni34 0:75276caf1a37 273 }
pkulkarni34 0:75276caf1a37 274 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 275 }
pkulkarni34 1:5841ff349aae 276 }}
pkulkarni34 1:5841ff349aae 277 //Case 3:
pkulkarni34 1:5841ff349aae 278 //Player 1 : Paper
pkulkarni34 1:5841ff349aae 279 //Player 2 : Rock
pkulkarni34 1:5841ff349aae 280 else if(choice2== 1 && choice1== 2){
pkulkarni34 0:75276caf1a37 281
pkulkarni34 0:75276caf1a37 282 lcd.cls();
pkulkarni34 0:75276caf1a37 283 lcd.printf("P1 chose Paper\n");
pkulkarni34 0:75276caf1a37 284 lcd.printf("P2 chose Rock\n\n");
pkulkarni34 0:75276caf1a37 285 lcd.printf("P1 wins!");
pkulkarni34 0:75276caf1a37 286 lcd.rectangle(40, 60, 80,100,WHITE);
pkulkarni34 0:75276caf1a37 287 p1++;
pkulkarni34 0:75276caf1a37 288 wait(5);
pkulkarni34 0:75276caf1a37 289 lcd.cls();
pkulkarni34 0:75276caf1a37 290 lcd.printf("P1 Score : %d\n",p1);
pkulkarni34 0:75276caf1a37 291 lcd.printf("P2 Score : %d\n\n",p2);
pkulkarni34 0:75276caf1a37 292 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 293 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 294
pkulkarni34 0:75276caf1a37 295 while(1){
pkulkarni34 0:75276caf1a37 296 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 297 lcd.cls();
pkulkarni34 0:75276caf1a37 298 goto L3;
pkulkarni34 0:75276caf1a37 299 }
pkulkarni34 0:75276caf1a37 300 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 301 }
pkulkarni34 0:75276caf1a37 302 }
pkulkarni34 0:75276caf1a37 303
pkulkarni34 1:5841ff349aae 304 //Case 4:
pkulkarni34 1:5841ff349aae 305 //Player 1 : Paper
pkulkarni34 1:5841ff349aae 306 //Player 2 : Scissor
pkulkarni34 0:75276caf1a37 307
pkulkarni34 1:5841ff349aae 308 else if(choice1 == 2 && choice2 == 3){
pkulkarni34 0:75276caf1a37 309
pkulkarni34 0:75276caf1a37 310 lcd.cls();
pkulkarni34 0:75276caf1a37 311 lcd.printf("P1 chose Paper\n");
pkulkarni34 0:75276caf1a37 312 lcd.printf("P2 chose Scissors\n\n");
pkulkarni34 0:75276caf1a37 313
pkulkarni34 0:75276caf1a37 314 lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 315 p2++;
pkulkarni34 0:75276caf1a37 316 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 317 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 318 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 319 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 0:75276caf1a37 320 wait(5);
pkulkarni34 0:75276caf1a37 321 lcd.cls();
pkulkarni34 0:75276caf1a37 322 lcd.printf("P1 Score : %d\n",p1);
pkulkarni34 0:75276caf1a37 323 lcd.printf("P2 Score : %d\n\n",p2);
pkulkarni34 0:75276caf1a37 324 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 325 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 326
pkulkarni34 0:75276caf1a37 327 while(1){
pkulkarni34 0:75276caf1a37 328 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 329 lcd.cls();
pkulkarni34 0:75276caf1a37 330 goto L3;
pkulkarni34 0:75276caf1a37 331 }
pkulkarni34 0:75276caf1a37 332 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 333 }
pkulkarni34 0:75276caf1a37 334 }
pkulkarni34 1:5841ff349aae 335 //Case 5:
pkulkarni34 1:5841ff349aae 336 //Player 1 : Scissor
pkulkarni34 1:5841ff349aae 337 //Player 2 : Paper
pkulkarni34 0:75276caf1a37 338 else if(choice1 == 3 && choice2 == 2){
pkulkarni34 0:75276caf1a37 339
pkulkarni34 0:75276caf1a37 340 lcd.cls();
pkulkarni34 0:75276caf1a37 341
pkulkarni34 0:75276caf1a37 342 lcd.printf("P1 chose Scissors\n");
pkulkarni34 0:75276caf1a37 343 lcd.printf("P2 chose Paper\n\n");
pkulkarni34 0:75276caf1a37 344
pkulkarni34 0:75276caf1a37 345 lcd.printf("P1 wins!");
pkulkarni34 0:75276caf1a37 346 p1++;
pkulkarni34 0:75276caf1a37 347 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 348 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 349 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 350 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 0:75276caf1a37 351 wait(5);
pkulkarni34 0:75276caf1a37 352 lcd.cls();
pkulkarni34 0:75276caf1a37 353 lcd.printf("P1 Score : %d\n",p1);
pkulkarni34 0:75276caf1a37 354 lcd.printf("P2 Score : %d\n\n",p2);
pkulkarni34 0:75276caf1a37 355 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 356 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 357
pkulkarni34 0:75276caf1a37 358 while(1){
pkulkarni34 0:75276caf1a37 359 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 360 lcd.cls();
pkulkarni34 0:75276caf1a37 361 goto L3;
pkulkarni34 0:75276caf1a37 362 }
pkulkarni34 0:75276caf1a37 363 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 364 }
pkulkarni34 0:75276caf1a37 365 }
pkulkarni34 1:5841ff349aae 366 //Case 6:
pkulkarni34 1:5841ff349aae 367 //Player 1 : Rock
pkulkarni34 1:5841ff349aae 368 //Player 2 : Scissors
pkulkarni34 0:75276caf1a37 369 else if(choice1 == 1 && choice2 == 3){
pkulkarni34 0:75276caf1a37 370
pkulkarni34 0:75276caf1a37 371 lcd.cls();
pkulkarni34 0:75276caf1a37 372 lcd.printf("P1 chose Rock\n");
pkulkarni34 0:75276caf1a37 373 lcd.printf("P2 chose Scissors\n\n");
pkulkarni34 0:75276caf1a37 374
pkulkarni34 0:75276caf1a37 375 lcd.printf("P1 wins!");
pkulkarni34 0:75276caf1a37 376 p1++;
pkulkarni34 0:75276caf1a37 377 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 0:75276caf1a37 378 wait(5);
pkulkarni34 0:75276caf1a37 379 lcd.cls();
pkulkarni34 0:75276caf1a37 380 lcd.printf("P1 Score : %d\n",p1);
pkulkarni34 0:75276caf1a37 381 lcd.printf("P2 Score : %d\n\n",p2);
pkulkarni34 0:75276caf1a37 382 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 383 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 384
pkulkarni34 0:75276caf1a37 385 while(1){
pkulkarni34 0:75276caf1a37 386 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 387 lcd.cls();
pkulkarni34 0:75276caf1a37 388 goto L3;
pkulkarni34 0:75276caf1a37 389 }
pkulkarni34 0:75276caf1a37 390 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 391 }
pkulkarni34 0:75276caf1a37 392 }
pkulkarni34 1:5841ff349aae 393 //Case 7:
pkulkarni34 1:5841ff349aae 394 //Player 1 : Scissors
pkulkarni34 1:5841ff349aae 395 //Player 2 : Rock
pkulkarni34 0:75276caf1a37 396
pkulkarni34 1:5841ff349aae 397 else if(choice1 == 3 && choice2 == 1){
pkulkarni34 0:75276caf1a37 398
pkulkarni34 0:75276caf1a37 399 lcd.cls();
pkulkarni34 0:75276caf1a37 400 lcd.printf("P1 chose Scissors\n");
pkulkarni34 0:75276caf1a37 401 lcd.printf("P2 chose Rock\n\n");
pkulkarni34 0:75276caf1a37 402
pkulkarni34 0:75276caf1a37 403 lcd.printf("P2 wins!");
pkulkarni34 0:75276caf1a37 404 p2++;
pkulkarni34 0:75276caf1a37 405 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 0:75276caf1a37 406 wait(5);
pkulkarni34 0:75276caf1a37 407 lcd.cls();
pkulkarni34 0:75276caf1a37 408 lcd.printf("P1 Score : %d\n",p1);
pkulkarni34 0:75276caf1a37 409 lcd.printf("P2 Score : %d\n\n",p2);
pkulkarni34 0:75276caf1a37 410 lcd.printf("Press 1 to continue\n\n");
pkulkarni34 0:75276caf1a37 411 lcd.printf("Press 2 to end\n\n");
pkulkarni34 0:75276caf1a37 412
pkulkarni34 0:75276caf1a37 413 while(1){
pkulkarni34 0:75276caf1a37 414 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 415 lcd.cls();
pkulkarni34 0:75276caf1a37 416 goto L3;
pkulkarni34 0:75276caf1a37 417 }
pkulkarni34 0:75276caf1a37 418 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 419 }
pkulkarni34 0:75276caf1a37 420 }
pkulkarni34 0:75276caf1a37 421
pkulkarni34 0:75276caf1a37 422 }
pkulkarni34 0:75276caf1a37 423
pkulkarni34 0:75276caf1a37 424
pkulkarni34 0:75276caf1a37 425
pkulkarni34 0:75276caf1a37 426
pkulkarni34 0:75276caf1a37 427
pkulkarni34 0:75276caf1a37 428 // Code to play a wave file
pkulkarni34 0:75276caf1a37 429 /* FILE *wave_file;
pkulkarni34 0:75276caf1a37 430 printf("\n\n\nHello, wave world!\n");
pkulkarni34 0:75276caf1a37 431 wave_file=fopen("/sd/mydir/HG.wav","r");
pkulkarni34 0:75276caf1a37 432 waver.play(wave_file);
pkulkarni34 0:75276caf1a37 433 wait(5);
pkulkarni34 0:75276caf1a37 434 printf("ok!!");
pkulkarni34 0:75276caf1a37 435 fclose(wave_file);
pkulkarni34 0:75276caf1a37 436 */
pkulkarni34 0:75276caf1a37 437
pkulkarni34 1:5841ff349aae 438
pkulkarni34 1:5841ff349aae 439 //If game ends :
pkulkarni34 0:75276caf1a37 440 L2:
pkulkarni34 0:75276caf1a37 441 lcd.cls();
pkulkarni34 0:75276caf1a37 442
pkulkarni34 0:75276caf1a37 443
pkulkarni34 0:75276caf1a37 444 //Create animation of two bouncing balls
pkulkarni34 0:75276caf1a37 445 float fx=50.0,fy=21.0,vx=5.0,vy=0.4,vx2=5,fx2=40.0;
pkulkarni34 0:75276caf1a37 446 int x=50,y=21,radius=4;
pkulkarni34 0:75276caf1a37 447 int x2 = 30, y2 = 10;
pkulkarni34 0:75276caf1a37 448 //draw walls
pkulkarni34 0:75276caf1a37 449 wait(2);
pkulkarni34 1:5841ff349aae 450 //If Player 1's score is higher than Player 2's score
pkulkarni34 0:75276caf1a37 451 if(p1 > p2)
pkulkarni34 0:75276caf1a37 452 //lcd.printf("Player 1 wins!");
pkulkarni34 0:75276caf1a37 453 lcd.text_string("Player 1 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 1:5841ff349aae 454 //If Player 1's score is equal to Player 2's score
pkulkarni34 0:75276caf1a37 455 else if(p1 == p2)
pkulkarni34 0:75276caf1a37 456 //lcd.printf("It's a draw!");
pkulkarni34 0:75276caf1a37 457 lcd.text_string("It's a draw!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 1:5841ff349aae 458 //If Player 2's score is higher than Player 1's score
pkulkarni34 0:75276caf1a37 459 else if(p2 > p1)
pkulkarni34 0:75276caf1a37 460 //lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 461 lcd.text_string("Player 2 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 462
pkulkarni34 0:75276caf1a37 463
pkulkarni34 0:75276caf1a37 464 for (int i=0; i<100; i++) {
pkulkarni34 0:75276caf1a37 465 //draw ball
pkulkarni34 0:75276caf1a37 466 //lcd.cls();
pkulkarni34 0:75276caf1a37 467 if(p1 > p2)
pkulkarni34 0:75276caf1a37 468 //lcd.printf("Player 1 wins!");
pkulkarni34 0:75276caf1a37 469 lcd.text_string("Player 1 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 470
pkulkarni34 0:75276caf1a37 471 else if(p1 == p2)
pkulkarni34 0:75276caf1a37 472 //lcd.printf("It's a draw!");
pkulkarni34 0:75276caf1a37 473 lcd.text_string("It's a draw!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 474
pkulkarni34 0:75276caf1a37 475 else if(p2 > p1)
pkulkarni34 0:75276caf1a37 476 //lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 477 lcd.text_string("Player 2 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 478
pkulkarni34 0:75276caf1a37 479 lcd.filled_circle(x, y, radius, RED);
pkulkarni34 0:75276caf1a37 480 lcd.filled_circle(x2,y2,radius,BLUE);
pkulkarni34 0:75276caf1a37 481 RGB_LED(x,y,x);
pkulkarni34 0:75276caf1a37 482 //bounce off edge walls and slow down a bit
pkulkarni34 0:75276caf1a37 483 if ((x<=radius+1) || (x>=126-radius)) vx = -.90*vx;
pkulkarni34 0:75276caf1a37 484 if ((y<=radius+1) || (y>=126-radius)) vy = -.90*vy;
pkulkarni34 0:75276caf1a37 485 if ((x2<=radius+1) || (x2>=126-radius)) vx2 = -.90*vx2;
pkulkarni34 0:75276caf1a37 486 if ((y2<=radius+1) || (y2>=126-radius)) vy = -.90*vy;
pkulkarni34 0:75276caf1a37 487 //erase old ball location
pkulkarni34 0:75276caf1a37 488 lcd.filled_circle(x, y, radius, BLACK);
pkulkarni34 0:75276caf1a37 489 lcd.filled_circle(x2, y2, radius, BLACK);
pkulkarni34 0:75276caf1a37 490 //move ball
pkulkarni34 0:75276caf1a37 491 fx=fx+vx;
pkulkarni34 0:75276caf1a37 492 fx2=fx2+vx2;
pkulkarni34 0:75276caf1a37 493 fy=fy+vy;
pkulkarni34 0:75276caf1a37 494 x=(int)fx;
pkulkarni34 0:75276caf1a37 495 y=(int)fy;
pkulkarni34 0:75276caf1a37 496 x2=(int)fx2;
pkulkarni34 0:75276caf1a37 497 y2=(int)fy;
pkulkarni34 0:75276caf1a37 498 }
pkulkarni34 0:75276caf1a37 499 wait(3);
pkulkarni34 0:75276caf1a37 500 lcd.cls();
pkulkarni34 0:75276caf1a37 501 lcd.printf("End!");
pkulkarni34 0:75276caf1a37 502 wait(3);
pkulkarni34 0:75276caf1a37 503 lcd.cls();
pkulkarni34 0:75276caf1a37 504 }