Wie programmiere ich bei Arduino das Spiel Simon Says?

1 Antwort

Hi,

Check msl zur Ideenfindung chat gpt.

Ein Programm für ein "Simon Says"-Spiel mit 3 Lampen und 3 Tasten kann auf einem Mikrocontroller wie dem Arduino entwickelt werden. Hier ist ein Beispielcode, der dieses Spiel implementiert:

Ob das alles ticjtig idt weiß ich nicht, gibt aber sicher eine Idee für den Ansatz.

ChatGPT

Du:

Erstelle mir für den Adurio ein Programm Simon Says mit 3 Lampen und 3 Tasten

ChatGPT:

ChatGPT

Ein Programm für ein "Simon Says"-Spiel mit 3 Lampen und 3 Tasten kann auf einem Mikrocontroller wie dem Arduino entwickelt werden. Hier ist ein Beispielcode, der dieses Spiel implementiert:

Beschreibung
  1. Drei LEDs repräsentieren die Lampen.
  2. Drei Tasten repräsentieren die Eingabe des Spielers.
  3. Das Spiel generiert eine zufällige Sequenz, die der Spieler nachmachen muss.
  4. Wenn der Spieler die Sequenz korrekt wiedergibt, wird die Sequenz verlängert.
  5. Bei einem Fehler wird das Spiel zurückgesetzt.
Hardware-Anschluss
  • LEDs: An Digitalpins 2, 3 und 4 (mit Widerständen).
  • Tasten: An Digitalpins 5, 6 und 7 (mit Pull-Down-Widerständen).

// Pin-Zuweisungen

const int ledPins[] = {2, 3, 4};

const int buttonPins[] = {5, 6, 7};

// Variablen

int sequence[100]; // Speichert die Sequenz

int sequenceLength = 0;

int playerStep = 0;

bool isPlayerTurn = false;

void setup() {

 // LEDs und Tasten initialisieren

 for (int i = 0; i < 3; i++) {

   pinMode(ledPins[i], OUTPUT);

   pinMode(buttonPins[i], INPUT_PULLDOWN);

 }

 Serial.begin(9600);

 startGame();

}

void loop() {

 if (!isPlayerTurn) {

   playSequence();

   isPlayerTurn = true;

   playerStep = 0;

 }

 if (isPlayerTurn) {

   for (int i = 0; i < 3; i++) {

     if (digitalRead(buttonPins[i]) == HIGH) {

       delay(200); // Entprellung

       if (i == sequence[playerStep]) {

         lightUpLed(i);

         playerStep++;

         if (playerStep >= sequenceLength) {

           isPlayerTurn = false;

           delay(500);

           addStepToSequence();

         }

       } else {

         gameOver();

       }

     }

   }

 }

}

void startGame() {

 sequenceLength = 0;

 addStepToSequence();

 isPlayerTurn = false;

}

void playSequence() {

 for (int i = 0; i < sequenceLength; i++) {

   lightUpLed(sequence[i]);

   delay(500);

 }

}

void addStepToSequence() {

 sequence[sequenceLength] = random(0, 3); // Zufällige LED (0-2)

 sequenceLength++;

}

void lightUpLed(int ledIndex) {

 digitalWrite(ledPins[ledIndex], HIGH);

 delay(400);

 digitalWrite(ledPins[ledIndex], LOW);

 delay(200);

}

void gameOver() {

 for (int i = 0; i < 3; i++) {

   digitalWrite(ledPins[i], HIGH);

 }

 delay(1000);

 for (int i = 0; i < 3; i++) {

   digitalWrite(ledPins[i], LOW);

 }

 delay(1000);

 startGame();

}