Code for Player 1 of Rock Paper Scissors Game

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

Committer:
pkulkarni34
Date:
Thu Oct 22 01:16:27 2015 +0000
Revision:
2:d6ccc8dae85b
Parent:
1:5841ff349aae
Child:
3:154b62d481b7
Player 1; It works!; Date: 10/21/2015; Time: 9:!6 PM

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 2:d6ccc8dae85b 8 //#include "beep.h"
pkulkarni34 2:d6ccc8dae85b 9
pkulkarni34 2:d6ccc8dae85b 10 DigitalOut myled(LED1);
pkulkarni34 2:d6ccc8dae85b 11 DigitalOut myled2(LED2);
pkulkarni34 2:d6ccc8dae85b 12 DigitalOut myled3(LED3);
pkulkarni34 2:d6ccc8dae85b 13
pkulkarni34 0:75276caf1a37 14 SDFileSystem sd(p5, p6, p7, p8, "sd");
pkulkarni34 2:d6ccc8dae85b 15 //AnalogOut DACout(p18);
pkulkarni34 2:d6ccc8dae85b 16 //Beep DACout(p18);
pkulkarni34 0:75276caf1a37 17 AnalogOut DACout(p18);
pkulkarni34 0:75276caf1a37 18 wave_player waver(&DACout); // Wave Player
pkulkarni34 0:75276caf1a37 19
pkulkarni34 0:75276caf1a37 20 //DigitalOut myled(LED1);
pkulkarni34 0:75276caf1a37 21 uLCD_4DGL lcd(p28, p27, p29); //uLCD
pkulkarni34 0:75276caf1a37 22 DigitalIn pb1(p17); //Pushbutton 1
pkulkarni34 0:75276caf1a37 23 DigitalIn pb2(p19); //Pushbutton 2
pkulkarni34 0:75276caf1a37 24 DigitalIn pb3(p20); //Pushbutton 3
pkulkarni34 0:75276caf1a37 25
pkulkarni34 2:d6ccc8dae85b 26 //PwmOut led1(p21); //led 1
pkulkarni34 2:d6ccc8dae85b 27 //PwmOut led2(p22); //led2
pkulkarni34 2:d6ccc8dae85b 28 //PwmOut led3(p23); //led3
pkulkarni34 0:75276caf1a37 29
pkulkarni34 0:75276caf1a37 30 //shiftbrite
pkulkarni34 0:75276caf1a37 31 DigitalOut latch(p15);
pkulkarni34 0:75276caf1a37 32 DigitalOut enable(p16);
pkulkarni34 0:75276caf1a37 33 SPI spi(p11, p12, p13);
pkulkarni34 0:75276caf1a37 34
pkulkarni34 0:75276caf1a37 35 //Choice
pkulkarni34 0:75276caf1a37 36 //Choice = 1 for rock
pkulkarni34 0:75276caf1a37 37 //Choice = 2 for paper
pkulkarni34 0:75276caf1a37 38 //Choice = 3 for scissors
pkulkarni34 2:d6ccc8dae85b 39 char choice1; //Player 1's choice
pkulkarni34 2:d6ccc8dae85b 40 char choice2; //Player 2's choice
pkulkarni34 0:75276caf1a37 41
pkulkarni34 0:75276caf1a37 42 //Points
pkulkarni34 1:5841ff349aae 43 int p1 = 0; //Player 1's points
pkulkarni34 1:5841ff349aae 44 int p2 = 0; //Player 2's points
pkulkarni34 0:75276caf1a37 45
pkulkarni34 1:5841ff349aae 46 //RGB function for Shiftbrite
pkulkarni34 0:75276caf1a37 47 void RGB_LED(int red, int green, int blue);
pkulkarni34 0:75276caf1a37 48 void RGB_LED(int red, int green, int blue)
pkulkarni34 0:75276caf1a37 49 {
pkulkarni34 0:75276caf1a37 50 unsigned int low_color=0;
pkulkarni34 0:75276caf1a37 51 unsigned int high_color=0;
pkulkarni34 0:75276caf1a37 52 high_color=(blue<<4)|((red&0x3C0)>>6);
pkulkarni34 0:75276caf1a37 53 low_color=(((red&0x3F)<<10)|(green));
pkulkarni34 0:75276caf1a37 54 spi.write(high_color);
pkulkarni34 0:75276caf1a37 55 spi.write(low_color);
pkulkarni34 0:75276caf1a37 56 latch=1;
pkulkarni34 0:75276caf1a37 57 latch=0;
pkulkarni34 0:75276caf1a37 58 }
pkulkarni34 2:d6ccc8dae85b 59 int i;
pkulkarni34 2:d6ccc8dae85b 60 //Serial
pkulkarni34 2:d6ccc8dae85b 61 Serial player1(p9,p10);
pkulkarni34 0:75276caf1a37 62
pkulkarni34 0:75276caf1a37 63 int main() {
pkulkarni34 2:d6ccc8dae85b 64
pkulkarni34 2:d6ccc8dae85b 65 //Serial
pkulkarni34 2:d6ccc8dae85b 66 player1.baud(9600);
pkulkarni34 2:d6ccc8dae85b 67
pkulkarni34 0:75276caf1a37 68 spi.format(16,0);
pkulkarni34 0:75276caf1a37 69 spi.frequency(500000);
pkulkarni34 0:75276caf1a37 70 enable=0;
pkulkarni34 0:75276caf1a37 71 latch=0;
pkulkarni34 0:75276caf1a37 72 pb1.mode(PullUp);
pkulkarni34 0:75276caf1a37 73 wait(0.001);
pkulkarni34 0:75276caf1a37 74 pb2.mode(PullUp);
pkulkarni34 0:75276caf1a37 75 wait(0.001);
pkulkarni34 0:75276caf1a37 76 pb3.mode(PullUp);
pkulkarni34 0:75276caf1a37 77 wait(0.001);
pkulkarni34 0:75276caf1a37 78
pkulkarni34 0:75276caf1a37 79 //Display
pkulkarni34 2:d6ccc8dae85b 80
pkulkarni34 2:d6ccc8dae85b 81 lcd.locate(1,2);
pkulkarni34 2:d6ccc8dae85b 82 //Screen 1 shows the name of the game
pkulkarni34 2:d6ccc8dae85b 83 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 84 lcd.color(BLUE); //Set font color to blue
pkulkarni34 2:d6ccc8dae85b 85 lcd.text_bold(ON); //Bold the text
pkulkarni34 2:d6ccc8dae85b 86 lcd.text_width(2);
pkulkarni34 2:d6ccc8dae85b 87 lcd.text_height(2);
pkulkarni34 2:d6ccc8dae85b 88 lcd.printf(" Rock\n");
pkulkarni34 2:d6ccc8dae85b 89 lcd.printf(" Paper\n\n");
pkulkarni34 2:d6ccc8dae85b 90 lcd.printf(" Scissor\n\n");
pkulkarni34 2:d6ccc8dae85b 91 //DACout.beep(1000,0.5);
pkulkarni34 2:d6ccc8dae85b 92 wait(5);
pkulkarni34 2:d6ccc8dae85b 93
pkulkarni34 2:d6ccc8dae85b 94 //Screen 2 shows pushbutton options
pkulkarni34 2:d6ccc8dae85b 95 L1:
pkulkarni34 2:d6ccc8dae85b 96 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 97 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 98 lcd.color(GREEN); //Set font color to green
pkulkarni34 2:d6ccc8dae85b 99 lcd.locate(0,2);
pkulkarni34 2:d6ccc8dae85b 100 lcd.printf(" Button Options\n\n");
pkulkarni34 2:d6ccc8dae85b 101 lcd.locate(0,5);
pkulkarni34 2:d6ccc8dae85b 102 lcd.text_underline(OFF);
pkulkarni34 2:d6ccc8dae85b 103 lcd.printf(" 1 for Rocks");
pkulkarni34 2:d6ccc8dae85b 104 lcd.locate(0,7);
pkulkarni34 2:d6ccc8dae85b 105 lcd.printf(" 2 for Paper");
pkulkarni34 2:d6ccc8dae85b 106 lcd.locate(0,9);
pkulkarni34 2:d6ccc8dae85b 107 lcd.printf(" 3 for Scissors\n\n\n");
pkulkarni34 2:d6ccc8dae85b 108 lcd.text_bold(ON); //Bold the text
pkulkarni34 2:d6ccc8dae85b 109 lcd.printf(" Press 1 to start!");
pkulkarni34 2:d6ccc8dae85b 110 wait(1);
pkulkarni34 0:75276caf1a37 111
pkulkarni34 0:75276caf1a37 112 while(1){
pkulkarni34 1:5841ff349aae 113 //If push button 1 is pressed, start the game!
pkulkarni34 0:75276caf1a37 114 if(pb1 != 1){
pkulkarni34 2:d6ccc8dae85b 115
pkulkarni34 2:d6ccc8dae85b 116 //Play button select
pkulkarni34 2:d6ccc8dae85b 117 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 118 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 119 wave_file=fopen("/sd/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 120 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 121 wait(1);
pkulkarni34 2:d6ccc8dae85b 122 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 123 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 124
pkulkarni34 0:75276caf1a37 125 L3:
pkulkarni34 0:75276caf1a37 126 lcd.cls(); //Clear screen
pkulkarni34 2:d6ccc8dae85b 127 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 1:5841ff349aae 128 //Tell player 1 that she/he has 5 seconds to chose between rock,paper and scissors
pkulkarni34 0:75276caf1a37 129 lcd.locate(0,4);
pkulkarni34 2:d6ccc8dae85b 130 lcd.color(BLUE); //Set font color to yellow
pkulkarni34 0:75276caf1a37 131 lcd.printf(" Player 1 \n\n\n");
pkulkarni34 2:d6ccc8dae85b 132 lcd.locate(0,6);
pkulkarni34 2:d6ccc8dae85b 133 lcd.color(GREEN); //Set font color to green
pkulkarni34 0:75276caf1a37 134 lcd.printf("You have 5 seconds");
pkulkarni34 0:75276caf1a37 135 lcd.printf(" to choose\n");
pkulkarni34 0:75276caf1a37 136 lcd.printf(" an option!\n");
pkulkarni34 2:d6ccc8dae85b 137 wait(5);
pkulkarni34 0:75276caf1a37 138
pkulkarni34 0:75276caf1a37 139
pkulkarni34 1:5841ff349aae 140 //Start timer for 5 seconds
pkulkarni34 2:d6ccc8dae85b 141 i = 5;;
pkulkarni34 0:75276caf1a37 142 int red = 1;
pkulkarni34 2:d6ccc8dae85b 143 //for(i = 5; i > -1 ; i--){
pkulkarni34 2:d6ccc8dae85b 144 while(i > -1){
pkulkarni34 2:d6ccc8dae85b 145
pkulkarni34 0:75276caf1a37 146 lcd.cls();
pkulkarni34 1:5841ff349aae 147 lcd.locate(4,4); //Place text in the center of the screen
pkulkarni34 1:5841ff349aae 148 lcd.text_width(8); //Set tet width
pkulkarni34 1:5841ff349aae 149 lcd.text_height(8); //Set text height
pkulkarni34 1:5841ff349aae 150 lcd.text_bold(ON); //Set text style to 'bold'
pkulkarni34 1:5841ff349aae 151 RGB_LED(red*25,0,0);//Increase intensity of light on shiftbrite as time decreases
pkulkarni34 0:75276caf1a37 152 red = red + 5;
pkulkarni34 1:5841ff349aae 153 lcd.printf("%d",i); //Display time left on LCD
pkulkarni34 0:75276caf1a37 154 wait(1);
pkulkarni34 1:5841ff349aae 155 //Press pushbutton 1 to choose rock
pkulkarni34 0:75276caf1a37 156 if(pb1 != 1) {
pkulkarni34 2:d6ccc8dae85b 157
pkulkarni34 0:75276caf1a37 158 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 159 choice1 = 'R';
pkulkarni34 2:d6ccc8dae85b 160 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 161 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 162 lcd.printf(" You chose rock");
pkulkarni34 2:d6ccc8dae85b 163
pkulkarni34 2:d6ccc8dae85b 164 //Play button select
pkulkarni34 2:d6ccc8dae85b 165 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 166 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 167 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 168 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 169 wait(1);
pkulkarni34 2:d6ccc8dae85b 170 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 171 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 172
pkulkarni34 0:75276caf1a37 173 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 2:d6ccc8dae85b 174 wait(3);
pkulkarni34 0:75276caf1a37 175 lcd.cls();
pkulkarni34 0:75276caf1a37 176 break;
pkulkarni34 0:75276caf1a37 177 }
pkulkarni34 1:5841ff349aae 178 //Press pushbutton 2 to choose paper
pkulkarni34 2:d6ccc8dae85b 179 else if(pb2 != 1) {
pkulkarni34 0:75276caf1a37 180 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 181 choice1 = 'P';
pkulkarni34 2:d6ccc8dae85b 182 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 183
pkulkarni34 2:d6ccc8dae85b 184 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 185 lcd.printf(" You chose paper");
pkulkarni34 2:d6ccc8dae85b 186
pkulkarni34 2:d6ccc8dae85b 187 //Play button select
pkulkarni34 2:d6ccc8dae85b 188 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 189 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 190 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 191 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 192
pkulkarni34 2:d6ccc8dae85b 193 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 194 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 195
pkulkarni34 2:d6ccc8dae85b 196 lcd.filled_rectangle(50, 45, 80,90,WHITE);
pkulkarni34 2:d6ccc8dae85b 197 wait(3);
pkulkarni34 0:75276caf1a37 198 lcd.cls();
pkulkarni34 0:75276caf1a37 199 break;
pkulkarni34 0:75276caf1a37 200 }
pkulkarni34 1:5841ff349aae 201 //Press pushbutton 3 to choose scissor
pkulkarni34 2:d6ccc8dae85b 202 else if(pb3 != 1) {
pkulkarni34 0:75276caf1a37 203 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 204 choice1 = 'S';
pkulkarni34 2:d6ccc8dae85b 205 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 206 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 207 lcd.printf("You chose scissors");
pkulkarni34 2:d6ccc8dae85b 208 //Play button select
pkulkarni34 2:d6ccc8dae85b 209 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 210 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 211 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 212 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 213 wait(1);
pkulkarni34 2:d6ccc8dae85b 214 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 215 fclose(wave_file);
pkulkarni34 0:75276caf1a37 216 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 217 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 218 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 219 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 2:d6ccc8dae85b 220 wait(3);
pkulkarni34 0:75276caf1a37 221 lcd.cls();
pkulkarni34 0:75276caf1a37 222 break;
pkulkarni34 0:75276caf1a37 223 }
pkulkarni34 2:d6ccc8dae85b 224 i--;
pkulkarni34 2:d6ccc8dae85b 225
pkulkarni34 0:75276caf1a37 226 }
pkulkarni34 2:d6ccc8dae85b 227
pkulkarni34 2:d6ccc8dae85b 228 RGB_LED(0,0,0); // Reset shiftbrite color
pkulkarni34 2:d6ccc8dae85b 229
pkulkarni34 2:d6ccc8dae85b 230 //-------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 2:d6ccc8dae85b 231 // TIME-OUT
pkulkarni34 2:d6ccc8dae85b 232 //------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 1:5841ff349aae 233
pkulkarni34 1:5841ff349aae 234 //If user doesn't choose an option, show "Time Out" message and restart game
pkulkarni34 1:5841ff349aae 235 if(i == -1){
pkulkarni34 0:75276caf1a37 236 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 237 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 238 lcd.locate(0,5);
pkulkarni34 2:d6ccc8dae85b 239 lcd.color(RED);
pkulkarni34 2:d6ccc8dae85b 240 lcd.printf(" Your time is up!");
pkulkarni34 2:d6ccc8dae85b 241 lcd.color(GREEN);
pkulkarni34 2:d6ccc8dae85b 242 //Play time up tune
pkulkarni34 2:d6ccc8dae85b 243 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 244 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 245 wave_file=fopen("/sd/mydir/timeup.wav","r");
pkulkarni34 2:d6ccc8dae85b 246 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 247
pkulkarni34 2:d6ccc8dae85b 248 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 249 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 250 wait(3);
pkulkarni34 1:5841ff349aae 251 goto L1; //Starts the game again
pkulkarni34 0:75276caf1a37 252 }
pkulkarni34 0:75276caf1a37 253
pkulkarni34 2:d6ccc8dae85b 254 //--------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 2:d6ccc8dae85b 255
pkulkarni34 2:d6ccc8dae85b 256
pkulkarni34 2:d6ccc8dae85b 257
pkulkarni34 2:d6ccc8dae85b 258 // lcd.cls(); //Clear screen
pkulkarni34 2:d6ccc8dae85b 259 // wait(2);
pkulkarni34 2:d6ccc8dae85b 260
pkulkarni34 2:d6ccc8dae85b 261 /*
pkulkarni34 2:d6ccc8dae85b 262 //--------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 2:d6ccc8dae85b 263 //------------------------------- PLAYER 2 --------------------------------------------------------------------------------------
pkulkarni34 2:d6ccc8dae85b 264 //-------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 0:75276caf1a37 265
pkulkarni34 1:5841ff349aae 266 //Check to see if Player 2 is ready to play
pkulkarni34 2:d6ccc8dae85b 267 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 268 lcd.locate(0,5);
pkulkarni34 2:d6ccc8dae85b 269 lcd.printf(" Press 1 if P2\n\n is ready");
pkulkarni34 1:5841ff349aae 270
pkulkarni34 1:5841ff349aae 271 //Start timer for player 2 if player 2 presses pushbutton 1
pkulkarni34 0:75276caf1a37 272 while(1){
pkulkarni34 2:d6ccc8dae85b 273 if(pb1 != 1)
pkulkarni34 2:d6ccc8dae85b 274 { //Play button select
pkulkarni34 2:d6ccc8dae85b 275 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 276 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 277 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 278 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 279
pkulkarni34 2:d6ccc8dae85b 280 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 281 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 282 break;
pkulkarni34 2:d6ccc8dae85b 283 }
pkulkarni34 0:75276caf1a37 284 }
pkulkarni34 0:75276caf1a37 285 lcd.cls();
pkulkarni34 0:75276caf1a37 286 wait(1);
pkulkarni34 0:75276caf1a37 287
pkulkarni34 2:d6ccc8dae85b 288 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 289 //Tell player 1 that she/he has 5 seconds to chose between rock,paper and scissors
pkulkarni34 0:75276caf1a37 290 lcd.locate(0,4);
pkulkarni34 2:d6ccc8dae85b 291 lcd.color(BLUE); //Set font color to yellow
pkulkarni34 0:75276caf1a37 292 lcd.printf(" Player 2 \n\n\n");
pkulkarni34 2:d6ccc8dae85b 293 lcd.locate(0,6);
pkulkarni34 2:d6ccc8dae85b 294 lcd.color(GREEN); //Set font color to green
pkulkarni34 0:75276caf1a37 295 lcd.printf("You have 5 seconds");
pkulkarni34 0:75276caf1a37 296 lcd.printf(" to choose\n");
pkulkarni34 0:75276caf1a37 297 lcd.printf(" an option!\n");
pkulkarni34 2:d6ccc8dae85b 298 wait(4);
pkulkarni34 2:d6ccc8dae85b 299
pkulkarni34 0:75276caf1a37 300
pkulkarni34 0:75276caf1a37 301
pkulkarni34 0:75276caf1a37 302
pkulkarni34 0:75276caf1a37 303 int j;
pkulkarni34 0:75276caf1a37 304 int blue = 1;
pkulkarni34 0:75276caf1a37 305 for(j = 5; j > -1 ; j--){
pkulkarni34 2:d6ccc8dae85b 306
pkulkarni34 0:75276caf1a37 307 lcd.cls();
pkulkarni34 0:75276caf1a37 308 lcd.locate(4,4);
pkulkarni34 0:75276caf1a37 309 lcd.text_width(8);
pkulkarni34 0:75276caf1a37 310 lcd.text_height(8);
pkulkarni34 0:75276caf1a37 311 RGB_LED(0,0,blue*25);
pkulkarni34 0:75276caf1a37 312 blue = blue + 5;
pkulkarni34 0:75276caf1a37 313 lcd.printf("%d",j);
pkulkarni34 0:75276caf1a37 314 wait(1);
pkulkarni34 1:5841ff349aae 315
pkulkarni34 1:5841ff349aae 316 //Rock
pkulkarni34 0:75276caf1a37 317 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 318 lcd.cls();
pkulkarni34 0:75276caf1a37 319 choice2 = 1;
pkulkarni34 2:d6ccc8dae85b 320 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 321 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 322 lcd.printf(" You chose rock!");
pkulkarni34 2:d6ccc8dae85b 323 //Play button select
pkulkarni34 2:d6ccc8dae85b 324 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 325 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 326 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 327 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 328
pkulkarni34 2:d6ccc8dae85b 329 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 330 fclose(wave_file);
pkulkarni34 0:75276caf1a37 331 lcd.circle(60, 60, 30,WHITE);
pkulkarni34 2:d6ccc8dae85b 332 wait(3);
pkulkarni34 0:75276caf1a37 333 lcd.cls();
pkulkarni34 0:75276caf1a37 334 break;
pkulkarni34 0:75276caf1a37 335 }
pkulkarni34 1:5841ff349aae 336 //Paper
pkulkarni34 0:75276caf1a37 337 if(pb2 != 1) {
pkulkarni34 0:75276caf1a37 338 lcd.cls();
pkulkarni34 0:75276caf1a37 339 choice2 = 2;
pkulkarni34 2:d6ccc8dae85b 340 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 341 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 342 lcd.printf(" You chose paper");
pkulkarni34 2:d6ccc8dae85b 343 //Play button select
pkulkarni34 2:d6ccc8dae85b 344 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 345 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 346 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 347 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 348
pkulkarni34 2:d6ccc8dae85b 349 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 350 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 351 lcd.filled_rectangle(50, 45, 80,90,WHITE);
pkulkarni34 2:d6ccc8dae85b 352 wait(3);
pkulkarni34 0:75276caf1a37 353 lcd.cls();
pkulkarni34 0:75276caf1a37 354 break;
pkulkarni34 0:75276caf1a37 355 }
pkulkarni34 1:5841ff349aae 356 //Scissors
pkulkarni34 0:75276caf1a37 357 if(pb3 != 1) {
pkulkarni34 0:75276caf1a37 358 lcd.cls();
pkulkarni34 0:75276caf1a37 359 choice2 = 3;
pkulkarni34 2:d6ccc8dae85b 360 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 361 lcd.locate(0,1);
pkulkarni34 2:d6ccc8dae85b 362 lcd.printf("You chose scissors");
pkulkarni34 2:d6ccc8dae85b 363 //Play button select
pkulkarni34 2:d6ccc8dae85b 364 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 365 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 366 wave_file=fopen("/sd/mydir/select.wav","r");
pkulkarni34 2:d6ccc8dae85b 367 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 368
pkulkarni34 2:d6ccc8dae85b 369 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 370 fclose(wave_file);
pkulkarni34 0:75276caf1a37 371 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 372 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 373 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 374 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 2:d6ccc8dae85b 375 wait(3);
pkulkarni34 0:75276caf1a37 376 lcd.cls();
pkulkarni34 0:75276caf1a37 377 break;
pkulkarni34 0:75276caf1a37 378 }
pkulkarni34 0:75276caf1a37 379 }
pkulkarni34 1:5841ff349aae 380
pkulkarni34 2:d6ccc8dae85b 381 //----------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 2:d6ccc8dae85b 382 // TIME-OUT
pkulkarni34 2:d6ccc8dae85b 383 //----------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 1:5841ff349aae 384 //Time out message
pkulkarni34 0:75276caf1a37 385 if(j == -1){
pkulkarni34 0:75276caf1a37 386 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 387 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 388 lcd.locate(0,5);
pkulkarni34 2:d6ccc8dae85b 389 lcd.color(RED);
pkulkarni34 2:d6ccc8dae85b 390 lcd.printf(" Your time is up!");
pkulkarni34 2:d6ccc8dae85b 391 lcd.color(GREEN);
pkulkarni34 2:d6ccc8dae85b 392 //Play time up tune
pkulkarni34 2:d6ccc8dae85b 393 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 394 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 395 wave_file=fopen("/sd/mydir/timeup.wav","r");
pkulkarni34 2:d6ccc8dae85b 396 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 397
pkulkarni34 2:d6ccc8dae85b 398 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 399 fclose(wave_file);
pkulkarni34 2:d6ccc8dae85b 400 wait(3);
pkulkarni34 0:75276caf1a37 401 goto L1;
pkulkarni34 0:75276caf1a37 402 }
pkulkarni34 0:75276caf1a37 403 RGB_LED(0,0,0);
pkulkarni34 2:d6ccc8dae85b 404
pkulkarni34 2:d6ccc8dae85b 405 */
pkulkarni34 2:d6ccc8dae85b 406
pkulkarni34 2:d6ccc8dae85b 407 player1.printf("%c",choice1);
pkulkarni34 2:d6ccc8dae85b 408 myled2 = 1;
pkulkarni34 2:d6ccc8dae85b 409 wait(1);
pkulkarni34 0:75276caf1a37 410
pkulkarni34 2:d6ccc8dae85b 411 while(1){
pkulkarni34 2:d6ccc8dae85b 412 if(player1.readable()){
pkulkarni34 2:d6ccc8dae85b 413 choice2 = player1.getc();
pkulkarni34 2:d6ccc8dae85b 414 myled = 1;
pkulkarni34 2:d6ccc8dae85b 415 break;
pkulkarni34 2:d6ccc8dae85b 416 }
pkulkarni34 2:d6ccc8dae85b 417 }
pkulkarni34 2:d6ccc8dae85b 418
pkulkarni34 2:d6ccc8dae85b 419
pkulkarni34 2:d6ccc8dae85b 420 //-------------------------------------------------------------------------------------------------------------------------------------
pkulkarni34 1:5841ff349aae 421 //Check to see who won
pkulkarni34 2:d6ccc8dae85b 422 //--------------------------------------------------------------------------------------------------------------------------
pkulkarni34 1:5841ff349aae 423 //Case 1 : Both players choose same option
pkulkarni34 2:d6ccc8dae85b 424 if(choice1 == 'R' && choice2 == 'R' ||
pkulkarni34 2:d6ccc8dae85b 425 choice1== 'P' && choice2 == 'P' ||
pkulkarni34 2:d6ccc8dae85b 426 choice1 == 'S' && choice2 == 'S' ) {
pkulkarni34 0:75276caf1a37 427 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 428 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 429 lcd.locate(1,2);
pkulkarni34 2:d6ccc8dae85b 430 lcd.printf(" It's a draw!");
pkulkarni34 0:75276caf1a37 431 wait(4);
pkulkarni34 2:d6ccc8dae85b 432 /*
pkulkarni34 0:75276caf1a37 433 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 434 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 435 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 436 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 437 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 438 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 439 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 440
pkulkarni34 0:75276caf1a37 441 while(1){
pkulkarni34 0:75276caf1a37 442 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 443 lcd.cls();
pkulkarni34 0:75276caf1a37 444 goto L3;
pkulkarni34 0:75276caf1a37 445 }
pkulkarni34 0:75276caf1a37 446 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 447 }
pkulkarni34 2:d6ccc8dae85b 448 */
pkulkarni34 0:75276caf1a37 449 }
pkulkarni34 1:5841ff349aae 450 //Case 2:
pkulkarni34 1:5841ff349aae 451 //Player 1 : Rock
pkulkarni34 1:5841ff349aae 452 //Player 2 : Paper
pkulkarni34 2:d6ccc8dae85b 453 else if(choice1 == 'R' && choice2 == 'P'){
pkulkarni34 0:75276caf1a37 454
pkulkarni34 0:75276caf1a37 455 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 456 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 0:75276caf1a37 457
pkulkarni34 2:d6ccc8dae85b 458 lcd.locate(1,2);
pkulkarni34 2:d6ccc8dae85b 459 lcd.printf(" P1 chose Rock\n");
pkulkarni34 2:d6ccc8dae85b 460 lcd.printf(" P2 chose Paper\n\n\n\n");
pkulkarni34 2:d6ccc8dae85b 461 lcd.locate(1,5);
pkulkarni34 2:d6ccc8dae85b 462 lcd.printf(" Player 2 wins!");
pkulkarni34 2:d6ccc8dae85b 463 lcd.filled_rectangle(50, 60, 80,90,WHITE);
pkulkarni34 0:75276caf1a37 464 p2++;
pkulkarni34 0:75276caf1a37 465 wait(4);
pkulkarni34 2:d6ccc8dae85b 466 /*
pkulkarni34 0:75276caf1a37 467 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 468 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 469 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 470 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 471 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 472 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 473 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 474
pkulkarni34 0:75276caf1a37 475
pkulkarni34 0:75276caf1a37 476 while(1){
pkulkarni34 0:75276caf1a37 477 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 478 lcd.cls();
pkulkarni34 0:75276caf1a37 479 goto L3;
pkulkarni34 0:75276caf1a37 480 }
pkulkarni34 0:75276caf1a37 481 else if(pb2 != 1) goto L2;
pkulkarni34 0:75276caf1a37 482 }
pkulkarni34 2:d6ccc8dae85b 483 }*/
pkulkarni34 2:d6ccc8dae85b 484 }
pkulkarni34 2:d6ccc8dae85b 485 //Case 3:
pkulkarni34 1:5841ff349aae 486 //Player 1 : Paper
pkulkarni34 2:d6ccc8dae85b 487 //Player 2 : Rock
pkulkarni34 2:d6ccc8dae85b 488 else if(choice2== 'P' && choice1== 'R'){
pkulkarni34 0:75276caf1a37 489
pkulkarni34 0:75276caf1a37 490 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 491 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 492 lcd.locate(1,2);
pkulkarni34 0:75276caf1a37 493 lcd.printf("P1 chose Paper\n");
pkulkarni34 2:d6ccc8dae85b 494 lcd.printf(" P2 chose Rock\n\n");
pkulkarni34 2:d6ccc8dae85b 495 lcd.locate(1,5);
pkulkarni34 2:d6ccc8dae85b 496 lcd.printf("P1 wins!");
pkulkarni34 2:d6ccc8dae85b 497 lcd.filled_rectangle(50, 60, 80,90,WHITE);
pkulkarni34 2:d6ccc8dae85b 498 p1++;
pkulkarni34 0:75276caf1a37 499 wait(5);
pkulkarni34 2:d6ccc8dae85b 500 /*
pkulkarni34 0:75276caf1a37 501 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 502 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 503 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 504 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 505 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 506 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 507 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 508
pkulkarni34 0:75276caf1a37 509 while(1){
pkulkarni34 0:75276caf1a37 510 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 511 lcd.cls();
pkulkarni34 0:75276caf1a37 512 goto L3;
pkulkarni34 0:75276caf1a37 513 }
pkulkarni34 0:75276caf1a37 514 else if(pb2 != 1) goto L2;
pkulkarni34 2:d6ccc8dae85b 515 }*/
pkulkarni34 2:d6ccc8dae85b 516 }
pkulkarni34 2:d6ccc8dae85b 517
pkulkarni34 2:d6ccc8dae85b 518 //Case 4:
pkulkarni34 2:d6ccc8dae85b 519 //Player 1 : Paper
pkulkarni34 2:d6ccc8dae85b 520 //Player 2 : Scissor
pkulkarni34 2:d6ccc8dae85b 521
pkulkarni34 2:d6ccc8dae85b 522 else if(choice1 == 'P' && choice2 == 'S'){
pkulkarni34 2:d6ccc8dae85b 523
pkulkarni34 2:d6ccc8dae85b 524 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 525 lcd.locate(1,1);
pkulkarni34 2:d6ccc8dae85b 526 lcd.printf("P1 chose Paper\n");
pkulkarni34 2:d6ccc8dae85b 527 lcd.printf(" P2 chose Scissors\n\n");
pkulkarni34 2:d6ccc8dae85b 528 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 529 lcd.printf("P2 wins!");
pkulkarni34 2:d6ccc8dae85b 530 p2++;
pkulkarni34 2:d6ccc8dae85b 531 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 2:d6ccc8dae85b 532 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 2:d6ccc8dae85b 533 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 2:d6ccc8dae85b 534 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 2:d6ccc8dae85b 535 wait(5);
pkulkarni34 2:d6ccc8dae85b 536 /*
pkulkarni34 2:d6ccc8dae85b 537 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 538 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 539 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 540 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 541 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 542 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 543 lcd.printf(" 2 to end\n\n");
pkulkarni34 2:d6ccc8dae85b 544
pkulkarni34 2:d6ccc8dae85b 545 while(1){
pkulkarni34 2:d6ccc8dae85b 546 if(pb1 != 1) {
pkulkarni34 2:d6ccc8dae85b 547 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 548 goto L3;
pkulkarni34 2:d6ccc8dae85b 549 }
pkulkarni34 2:d6ccc8dae85b 550 else if(pb2 != 1) goto L2;
pkulkarni34 2:d6ccc8dae85b 551 }*/
pkulkarni34 0:75276caf1a37 552 }
pkulkarni34 1:5841ff349aae 553 //Case 5:
pkulkarni34 1:5841ff349aae 554 //Player 1 : Scissor
pkulkarni34 1:5841ff349aae 555 //Player 2 : Paper
pkulkarni34 2:d6ccc8dae85b 556 else if(choice1 == 'S' && choice2 == 'P'){
pkulkarni34 0:75276caf1a37 557
pkulkarni34 0:75276caf1a37 558 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 559 lcd.locate(1,1);
pkulkarni34 0:75276caf1a37 560 lcd.printf("P1 chose Scissors\n");
pkulkarni34 2:d6ccc8dae85b 561 lcd.printf(" P2 chose Paper\n\n");
pkulkarni34 2:d6ccc8dae85b 562 lcd.locate(1,4);
pkulkarni34 0:75276caf1a37 563 lcd.printf("P1 wins!");
pkulkarni34 0:75276caf1a37 564 p1++;
pkulkarni34 0:75276caf1a37 565 lcd.circle(50, 60, 10,WHITE);
pkulkarni34 0:75276caf1a37 566 lcd.circle(50, 80, 10,WHITE);
pkulkarni34 0:75276caf1a37 567 lcd.line(62, 61, 90, 85, WHITE);
pkulkarni34 0:75276caf1a37 568 lcd.line(62, 81, 90, 55, WHITE);
pkulkarni34 0:75276caf1a37 569 wait(5);
pkulkarni34 2:d6ccc8dae85b 570 /*
pkulkarni34 0:75276caf1a37 571 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 572 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 573 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 574 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 575 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 576 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 577 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 578
pkulkarni34 0:75276caf1a37 579 while(1){
pkulkarni34 0:75276caf1a37 580 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 581 lcd.cls();
pkulkarni34 0:75276caf1a37 582 goto L3;
pkulkarni34 0:75276caf1a37 583 }
pkulkarni34 0:75276caf1a37 584 else if(pb2 != 1) goto L2;
pkulkarni34 2:d6ccc8dae85b 585 }*/
pkulkarni34 0:75276caf1a37 586 }
pkulkarni34 1:5841ff349aae 587 //Case 6:
pkulkarni34 1:5841ff349aae 588 //Player 1 : Rock
pkulkarni34 1:5841ff349aae 589 //Player 2 : Scissors
pkulkarni34 2:d6ccc8dae85b 590 else if(choice1 == 'R' && choice2 == 'S'){
pkulkarni34 0:75276caf1a37 591
pkulkarni34 0:75276caf1a37 592 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 593 lcd.locate(1,1);
pkulkarni34 0:75276caf1a37 594 lcd.printf("P1 chose Rock\n");
pkulkarni34 2:d6ccc8dae85b 595 lcd.printf(" P2 chose Scissors\n\n");
pkulkarni34 2:d6ccc8dae85b 596 lcd.locate(1,3);
pkulkarni34 0:75276caf1a37 597 lcd.printf("P1 wins!");
pkulkarni34 0:75276caf1a37 598 p1++;
pkulkarni34 2:d6ccc8dae85b 599 lcd.circle(60, 70, 30,WHITE);
pkulkarni34 0:75276caf1a37 600 wait(5);
pkulkarni34 2:d6ccc8dae85b 601 /*
pkulkarni34 0:75276caf1a37 602 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 603 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 604 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 605 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 606 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 607 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 608 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 609
pkulkarni34 0:75276caf1a37 610 while(1){
pkulkarni34 0:75276caf1a37 611 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 612 lcd.cls();
pkulkarni34 0:75276caf1a37 613 goto L3;
pkulkarni34 0:75276caf1a37 614 }
pkulkarni34 0:75276caf1a37 615 else if(pb2 != 1) goto L2;
pkulkarni34 2:d6ccc8dae85b 616 }*/
pkulkarni34 0:75276caf1a37 617 }
pkulkarni34 1:5841ff349aae 618 //Case 7:
pkulkarni34 1:5841ff349aae 619 //Player 1 : Scissors
pkulkarni34 1:5841ff349aae 620 //Player 2 : Rock
pkulkarni34 0:75276caf1a37 621
pkulkarni34 2:d6ccc8dae85b 622 else if(choice1 == 'S' && choice2 == 'R'){
pkulkarni34 0:75276caf1a37 623
pkulkarni34 0:75276caf1a37 624 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 625 lcd.locate(1,1);
pkulkarni34 0:75276caf1a37 626 lcd.printf("P1 chose Scissors\n");
pkulkarni34 2:d6ccc8dae85b 627 lcd.printf(" P2 chose Rock\n\n");
pkulkarni34 2:d6ccc8dae85b 628 lcd.locate(1,3);
pkulkarni34 0:75276caf1a37 629 lcd.printf("P2 wins!");
pkulkarni34 0:75276caf1a37 630 p2++;
pkulkarni34 2:d6ccc8dae85b 631 lcd.circle(60, 70, 30,WHITE);
pkulkarni34 0:75276caf1a37 632 wait(5);
pkulkarni34 2:d6ccc8dae85b 633 /*
pkulkarni34 0:75276caf1a37 634 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 635 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 636 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 637 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 638 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 639 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 640 lcd.printf(" 2 to end\n\n");
pkulkarni34 0:75276caf1a37 641
pkulkarni34 0:75276caf1a37 642 while(1){
pkulkarni34 0:75276caf1a37 643 if(pb1 != 1) {
pkulkarni34 0:75276caf1a37 644 lcd.cls();
pkulkarni34 0:75276caf1a37 645 goto L3;
pkulkarni34 0:75276caf1a37 646 }
pkulkarni34 0:75276caf1a37 647 else if(pb2 != 1) goto L2;
pkulkarni34 2:d6ccc8dae85b 648 }*/
pkulkarni34 0:75276caf1a37 649 }
pkulkarni34 0:75276caf1a37 650
pkulkarni34 2:d6ccc8dae85b 651
pkulkarni34 2:d6ccc8dae85b 652 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 653 lcd.locate(1,4);
pkulkarni34 2:d6ccc8dae85b 654 lcd.rectangle(0,0,125,125,WHITE); //Draw white border
pkulkarni34 2:d6ccc8dae85b 655 lcd.printf(" P1 Score : %d\n",p1);
pkulkarni34 2:d6ccc8dae85b 656 lcd.printf(" P2 Score : %d\n\n\n\n",p2);
pkulkarni34 2:d6ccc8dae85b 657 lcd.printf(" 1 to continue\n\n");
pkulkarni34 2:d6ccc8dae85b 658 lcd.printf(" 2 to end\n\n");
pkulkarni34 2:d6ccc8dae85b 659
pkulkarni34 2:d6ccc8dae85b 660 char continue1 = 'N';
pkulkarni34 2:d6ccc8dae85b 661 char continue2;
pkulkarni34 2:d6ccc8dae85b 662 //char cont;
pkulkarni34 2:d6ccc8dae85b 663
pkulkarni34 2:d6ccc8dae85b 664
pkulkarni34 2:d6ccc8dae85b 665 while(1){
pkulkarni34 2:d6ccc8dae85b 666 if(pb1 != 1) {
pkulkarni34 2:d6ccc8dae85b 667 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 668 continue1 = 'Y';
pkulkarni34 2:d6ccc8dae85b 669 break;
pkulkarni34 2:d6ccc8dae85b 670 //goto L3;
pkulkarni34 2:d6ccc8dae85b 671 }
pkulkarni34 2:d6ccc8dae85b 672 else if(pb2 != 1) {
pkulkarni34 2:d6ccc8dae85b 673 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 674 continue1 = 'N';
pkulkarni34 2:d6ccc8dae85b 675 break;
pkulkarni34 2:d6ccc8dae85b 676 }
pkulkarni34 2:d6ccc8dae85b 677 }
pkulkarni34 2:d6ccc8dae85b 678
pkulkarni34 2:d6ccc8dae85b 679
pkulkarni34 2:d6ccc8dae85b 680 player1.printf("%c",continue1);
pkulkarni34 2:d6ccc8dae85b 681 myled3 = 1;
pkulkarni34 2:d6ccc8dae85b 682 wait(1);
pkulkarni34 2:d6ccc8dae85b 683
pkulkarni34 2:d6ccc8dae85b 684 while(1){
pkulkarni34 2:d6ccc8dae85b 685 if(player1.readable()){
pkulkarni34 2:d6ccc8dae85b 686 continue2 = player1.getc();
pkulkarni34 2:d6ccc8dae85b 687 myled = 1;
pkulkarni34 2:d6ccc8dae85b 688 break;
pkulkarni34 2:d6ccc8dae85b 689 }
pkulkarni34 2:d6ccc8dae85b 690 }
pkulkarni34 2:d6ccc8dae85b 691
pkulkarni34 2:d6ccc8dae85b 692 //If both say continue then you need to go back to L3
pkulkarni34 2:d6ccc8dae85b 693 if(continue1 == 'Y' && continue2 == 'Y') goto L3;
pkulkarni34 2:d6ccc8dae85b 694 else goto L2;
pkulkarni34 2:d6ccc8dae85b 695
pkulkarni34 2:d6ccc8dae85b 696
pkulkarni34 2:d6ccc8dae85b 697
pkulkarni34 0:75276caf1a37 698 }
pkulkarni34 2:d6ccc8dae85b 699
pkulkarni34 2:d6ccc8dae85b 700 }
pkulkarni34 0:75276caf1a37 701
pkulkarni34 0:75276caf1a37 702
pkulkarni34 0:75276caf1a37 703
pkulkarni34 0:75276caf1a37 704 // Code to play a wave file
pkulkarni34 0:75276caf1a37 705 /* FILE *wave_file;
pkulkarni34 0:75276caf1a37 706 printf("\n\n\nHello, wave world!\n");
pkulkarni34 0:75276caf1a37 707 wave_file=fopen("/sd/mydir/HG.wav","r");
pkulkarni34 0:75276caf1a37 708 waver.play(wave_file);
pkulkarni34 0:75276caf1a37 709 wait(5);
pkulkarni34 0:75276caf1a37 710 printf("ok!!");
pkulkarni34 0:75276caf1a37 711 fclose(wave_file);
pkulkarni34 0:75276caf1a37 712 */
pkulkarni34 0:75276caf1a37 713
pkulkarni34 2:d6ccc8dae85b 714
pkulkarni34 2:d6ccc8dae85b 715
pkulkarni34 2:d6ccc8dae85b 716
pkulkarni34 1:5841ff349aae 717 //If game ends :
pkulkarni34 0:75276caf1a37 718 L2:
pkulkarni34 2:d6ccc8dae85b 719 lcd.cls();
pkulkarni34 0:75276caf1a37 720
pkulkarni34 0:75276caf1a37 721
pkulkarni34 0:75276caf1a37 722 //Create animation of two bouncing balls
pkulkarni34 2:d6ccc8dae85b 723 float fx=50.0,fy=21.0,vx=5.0,vy=0.4,vx2=2,fx2=40.0;
pkulkarni34 0:75276caf1a37 724 int x=50,y=21,radius=4;
pkulkarni34 0:75276caf1a37 725 int x2 = 30, y2 = 10;
pkulkarni34 2:d6ccc8dae85b 726 //lcd.rectangle(0,0,125,125,GREEN); //Draw green border
pkulkarni34 0:75276caf1a37 727 //draw walls
pkulkarni34 0:75276caf1a37 728 wait(2);
pkulkarni34 1:5841ff349aae 729 //If Player 1's score is higher than Player 2's score
pkulkarni34 0:75276caf1a37 730 if(p1 > p2)
pkulkarni34 0:75276caf1a37 731 //lcd.printf("Player 1 wins!");
pkulkarni34 0:75276caf1a37 732 lcd.text_string("Player 1 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 1:5841ff349aae 733 //If Player 1's score is equal to Player 2's score
pkulkarni34 0:75276caf1a37 734 else if(p1 == p2)
pkulkarni34 0:75276caf1a37 735 //lcd.printf("It's a draw!");
pkulkarni34 0:75276caf1a37 736 lcd.text_string("It's a draw!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 1:5841ff349aae 737 //If Player 2's score is higher than Player 1's score
pkulkarni34 0:75276caf1a37 738 else if(p2 > p1)
pkulkarni34 0:75276caf1a37 739 //lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 740 lcd.text_string("Player 2 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 741
pkulkarni34 2:d6ccc8dae85b 742 // Play winning tune
pkulkarni34 2:d6ccc8dae85b 743 FILE *wave_file;
pkulkarni34 2:d6ccc8dae85b 744 printf("\n\n\nHello, wave world!\n");
pkulkarni34 2:d6ccc8dae85b 745 wave_file=fopen("/sd/mydir/win.wav","r");
pkulkarni34 2:d6ccc8dae85b 746 waver.play(wave_file);
pkulkarni34 2:d6ccc8dae85b 747
pkulkarni34 2:d6ccc8dae85b 748 printf("ok!!");
pkulkarni34 2:d6ccc8dae85b 749 fclose(wave_file);
pkulkarni34 0:75276caf1a37 750
pkulkarni34 0:75276caf1a37 751 for (int i=0; i<100; i++) {
pkulkarni34 0:75276caf1a37 752 //draw ball
pkulkarni34 0:75276caf1a37 753 //lcd.cls();
pkulkarni34 0:75276caf1a37 754 if(p1 > p2)
pkulkarni34 0:75276caf1a37 755 //lcd.printf("Player 1 wins!");
pkulkarni34 0:75276caf1a37 756 lcd.text_string("Player 1 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 757
pkulkarni34 0:75276caf1a37 758 else if(p1 == p2)
pkulkarni34 0:75276caf1a37 759 //lcd.printf("It's a draw!");
pkulkarni34 0:75276caf1a37 760 lcd.text_string("It's a draw!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 761
pkulkarni34 0:75276caf1a37 762 else if(p2 > p1)
pkulkarni34 0:75276caf1a37 763 //lcd.printf("Player 2 wins!");
pkulkarni34 0:75276caf1a37 764 lcd.text_string("Player 2 Wins!", 2, 4, FONT_7X8, WHITE);
pkulkarni34 0:75276caf1a37 765
pkulkarni34 0:75276caf1a37 766 lcd.filled_circle(x, y, radius, RED);
pkulkarni34 0:75276caf1a37 767 lcd.filled_circle(x2,y2,radius,BLUE);
pkulkarni34 0:75276caf1a37 768 RGB_LED(x,y,x);
pkulkarni34 0:75276caf1a37 769 //bounce off edge walls and slow down a bit
pkulkarni34 0:75276caf1a37 770 if ((x<=radius+1) || (x>=126-radius)) vx = -.90*vx;
pkulkarni34 0:75276caf1a37 771 if ((y<=radius+1) || (y>=126-radius)) vy = -.90*vy;
pkulkarni34 0:75276caf1a37 772 if ((x2<=radius+1) || (x2>=126-radius)) vx2 = -.90*vx2;
pkulkarni34 0:75276caf1a37 773 if ((y2<=radius+1) || (y2>=126-radius)) vy = -.90*vy;
pkulkarni34 0:75276caf1a37 774 //erase old ball location
pkulkarni34 0:75276caf1a37 775 lcd.filled_circle(x, y, radius, BLACK);
pkulkarni34 0:75276caf1a37 776 lcd.filled_circle(x2, y2, radius, BLACK);
pkulkarni34 0:75276caf1a37 777 //move ball
pkulkarni34 0:75276caf1a37 778 fx=fx+vx;
pkulkarni34 0:75276caf1a37 779 fx2=fx2+vx2;
pkulkarni34 0:75276caf1a37 780 fy=fy+vy;
pkulkarni34 0:75276caf1a37 781 x=(int)fx;
pkulkarni34 0:75276caf1a37 782 y=(int)fy;
pkulkarni34 0:75276caf1a37 783 x2=(int)fx2;
pkulkarni34 0:75276caf1a37 784 y2=(int)fy;
pkulkarni34 0:75276caf1a37 785 }
pkulkarni34 2:d6ccc8dae85b 786 lcd.cls();
pkulkarni34 2:d6ccc8dae85b 787
pkulkarni34 0:75276caf1a37 788 }