2014-11-27 1 views
0

이 게임에는 4 개의 led와 4 개의 버튼이 있습니다. 게임은 그 LED를 켜고 끄기 만합니다.Arduino 메모리 게임

플레이어는 켜져있는 것으로 밝혀 질 때마다 오른쪽 버튼을 누를 수 있어야합니다.

LED가 ON 켜고 incerasing 속도 OFF, 그래서 선수의 반응 시간이 짧아 나는이 코드를 가지고 있지만 난 그냥 이상의 LED와 버튼을 추가하는 방법을 알고

짧은해야한다.

const int BUTTON1 = A0; 
const int BUTTON2 = A1; 
const int BUTTON3 = A2; 
const int BUTTON4 = A3; 
int LED1 = 2; 
int LED2 = 3; 
int LED3 = 4; 
int LED4 = 5; 
int ran; 
int right = 0; 
int ledOrder[9]; 
int guessOrder[9]; 

void setup() 
{ 
    Serial.begin(9600); 
    pinMode(LED1,OUTPUT); 
    pinMode(LED2,OUTPUT); 
    pinMode(LED3,OUTPUT); 
    pinMode(LED4,OUTPUT); 
    pinMode(BUTTON1,INPUT); 
    pinMode(BUTTON2,INPUT); 
    pinMode(BUTTON3,INPUT); 
    pinMode(BUTTON4,INPUT); 
} 
void randomLed() { 
    for (int i = 0; i < 9; i++) { 
    ran = random(1,20); 
    if (ran < 11) { 
     digitalWrite(LED1,HIGH); 
     delay(500); 
     digitalWrite(LED1,LOW); 
     ledOrder[i] = 1; 

    } 
    else { 
     digitalWrite(LED2,HIGH); 
     delay(500); 
     digitalWrite(LED2,LOW); 
     ledOrder[i] = 2; 
    } 
    delay(500); 
    } 
} 
void btnClick() { 
    int ans = 0; 
    while (ans < 9) { 
    if (digitalRead(BUTTON1) == HIGH) { 
     guessOrder[ans] = 1; 
     ans++; 
     while (digitalRead(BUTTON1) == HIGH) { 
     } 
    } 
    else if (digitalRead(BUTTON2) == HIGH) { 
     guessOrder[ans] = 2; 
     ans++; 
     while (digitalRead(BUTTON2) == HIGH) { 
     } 
    } 
    } 
} 
void loop() { 
    Serial.print("Press button1 to start \n"); 
    while (digitalRead(BUTTON1) == LOW) { 
    } 
    randomLed(); 
    btnClick(); 
    for (int i = 0; i < 9; i = i + 1) { 
     Serial.print("Guess: "); 
     Serial.print(guessOrder[i]); 
     Serial.print(" Answer: "); 
     Serial.print(ledOrder[i]); 
     if (guessOrder[i] == ledOrder[i]) { 
     Serial.print(" Right"); 
     right++; 
     } else { 
     Serial.print(" Wrong"); 
     } 
     Serial.print("\n "); 
    } 
    Serial.print(right); 
    Serial.print("/9\n"); 
    delay(2000); 

} 
+0

그래서 플레이어의 "버튼을 누르는 것"의 기록을 유지하는 방법을 알고 싶습니까? 또는 다른 말로하면 플레이어의 점수를 유지하고 있습니까? –

+0

네, 맞아요. – coodienoobie

답변

0

내가 제대로 질문을 이해한다면, 당신은 (LED의가 올 때) 사용자가 이전 게임 권리를 얻을 때마다 LED 점멸 속도를 증가하고 싶습니다. 이것이 사실이라면 루프를 넣으려고 시도해야합니다. 사용자가 이전 게임 (게임)을 올바르게 얻은 경우 깜박임 속도가 단순한 증가분만큼 증가합니다 (I ++;). 당신이 충분히 명확 해 졌다고 느끼거나 다른 것을 요구한다면