Wie programmiere ich bei Arduino das Spiel Simon Says?
Hallo,
wir programmieren momentan in der Schule mithilfe des Arduions das Spiel Simon Says mit nur 3 Lampen (blau, rot und grün) und einem Lautsprecher. Wir haben bald Abgabetermin jedoch komm ich nicht weiter. Ich habe bereits jeden Durchlauf als Unterprogramm aufgeschrieben, allerdings habe ich keine Ahnung wie ich den Programmablaufplan mit den ganzen Tastern programmieren soll. Es wäre nett und super hilfreich wenn mir jemand helfen könnte.
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- Drei LEDs repräsentieren die Lampen.
- Drei Tasten repräsentieren die Eingabe des Spielers.
- Das Spiel generiert eine zufällige Sequenz, die der Spieler nachmachen muss.
- Wenn der Spieler die Sequenz korrekt wiedergibt, wird die Sequenz verlängert.
- Bei einem Fehler wird das Spiel zurückgesetzt.
- 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();
}