Lopullinen muistipeli
Asetettu päällePainikkeet
Painikkeiden ohjaamiseksi meidän on lisättävä koodinpätkä, joka on samanlainen kuin LED-koodinpätkä. Suurin ero on, että työskentelemme nyt painikkeilla LED-valojen sijaan.
aantal = aantal+1;
}
if (buttonCheck == 5){ // <----- vanaf hier
aantal = 1;
while (aantal < lengte){
buttonState1 = digitalRead(BUTTON_PIN1); // <-updaten van de pinstatus
buttonState2 = digitalRead(BUTTON_PIN2);
buttonState3 = digitalRead(BUTTON_PIN3);
if(buttonState1 == LOW){
digitalWrite(LED_PIN1, HIGH);
aantal = aantal + 1;
delay(500);
else if(buttonState2 == LOW){
digitalWrite(LED_PIN2, HIGH);
aantal = aantal + 1;
delay(500);
}
else if(buttonState3 == LOW){
digitalWrite(LED_PIN3, HIGH);
aantal = aantal + 1;
delay(500);
}
else{
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
}
}
} // <------ tot hier
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
klikkaustässänähdäksesi mitä olemme nähneet tähän mennessä
Tarkistaakseni, painettiinko oikeaa painiketta, käytin alla olevaa koodia:
xxxxxxxxxx
12
if(buttonState1 == LOW){
digitalWrite(LED_PIN1, HIGH);
delay(250);
buttonState = 1;
if (1 == volgorde[aantal+1]){
aantal = aantal+1;
}
else{
aantal = lengte + 1;
start = 1;
}
}
pisteytys
Tietenkin haluamme nähdä pisteemme, jos häviämme. Tämä koodi näyttää pisteet LED-valon avulla.
xxxxxxxxxx
17
aantal = 1;
}
if (start = 1){
aantal = 0;
while (aantal < lengte){
digitalWrite(LED_PIN1, HIGH);
delay(500);
digitalWrite(LED_PIN1, LOW);
delay(500);
aantal = aantal +1;
}
}
}
}
kokonaiskoodi:
x
const int BUTTON_PIN1 = 2;
const int BUTTON_PIN2 = 3;
const int BUTTON_PIN3 = 4;
const int LED_PIN1 = 5;
const int LED_PIN2 = 6;
const int LED_PIN3 = 7;
long randNumber; //<--
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int start = 0;
int volgorde[] = {};
int lengte = 1;
int aantal = 1;
int buttonCheck = 5;
int buttonState = 0;
void setup() {
randomSeed(analogRead(0)); //<--
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
pinMode(LED_PIN3, OUTPUT);
pinMode(BUTTON_PIN1, INPUT_PULLUP);
pinMode(BUTTON_PIN2, INPUT_PULLUP);
pinMode(BUTTON_PIN3, INPUT_PULLUP);
}
void loop() {
buttonState1 = digitalRead(BUTTON_PIN1);
if (buttonState1 == LOW) {
digitalWrite(LED_PIN1, HIGH);
delay(1000);
digitalWrite(LED_PIN2, HIGH);
delay(1000);
digitalWrite(LED_PIN3, HIGH);
delay(1000);
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
aantal = 1;
while(start == 0){
volgorde[lengte] = random(0,4);
while (aantal < lengte){
if (volgorde[aantal] == 1){
digitalWrite(LED_PIN1, HIGH);
delay(500);
digitalWrite(LED_PIN1, LOW);
delay(500);
}
else if (volgorde[aantal] == 2){
digitalWrite(LED_PIN2, HIGH);
delay(500);
digitalWrite(LED_PIN2, LOW);
delay(500);
}
else{
digitalWrite(LED_PIN3, HIGH);
delay(500);
digitalWrite(LED_PIN3, LOW);
delay(500);
}
aantal = aantal+1;
}
aantal = 1;
if (buttonCheck == 5){
while (aantal < lengte){
buttonState1 = digitalRead(BUTTON_PIN1);
buttonState2 = digitalRead(BUTTON_PIN2);
buttonState3 = digitalRead(BUTTON_PIN3);
if(buttonState1 == LOW){
digitalWrite(LED_PIN1, HIGH);
delay(250);
buttonState = 1;
if (1 != volgorde[aantal+1]){
aantal = aantal+1;
}
else{
aantal = lengte + 1;
start = 1;
}
}
else if(buttonState2 == LOW){
digitalWrite(LED_PIN2, HIGH);
delay(250);
buttonState = 2;
if (2 != volgorde[aantal+1]){
aantal = aantal + 1;
}
else{
aantal = lengte + 1;
start = 1;
}
}
else if(buttonState3 == LOW){
digitalWrite(LED_PIN3, HIGH);
delay(250);
buttonState = 3;
if (3 != volgorde[aantal+1]){
aantal = aantal + 1;
}
else{
aantal = lengte + 1;
start = 1;
}
}
else{
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
}
}
}
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(1000);
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
delay(1000);
lengte = lengte + 1;
aantal = 1;
}
if (start = 1){
aantal = 0;
while (aantal < lengte){
digitalWrite(LED_PIN1, HIGH);
delay(500);
digitalWrite(LED_PIN1, LOW);
delay(500);
aantal = aantal +1;
}
}
}
}