Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #define yellow 10
- #define green 9
- #define red 8
- #define button1 2
- #define button2 3
- #define button3 4
- int buttonState;
- void setup() {
- pinMode(yellow, OUTPUT);
- pinMode(green, OUTPUT);
- pinMode(red, OUTPUT);
- pinMode(button1, INPUT);
- pinMode(button2, INPUT);
- pinMode(button3, INPUT);
- Serial.begin(9600);
- }
- void loop() {
- int randomInt, i;
- int order[19];
- for(i=0;i<19;i++){
- randomInt = random(3);
- order[i] = randomInt;
- }
- for(i=0;i<19;i++){
- Serial.print(order[i]);
- }
- digitalWrite(red, LOW);
- digitalWrite(green, LOW);
- digitalWrite(yellow, LOW);
- iterations(order);
- }
- void iterations(int *order){
- int i, j, LED;
- for(i=0;i<19;i++){
- for(j=0;j<i;j++){
- if(order[j]==0) LED = red;
- else if(order[j]==1) LED = green;
- else if(order[j]==2) LED = yellow;
- delay(500);
- digitalWrite(LED, HIGH);
- delay(700);
- digitalWrite(LED, LOW);
- }
- for(j=0;j<i;j++){
- readButtons();
- if(buttonState==0) LED = red;
- else if(buttonState==1) LED = green;
- else if(buttonState==2) LED = yellow;
- digitalWrite(LED, HIGH);
- Serial.println(buttonState);
- delay(300);
- digitalWrite(LED, LOW);
- if(buttonState != order[j]) gameOver();
- }
- }
- victory();
- }
- void readButtons(){
- if(digitalRead(button1)==HIGH) buttonState = 0;
- else if(digitalRead(button2)==HIGH) buttonState = 1;
- else if(digitalRead(button3)==HIGH) buttonState = 2;
- else readButtons();
- }
- void gameOver(){
- digitalWrite(red, HIGH);
- digitalWrite(green, HIGH);
- digitalWrite(yellow, HIGH);
- delay(4000);
- loop();
- }
- void victory(){
- int i, j;
- digitalWrite(red, LOW);
- digitalWrite(green, LOW);
- digitalWrite(yellow, LOW);
- for(i=0;i<4;i++){
- for(i=0;i<3;i++){
- digitalWrite(red, HIGH);
- digitalWrite(green, LOW);
- digitalWrite(yellow, LOW);
- delay(200);
- digitalWrite(red, LOW);
- digitalWrite(green, HIGH);
- digitalWrite(yellow, LOW);
- delay(200);
- digitalWrite(red, LOW);
- digitalWrite(green, LOW);
- digitalWrite(yellow, HIGH);
- delay(200);
- }
- }
- loop();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement