pp
Dependencies: mbed
Revision 5:60262753a05f, committed 2015-12-09
- Comitter:
- Peeraya
- Date:
- Wed Dec 09 02:09:36 2015 +0000
- Parent:
- 4:a61cdd4e7afa
- Commit message:
- Super Cute Alarm Clock
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat Dec 05 19:01:26 2015 +0000 +++ b/main.cpp Wed Dec 09 02:09:36 2015 +0000 @@ -19,21 +19,31 @@ int main() { b.mode(PullUp); - int sec=45,min=59,hour=6,day=7,date=5,month=12,year=15; + int p_ldr=0,cr_ldr=0,sn=0,j=0; + int sec=0,min=39,hour=21,day=19,date=7,month=12,year=15; int n=0,opt=1,p=0,ten_hour,nu_hour,ten_min,nu_min,hour_a=7,min_a=0; float mea; - int state=0; - int hexnum[4]; - int currenthex=0, checkbcd=0, gameround=0, changehex=1; + int state=0, wrong=0; + int hexnum[4],game2num[10],game2level=5; + int currenthex=0, checkbcd=0, gameround=0, changehex=1, changenum=1,currentnum=0,checkloop=0; + bool imawake=0; + int fix=0,match=0,fail=1,delay=0,i; - myrtc.settime(sec,min,hour,day,date,month,year); + //myrtc.settime(sec,min,hour,day,date,month,year); //DisplayTime(); //display.Displayset((hour-(hour%10))/10,hour%10,(min-(min%10))/10,min%10); while(1) - { - mea=analog_value.read(); - /*if(state==0) + { + myrtc.gettime(&sec,&min,&hour,&day,&date,&month,&year); + //state=2; + if(state==0) { + if(sn==0){led=0b0001;} + if(sn==1){led=0b0011;} + if(sn==2){led=0b0111;} + if(sn==3){led=0b1111;} + printf("In state1\n"); + printf("houra/mind = %d : %d",hour,min); mea=analog_value.read(); if(b==0b011){n=1;} else if(b==0b101){n=2;} @@ -56,8 +66,6 @@ if(p%2==1){opt=2;} } - myrtc.gettime(&sec,&min,&hour,&day,&date,&month,&year); - if(opt==1) { display.setColon(1); @@ -72,81 +80,245 @@ display.Displayset(ten_hour,nu_hour,ten_min,nu_min); if(display.checkButton1()==1){hour_a++;} - if(display.checkButton2()==1){min_a++;} + if(display.checkButton2()==1){min_a=min_a+5;} if(hour_a==24){hour_a=0;} if(min_a==60){min_a=0;} } - + if(hour==hour_a&&min==min_a&&imawake==0){buzzer=1; state=1;printf("wait check");} + else if(imawake==1 && min!=min_a) imawake=0; } - if(hour==hour_a&&min==min_a) - else*/ if(mode==0) + + + if(state==1) { - //buzzer=1; - state = 1; - int gamelevel=game.getlevel(); - if(changehex==1) + //####SNOOZE## + mea=analog_value.read(); + if(mea<0.65){cr_ldr=0;} + if(mea>=0.65){cr_ldr=1;} + + printf("%f",mea); + + wait_ms(100); + printf("%d : %d\n",p_ldr,cr_ldr); + if(b==0b011){n=1;} + else if(b==0b101){n=2;} + else if(b==0b110){n=3;} + else n=0; + display.getButtonState(n); + + if(sn<3 && p_ldr==0 && cr_ldr==1) { - for(int i=0;i<gamelevel;i++) - { - hexnum[i] = game.randomHex(mea); - } - if(gamelevel==1) display.Displayset(0xFF,0xFF,hexnum[0],0xFF); - else if(gamelevel==2) display.Displayset(0xFF,hexnum[0],hexnum[1],0xFF); - else if(gamelevel==3) display.Displayset(0xFF,hexnum[0],hexnum[1],hexnum[2]); - else if(gamelevel==4) display.Displayset(hexnum[0],hexnum[1],hexnum[2],hexnum[3]); - changehex = 0; + buzzer=0; + sn++; + if(min_a<55){min_a = min_a+5;state=0;} + else if(min_a>=55){min_a = (min_a+5)%60 ; hour_a=hour_a+1;state=0;} + printf("In loop"); + } + + printf("h/m %d : %d\n",hour,min); + printf("h_a/h_m %d : %d\n",hour_a,min_a); + printf("state : %d\n",state); + printf("snooze : %d",sn); + if(display.checkButton1()==1||display.checkButton2()==1||display.checkButton3()==1){state=2;} + + p_ldr=cr_ldr; + if(sn==0){led=0b0001;} + if(sn==1){led=0b0011;} + if(sn==2){led=0b0111;} + if(sn==3){led=0b1111;} } - if(b==0b011){n=1;} - else if(b==0b101){n=2;} - else if(b==0b110){n=3;} - else n=0; - display.getButtonState(n); - if((bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton2()==1)) + + if(state==2) + { + mea=analog_value.read(); + //state = 1; + int gameRandom = (int)(analog_value.read())%3; + if(gameRandom==0) { - if(checkbcd<4) checkbcd++; - else + if(b==0b011){n=1;} + else if(b==0b101){n=2;} + else if(b==0b110){n=3;} + else n=0; + + if(sn==0){delay=5000;} + if(sn==1){delay=4500;} + if(sn==2){delay=4000;} + if(sn==3){delay=3500;} + + if(fail==1) + { + fix=(int(mea*1000))%99; + fail=0; + } + match++; + if(match==100){match=0;} + + for(i=0;i<delay;i++) + { + display.Displayset((fix-(fix%10))/10,fix%10,(match-(match%10))/10,match%10); + display.getButtonState(n); + if(display.checkButton1()==1) + { + + if(fix==match||fix-match==1||match-fix==1){fail=1;gameround++;display.A();} + else{fail=1;display.F();} + wait_ms(100); + i=delay; + match=0; + if(gameround==3){gameround=0;buzzer=0;state=0;imawake=1;sn=0;break;} + } + } + + } + //###################### + if(gameRandom==1) + { + if(wrong>3) game2level = 10; + else if(sn==0) game2level = 5; + else if(sn==1) game2level = 6; + else if(sn==2) game2level = 7; + else if(sn==3) game2level = 8; + if (changenum==1) + { + for(int i=0;i<game2level;i++) + { + game2num[i] = (int)(analog_value.read()*1000)%3+1; + } + for(int i=0;i<game2level;i++) + { + display.Displayset(0xFF,0xFF,game2num[i],0xFF); + wait_ms(400); + display.Displayset(0xFF,0xFF,0xFF,0xFF); + wait_ms(80); + changenum=0; + } + } + checkloop++; + if(checkloop==60) + { + for(int i=0;i<game2level;i++) + { + display.Displayset(0xFF,0xFF,game2num[i],0xFF); + wait_ms(400); + display.Displayset(0xFF,0xFF,0xFF,0xFF); + wait_ms(80); + checkloop=0; + currentnum= 0; + } + } + display.Displayset(0xFE,0xFE,0xFE,0xFE); + if(b==0b011){n=1;} + else if(b==0b101){n=2;} + else if(b==0b110){n=3;} + else n=0; + display.getButtonState(n); + wait_ms(100); + if((game2num[currentnum]==1 && display.checkButton1()==1)||(game2num[currentnum]==2 && display.checkButton2()==1)||(game2num[currentnum]==3 && display.checkButton3()==1)) { - checkbcd=0; - currenthex++; - if(currenthex==gamelevel) + if(currentnum<game2level-1) {currentnum++; printf("-_-\n");} + else { + printf("YEAH\n"); gameround++; - currenthex = 0; - changehex = 1; + changenum = 1; + currentnum= 0; display.A(); - } + + } + } + else if((game2num[currentnum]==1 && (display.checkButton2()==1||display.checkButton3()==1))||(game2num[currentnum]==2 && (display.checkButton1()==1||display.checkButton3()==1))||(game2num[currentnum]==3 && (display.checkButton1()==1||display.checkButton2()==1))) + { + currentnum=0; + wrong++; + changenum = 1; + display.F(); + } + if(gameround==4) + { + printf("eiei\n"); + mode=1; + state=0; + wrong=0; + buzzer=0; + game2level=5; + currentnum=0; + gameround=0; + changenum=1; + imawake=1; + sn=0; + } + } + //######################################## + else if(gameRandom==2) + { + int gamelevel=game.getlevel(); + if(changehex==1) + { + for(int i=0;i<gamelevel;i++) + { + mea=analog_value.read(); + hexnum[i] = game.randomHex(mea); + } + if(gamelevel==1) display.Displayset(0xFF,0xFF,hexnum[0],0xFF); + else if(gamelevel==2) display.Displayset(0xFF,hexnum[0],hexnum[1],0xFF); + else if(gamelevel==3) display.Displayset(0xFF,hexnum[0],hexnum[1],hexnum[2]); + else if(gamelevel==4) display.Displayset(hexnum[0],hexnum[1],hexnum[2],hexnum[3]); + changehex = 0; + } + if(b==0b011){n=1;} + else if(b==0b101){n=2;} + else if(b==0b110){n=3;} + else n=0; + display.getButtonState(n); + wait_ms(100); + if((bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton2()==1)) + {printf("**%d\t%d\n",hexnum[currenthex],checkbcd); + if(checkbcd<3) {checkbcd++; printf("-_-\n");} + else + {printf("4\n"); + checkbcd=0; + currenthex++; + if(currenthex==gamelevel) + {printf("YEAH\n"); + gameround++; + changehex = 1; + currenthex = 0; + display.A(); + } + } + } + else if((bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton2()==1)) + {printf("**%d\t%d\n",hexnum[currenthex],checkbcd); + printf("bu\n"); + checkbcd=0; + game.pluslevel(); + currenthex=0; + changehex = 1; + display.F(); + } + + if(gameround==4) + { + printf("eiei\n"); + mode=1; + state=0; + buzzer=0; + game.resetlevel(); + checkbcd=0; + currenthex=0; + gameround=0; + changehex=1; + imawake=1; + sn=0; } } - else if((bcd[hexnum[currenthex]][checkbcd]==1 && display.checkButton1()==1)||(bcd[hexnum[currenthex]][checkbcd]==0 && display.checkButton2()==1)) - { - checkbcd=0; - game.pluslevel(); - changehex = 1; - display.F(); - } - else if(display.checkButton3()==3) - { - checkbcd=0; - currenthex==0; - } - if(gameround==4) - { - mode=1; - state=0; - buzzer=0; - game.resetlevel(); - checkbcd=0; - currenthex==0; - gameround=0; - changehex=1; - } } - printf("%f\n",mea); - if(mea>=0.65){min_a=min_a+1;} + //printf("%f\n",mea); + //if(mea>=0.65){min_a=min_a+1;} } } \ No newline at end of file