Advertisement
tuixte

Memory

Feb 11th, 2013
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1. const int ledPin[3] = {3, 4, 5};
  2. const int buttonPin[3] = {6, 7, 8};
  3. const int rgbPin[3] = {9, 10, 11};
  4.  
  5. int difficulty = 1;
  6. int currLevel[10];
  7. int player[10];
  8. boolean nextLevel = true;
  9.  
  10. void rgbLed(int red, int green, int blue, unsigned long time=0){
  11.   analogWrite(rgbPin[0], red);
  12.   analogWrite(rgbPin[1], green);
  13.   analogWrite(rgbPin[2], blue);
  14.   if(time>0){
  15.     delay(time);
  16.     for(int i=0; i<3; i++)
  17.       digitalWrite(rgbPin[i], LOW);
  18.   }
  19. }
  20.  
  21. void level(){
  22.   Serial.print("level(): ");
  23.   for(int i=0; i<difficulty; i++){
  24.     if(nextLevel)
  25.       currLevel[i] = int(random(0, 3));
  26.     Serial.print(currLevel[i]);
  27.     digitalWrite(ledPin[currLevel[i]], HIGH);
  28.     delay(500);
  29.     digitalWrite(ledPin[currLevel[i]], LOW);
  30.     delay(300);
  31.   }
  32.   Serial.println("");
  33.   nextLevel = true;
  34. }
  35.  
  36. void input(){
  37.   Serial.println("input()");
  38.   for(int i=0; i<difficulty; ){
  39.     for(int j=0; j<3; j++){
  40.       if(digitalRead(buttonPin[j]) == HIGH){
  41.         player[i] = j;
  42.         i++;
  43.         Serial.print("Pressed: ");
  44.         Serial.println(j);
  45.         delay(200);
  46.         break;
  47.       }
  48.     }
  49.   }
  50. }
  51.  
  52. void setup(){
  53.   randomSeed(analogRead(0));
  54.   Serial.begin(9600);
  55.   for(int i=0; i<3; i++){
  56.     pinMode(ledPin[i], OUTPUT);
  57.     digitalWrite(ledPin[i], LOW);
  58.     pinMode(buttonPin[i], INPUT);
  59.     pinMode(rgbPin[i], OUTPUT);
  60.     digitalWrite(rgbPin[i], LOW);
  61.   }
  62.   // Blink leds
  63.   for(int i=0; i<3; i++){
  64.     digitalWrite(ledPin[i], HIGH);
  65.     delay(300);
  66.     digitalWrite(ledPin[i], LOW);
  67.   }
  68.   // Blink rgb led in green
  69.   rgbLed(0, 255, 0, 1000);
  70.   Serial.println("Ready");
  71. }
  72.  
  73. void loop(){
  74.   Serial.print("Difficulty: ");
  75.   Serial.println(difficulty);
  76.   level();
  77.   input();
  78.   for(int i=0; i<difficulty; i++){
  79.     if(player[i] != currLevel[i]){
  80.       nextLevel = false;
  81.       rgbLed(255, 0, 0, 500);
  82.       return;
  83.     }
  84.   }
  85.   rgbLed(0, 255, 0, 1000);
  86.   difficulty++;
  87.   if(difficulty > 10){
  88.     rgbLed(0, 255, 0, 1000);
  89.     rgbLed(0, 255, 0, 1000);
  90.   }
  91.   delay(300);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement