Smart board game (16 / 21 étapes)

Étape 16 : Main jeu module - combinant le code

Maintenant que nous avons tout le code que nous avons besoin pour la boucle de jeu nous pouvons combiner tout cela. J’ai eu deux versions du code combiné. On est avec le dlc et un est withouth le DLC. Le code est également joint en téléchargement, vous pouvez donc utiliser celui-là. Le code est prêt à aller si vous utilisez tous les ports de la même manière que nous avons fait. Si vous avez modifié certains de l’arround ports vérifier la puissance réactive dans le code et modifiez-les si nécessaire.

Le code sans le DLC :

 <p>//Vars for Gameloop<br3#include int gameChooser = 0; int ChoosenGame = 0; int Gamewin = 0; int scoreP1 = 0; int scoreP2 = 0; int Turn = 0; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); int buttonGCPin = 10; int buttonSelectPin = 11; int TurnEnable = 1; boolean currentButtonState = LOW; boolean lastButtonState = LOW;</p><p>//Vars for buzzwire int wireRodPin = A3; int wireFeedbackPin = 53; int BuzzHit = 0;</p><p>//Vars for Simon Says #include Tone speakerpin;</p><p>int starttune[] = {NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_F4, NOTE_G4}; int duration2[] = {100, 200, 100, 200, 100, 400, 100, 100, 100, 100, 200, 100, 500}; int note[] = {NOTE_C4, NOTE_C4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5}; int duration[] = {100, 100, 100, 300, 100, 300}; int button[] = {26, 27, 28, 29}; //Vier knop pins int ledpin[] = {22, 23, 24, 25}; // LED pins int turnss = 0; // turnss counter int buttonstate = 0; // button state checker int randomArray[100]; //Verschillende volgorde int inputArray[100];</p><p>//Global vars int lives = 3;</p><p>void setup() { Serial.begin(9600); lcd.begin(16, 2);</p><p> //GameLoop setup pinMode(buttonGCPin, INPUT); pinMode(buttonSelectPin, INPUT);</p><p> //Buzzwire setup pinMode(wireRodPin, INPUT); pinMode(wireFeedbackPin, OUTPUT);</p><p> // Simon Says Setup speakerpin.begin(30); // speaker op pin 10</p><p> for (int i = 0; i < 4; i++) { pinMode(ledpin[i], OUTPUT); }</p><p> for (int i = 0; i < 4; i++) { pinMode(button[i], INPUT); digitalWrite(button[i], HIGH); }</p><p> randomSeed(analogRead(15)); //Added to generate "more randomness" with the randomArray for the output function for (int thisNote = 0; thisNote < 13; thisNote ++) { // play the next note: speakerpin.play(starttune[thisNote]); // hold the note: if (thisNote == 0 || thisNote == 2 || thisNote == 4 || thisNote == 6) { digitalWrite(ledpin[0], HIGH); } if (thisNote == 1 || thisNote == 3 || thisNote == 5 || thisNote == 7 || thisNote == 9 || thisNote == 11) { digitalWrite(ledpin[1], HIGH); } if (thisNote == 8 || thisNote == 12) { digitalWrite(ledpin[2], HIGH); } if (thisNote == 10) { digitalWrite(ledpin[3], HIGH); } delay(duration2[thisNote]); // stop for the next note: speakerpin.stop(); digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); delay(25); } delay(1000); }</p><p>void loop() { if (Turn == 0 && TurnEnable == 1) { lcd.setCursor(0, 0); lcd.print("Player 1's turn"); lcd.setCursor(0, 1); lcd.print("Waiting for game"); currentButtonState = digitalRead(buttonSelectPin); if (currentButtonState == HIGH && lastButtonState == LOW) { gameChooser = 1; TurnEnable = 0; lcd.clear(); } } if (Turn == 1 && TurnEnable == 1) { lcd.setCursor(0, 0); lcd.print("Player 2's turn"); lcd.setCursor(0, 1); lcd.print("Waiting for game"); currentButtonState = digitalRead(buttonSelectPin); if (currentButtonState == HIGH && lastButtonState == LOW) { gameChooser = 1; TurnEnable = 0; lcd.clear(); } }</p><p> if (gameChooser == 1) { gamePicker(); } lastButtonState = currentButtonState;</p><p> //Simon Says if (ChoosenGame == 1) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("Simon Says"); if (lives == 0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; turnss = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; turnss = 0; TurnSwitch(); } else { SimonSays(); } }</p><p> //BuzzWire if (ChoosenGame == 2) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("BuzzWire"); buzzwire(); if (lives == 0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; TurnSwitch(); } } }</p><p>//////////////////////////////////////////////////////////////////////// // // //Game Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void TurnSwitch() { if (Turn == 0) { Turn = 1; TurnEnable = 1; lives = 3; } else if (Turn == 1) { Turn = 0; TurnEnable = 1; lives = 3; } }</p><p>void gamePicker() { int sensorValue = analogRead(A0); //game kies menu if (sensorValue < 500) { lcd.setCursor(0, 0); // lcd.print(">Simon Says< "); lcd.setCursor(0, 1); lcd.print("BuzzWire "); } else if (sensorValue > 500) { lcd.setCursor(0, 0); lcd.print(">BuzzWire< "); lcd.setCursor(0, 1); lcd.print(" "); }</p><p> currentButtonState = digitalRead(buttonGCPin); if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue < 500) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("Simon Says "); delay(2000); lcd.clear(); ChoosenGame = 1; gameChooser = 0; } else if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue > 500) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("BuzzWire "); delay(2000); lcd.clear(); ChoosenGame = 2; gameChooser = 0; } lastButtonState = currentButtonState; }</p><p>void victorysound() { for (int thisNote = 0; thisNote < 6; thisNote ++) { // play the next note: speakerpin.play(note[thisNote]); // hold the note: delay(duration[thisNote]); // stop for the next note: speakerpin.stop(); delay(25); } }</p><p>void failsound() { for (int y = 0; y <= 2; y++) { speakerpin.play(NOTE_G3, 300); delay(200); speakerpin.play(NOTE_C3, 300); delay(200); } }</p><p>//////////////////////////////////////////////////////////////////////// // // //Simon Says Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void SimonSays() { // for (int y = 0; y <= 99; y++) // {</p><p> //function for generating the array to be matched by the player digitalWrite(ledpin[0], HIGH); digitalWrite(ledpin[1], HIGH); digitalWrite(ledpin[2], HIGH); digitalWrite(ledpin[3], HIGH);</p><p> for (int thisNote = 0; thisNote < 6; thisNote ++) { // play the next note: speakerpin.play(note[thisNote]); // hold the note: delay(duration[thisNote]); // stop for the next note: speakerpin.stop(); delay(25); }</p><p> digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); delay(1000);</p><p> for (int y = turnss; y <= turnss; y++) { //Limited by the turnss variable Serial.println(""); //Some serial output to follow along Serial.print("Turn: "); Serial.print(y); Serial.println(""); randomArray[y] = random(1, 5); //Assigning a random number (1-4) to the randomArray[y], y being the turnss count for (int i = 0; i <= turnss; i++) { Serial.print(randomArray[i]);</p><p> for (int y = 0; y < 4; y++) {</p><p> if (randomArray[i] == 1 && ledpin[y] == 22) { //if statements to display the stored values in the array digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_G3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 2 && ledpin[y] == 23) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_A3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 3 && ledpin[y] == 24) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_B3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 4 && ledpin[y] == 25) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_C4, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); } } } }0 input();</p><p> // }</p><p>}</p><p>void input() {</p><p> for (int i = 0; i <= turnss;) { for (int y = 0; y < 4; y++) {</p><p> buttonstate = digitalRead(button[y]);</p><p> if (buttonstate == LOW && button[y] == 26) { //Checking for button push digitalWrite(ledpin[0], HIGH); speakerpin.play(NOTE_G3, 100); delay(200); digitalWrite(ledpin[0], LOW); inputArray[i] = 1; delay(250); Serial.print(" "); Serial.print(1); if (inputArray[i] != randomArray[i]) { fail(); } i++; } if (buttonstate == LOW && button[y] == 27) { digitalWrite(ledpin[1], HIGH); speakerpin.play(NOTE_A3, 100); delay(200); digitalWrite(ledpin[1], LOW); inputArray[i] = 2; delay(250); Serial.print(" "); Serial.print(2); if (inputArray[i] != randomArray[i]) { fail(); } i++; }</p><p> if (buttonstate == LOW && button[y] == 28) { digitalWrite(ledpin[2], HIGH); speakerpin.play(NOTE_B3, 100); delay(200); digitalWrite(ledpin[2], LOW); inputArray[i] = 3; delay(250); Serial.print(" "); Serial.print(3); if (inputArray[i] != randomArray[i]) { fail(); } i++; }</p><p> if (buttonstate == LOW && button[y] == 29) { digitalWrite(ledpin[3], HIGH); speakerpin.play(NOTE_C4, 100); delay(200); digitalWrite(ledpin[3], LOW); inputArray[i] = 4; delay(250); Serial.print(" "); Serial.print(4); if (inputArray[i] != randomArray[i]) { fail(); } i++; } } } delay(500); turnss++; if (turnss == 4) { lives = 5; } }</p><p>void fail() {</p><p> for (int y = 0; y <= 2; y++) { //Flashes lights for failure</p><p> digitalWrite(ledpin[0], HIGH); digitalWrite(ledpin[1], HIGH); digitalWrite(ledpin[2], HIGH); digitalWrite(ledpin[3], HIGH); speakerpin.play(NOTE_G3, 300); delay(200); digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); speakerpin.play(NOTE_C3, 300); delay(200); } delay(500); turnss--; lives--; Serial.println("Lives: " + String(lives)); }</p><p>//////////////////////////////////////////////////////////////////////// // // //BuzzWire Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void buzzwire() { BuzzHit = analogRead(wireRodPin);</p><p> if (BuzzHit > 1000) { Serial.println("lose hit"); digitalWrite(wireFeedbackPin, HIGH); delay(1500); digitalWrite(wireFeedbackPin, LOW); lives--; } else { digitalWrite(wireFeedbackPin, LOW); } currentButtonState = digitalRead(buttonGCPin); if (currentButtonState == HIGH && lastButtonState == LOW) { Serial.println("win hit"); lives = 5; } lastButtonState = currentButtonState; }</p> 

Le code avec le DLC :

 <p>//Vars for Gameloop<br>#include <LiquidCrystal.h> int gameChooser = 0; int ChoosenGame = 0; int Gamewin = 0; int scoreP1 = 0; int scoreP2 = 0; int Turn = 0; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); int buttonGCPin = 10; int buttonSelectPin = 11; int TurnEnable = 1; boolean currentButtonState = LOW; boolean lastButtonState = LOW;</p><p>//Vars for buzzwire int wireRodPin = A3; int wireFeedbackPin = 53; int BuzzHit = 0;</p><p>//Vars for wirepuller int wireOut1 = 31; int wireIn1 = 32; int wireOut2 = 33; int wireIn2 = 34; int wireOut3 = 35; int wireIn3 = 36; boolean current1 = LOW; boolean current2 = LOW; boolean current3 = LOW; boolean previous1 = LOW; boolean previous2 = LOW; boolean previous3 = LOW; int randNumber = 0;</p><p>//Vars for noisedetector int micPin = A2; int micValue = 0; int micCounter = 1; int micTimer = 0; int micSeconds = 0;</p><p>//Vars for quiz LiquidCrystal lcdquiz(44, 45, 46, 47, 48, 49); int buttonQuizPin = 52; boolean currentQuizButtonState = LOW; boolean lastQuizButtonState = LOW;</p><p>//Vars for Simon Says #include Tone speakerpin;</p><p>int starttune[] = {NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_F4, NOTE_G4}; int duration2[] = {100, 200, 100, 200, 100, 400, 100, 100, 100, 100, 200, 100, 500}; int note[] = {NOTE_C4, NOTE_C4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5}; int duration[] = {100, 100, 100, 300, 100, 300}; int button[] = {26, 27, 28, 29}; //Vier knop pins int ledpin[] = {22, 23, 24, 25}; // LED pins int turnss = 0; // turnss counter int buttonstate = 0; // button state checker int randomArray[100]; //Verschillende volgorde int inputArray[100];</p><p>//Global vars int lives = 3;</p><p>void setup() { Serial.begin(9600); lcd.begin(16, 2);</p><p> //GameLoop setup pinMode(buttonGCPin, INPUT); pinMode(buttonSelectPin, INPUT);</p><p> //Buzzwire setup pinMode(wireRodPin, INPUT); pinMode(wireFeedbackPin, OUTPUT);</p><p> //WirePuller Setup pinMode(wireOut1, OUTPUT); pinMode(wireIn1, INPUT); pinMode(wireOut2, OUTPUT); pinMode(wireIn2, INPUT); pinMode(wireOut3, OUTPUT); pinMode(wireIn3, INPUT); randomSeed(analogRead(A7)); randNumber = random(3); randNumber++; Serial.println(randNumber);</p><p> //Noisedetector setup pinMode(micPin, INPUT);</p><p> //Quiz setup lcdquiz.begin(16, 2); pinMode(buttonQuizPin, INPUT);</p><p> // Simon Says Setup speakerpin.begin(30); // speaker op pin 10</p><p> for (int i = 0; i < 4; i++) { pinMode(ledpin[i], OUTPUT); }</p><p> for (int i = 0; i < 4; i++) { pinMode(button[i], INPUT); digitalWrite(button[i], HIGH); }</p><p> randomSeed(analogRead(15)); //Added to generate "more randomness" with the randomArray for the output function for (int thisNote = 0; thisNote < 13; thisNote ++) { // play the next note: speakerpin.play(starttune[thisNote]); // hold the note: if (thisNote == 0 || thisNote == 2 || thisNote == 4 || thisNote == 6) { digitalWrite(ledpin[0], HIGH); } if (thisNote == 1 || thisNote == 3 || thisNote == 5 || thisNote == 7 || thisNote == 9 || thisNote == 11) { digitalWrite(ledpin[1], HIGH); } if (thisNote == 8 || thisNote == 12) { digitalWrite(ledpin[2], HIGH); } if (thisNote == 10) { digitalWrite(ledpin[3], HIGH); } delay(duration2[thisNote]); // stop for the next note: speakerpin.stop(); digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); delay(25); } delay(1000); }</p><p>void loop() { if (Turn == 0 && TurnEnable == 1) { lcd.setCursor(0, 0); lcd.print("Player 1's turn"); lcd.setCursor(0, 1); lcd.print("Waiting for game"); currentButtonState = digitalRead(buttonSelectPin); if (currentButtonState == HIGH && lastButtonState == LOW) { gameChooser = 1; TurnEnable = 0; lcd.clear(); } } if (Turn == 1 && TurnEnable == 1) { lcd.setCursor(0, 0); lcd.print("Player 2's turn"); lcd.setCursor(0, 1); lcd.print("Waiting for game"); currentButtonState = digitalRead(buttonSelectPin); if (currentButtonState == HIGH && lastButtonState == LOW) { gameChooser = 1; TurnEnable = 0; lcd.clear(); } }</p><p> if (gameChooser == 1) { gamePicker(); } lastButtonState = currentButtonState;</p><p> //Simon Says if (ChoosenGame == 1) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("Simon Says"); if (lives == 0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; turnss = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; turnss = 0; TurnSwitch(); } else { SimonSays(); } }</p><p> // WirePuller if (ChoosenGame == 2) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("Wirepuller"); wirepuller(); if (lives == 0) { lcdquiz.clear(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; TurnSwitch(); } else if (lives == 5) { lcdquiz.clear(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; TurnSwitch(); } } //BuzzWire if (ChoosenGame == 3) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("BuzzWire"); buzzwire(); if (lives == 0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; TurnSwitch(); } } //NoiseDetector if (ChoosenGame == 4) { lcd.setCursor(0, 0); lcd.print("Playing:"); lcd.setCursor(0, 1); lcd.print("Noisedetector"); noisedetector(); if (lives == 0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; TurnSwitch(); } } //Quiz if (ChoosenGame == 5) { quiz(); if (lives == 0) { lcd.clear(); lcdquiz.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Is Gameover!"); failsound(); delay(2500); ChoosenGame = 0; TurnSwitch(); } else if (lives == 5) { lcd.clear(); lcdquiz.clear(); lcd.setCursor(0, 0); lcd.print("Player " + String(Turn + 1)); lcd.setCursor(0, 1); lcd.print("Gained a point!"); delay(2500); victorysound(); ChoosenGame = 0; TurnSwitch(); } } }</p><p>//////////////////////////////////////////////////////////////////////// // // //Game Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void TurnSwitch() { if (Turn == 0) { Turn = 1; TurnEnable = 1; lives = 3; } else if (Turn == 1) { Turn = 0; TurnEnable = 1; lives = 3; } }</p><p>void gamePicker() { int sensorValue = analogRead(A0); //game kies menu if (sensorValue < 200) { lcd.setCursor(0, 0); // lcd.print(">Simon Says< "); lcd.setCursor(0, 1); lcd.print("WirePuller "); } else if (sensorValue > 200 && sensorValue < 400) { lcd.setCursor(0, 0); lcd.print(">WirePuller< "); lcd.setCursor(0, 1); lcd.print("BuzzWire "); } else if (sensorValue > 400 && sensorValue < 600) { lcd.setCursor(0, 0); lcd.print(">BuzzWire< "); lcd.setCursor(0, 1); lcd.print("NoiseDetector "); } else if (sensorValue > 600 && sensorValue < 800) { lcd.setCursor(0, 0); lcd.print(">NoiseDetector< "); lcd.setCursor(0, 1); lcd.print("Quiz "); } else if (sensorValue > 800) { lcd.setCursor(0, 0); lcd.print(">Quiz< "); lcd.setCursor(0, 1); lcd.print(" "); }</p><p> currentButtonState = digitalRead(buttonGCPin); if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue < 200) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("Simon Says "); delay(2000); lcd.clear(); ChoosenGame = 1; gameChooser = 0; } else if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue > 200 && sensorValue < 400) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("WirePuller "); delay(2000); lcd.clear(); ChoosenGame = 2; gameChooser = 0; } else if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue > 400 && sensorValue < 600) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("BuzzWire "); delay(2000); lcd.clear(); ChoosenGame = 3; gameChooser = 0; } else if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue > 600 && sensorValue < 800) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("NoiseDetector "); delay(2000); lcd.clear(); ChoosenGame = 4; gameChooser = 0; } else if (currentButtonState == HIGH && lastButtonState == LOW && sensorValue > 800) { lcd.setCursor(0, 0); lcd.print("Starting: "); lcd.setCursor(0, 1); lcd.print("Quiz "); delay(2000); lcd.clear(); ChoosenGame = 5; gameChooser = 0; } lastButtonState = currentButtonState; }</p><p>void victorysound() { for (int thisNote = 0; thisNote < 6; thisNote ++) { // play the next note: speakerpin.play(note[thisNote]); // hold the note: delay(duration[thisNote]); // stop for the next note: speakerpin.stop(); delay(25); } }</p><p>void failsound() { for (int y = 0; y <= 2; y++) { speakerpin.play(NOTE_G3, 300); delay(200); speakerpin.play(NOTE_C3, 300); delay(200); } }</p><p>//////////////////////////////////////////////////////////////////////// // // //Simon Says Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void SimonSays() { // for (int y = 0; y <= 99; y++) // {</p><p> //function for generating the array to be matched by the player digitalWrite(ledpin[0], HIGH); digitalWrite(ledpin[1], HIGH); digitalWrite(ledpin[2], HIGH); digitalWrite(ledpin[3], HIGH);</p><p> for (int thisNote = 0; thisNote < 6; thisNote ++) { // play the next note: speakerpin.play(note[thisNote]); // hold the note: delay(duration[thisNote]); // stop for the next note: speakerpin.stop(); delay(25); }</p><p> digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); delay(1000);</p><p> for (int y = turnss; y <= turnss; y++) { //Limited by the turnss variable Serial.println(""); //Some serial output to follow along Serial.print("Turn: "); Serial.print(y); Serial.println(""); randomArray[y] = random(1, 5); //Assigning a random number (1-4) to the randomArray[y], y being the turnss count for (int i = 0; i <= turnss; i++) { Serial.print(randomArray[i]);</p><p> for (int y = 0; y < 4; y++) {</p><p> if (randomArray[i] == 1 && ledpin[y] == 22) { //if statements to display the stored values in the array digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_G3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 2 && ledpin[y] == 23) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_A3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 3 && ledpin[y] == 24) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_B3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); }</p><p> if (randomArray[i] == 4 && ledpin[y] == 25) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_C4, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); } } } }0 input();</p><p> // }</p><p>}</p><p>void input() {</p><p> for (int i = 0; i <= turnss;) { for (int y = 0; y < 4; y++) {</p><p> buttonstate = digitalRead(button[y]);</p><p> if (buttonstate == LOW && button[y] == 26) { //Checking for button push digitalWrite(ledpin[0], HIGH); speakerpin.play(NOTE_G3, 100); delay(200); digitalWrite(ledpin[0], LOW); inputArray[i] = 1; delay(250); Serial.print(" "); Serial.print(1); if (inputArray[i] != randomArray[i]) { fail(); } i++; } if (buttonstate == LOW && button[y] == 27) { digitalWrite(ledpin[1], HIGH); speakerpin.play(NOTE_A3, 100); delay(200); digitalWrite(ledpin[1], LOW); inputArray[i] = 2; delay(250); Serial.print(" "); Serial.print(2); if (inputArray[i] != randomArray[i]) { fail(); } i++; }</p><p> if (buttonstate == LOW && button[y] == 28) { digitalWrite(ledpin[2], HIGH); speakerpin.play(NOTE_B3, 100); delay(200); digitalWrite(ledpin[2], LOW); inputArray[i] = 3; delay(250); Serial.print(" "); Serial.print(3); if (inputArray[i] != randomArray[i]) { fail(); } i++; }</p><p> if (buttonstate == LOW && button[y] == 29) { digitalWrite(ledpin[3], HIGH); speakerpin.play(NOTE_C4, 100); delay(200); digitalWrite(ledpin[3], LOW); inputArray[i] = 4; delay(250); Serial.print(" "); Serial.print(4); if (inputArray[i] != randomArray[i]) { fail(); } i++; } } } delay(500); turnss++; if (turnss == 4) { lives = 5; } }</p><p>void fail() {</p><p> for (int y = 0; y <= 2; y++) { //Flashes lights for failure</p><p> digitalWrite(ledpin[0], HIGH); digitalWrite(ledpin[1], HIGH); digitalWrite(ledpin[2], HIGH); digitalWrite(ledpin[3], HIGH); speakerpin.play(NOTE_G3, 300); delay(200); digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); speakerpin.play(NOTE_C3, 300); delay(200); } delay(500); turnss--; lives--; Serial.println("Lives: " + String(lives)); }</p><p>//////////////////////////////////////////////////////////////////////// // // //WirePuller Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void wirepuller() { digitalWrite(wireOut1, HIGH); digitalWrite(wireOut2, HIGH); digitalWrite(wireOut3, HIGH); current1 = digitalRead(wireIn1); current2 = digitalRead(wireIn2); current3 = digitalRead(wireIn3); Serial.println(String(current1) + " " + String(previous1)); Serial.println(String(current2) + " " + String(previous2)); Serial.println(String(current3) + " " + String(previous3)); Serial.println(randNumber); if (current1 == previous1 && randNumber == 1) { Serial.println("le eerste win"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current1 == previous1) { Serial.println("le eerste"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } if (current2 == previous2 && randNumber == 2) { Serial.println("le tweetste win"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current2 == previous2) { Serial.println("le tweeste"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } if (current3 == previous3 && randNumber == 3) {</p><p> Serial.println("le drieste win"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current3 == previous3) { Serial.println("le drieste"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } previous1 = current1; previous2 = current2; previous3 = current3; digitalWrite(wireOut1, LOW); digitalWrite(wireOut2, LOW); digitalWrite(wireOut3, LOW); current1 = digitalRead(wireIn1); current2 = digitalRead(wireIn2); current3 = digitalRead(wireIn3); if (current1 == previous1 && randNumber == 1) { Serial.println("le eerste win check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current1 == previous1) { Serial.println("le eerste check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } if (current2 == previous2 && randNumber == 2) { Serial.println("le tweerste win check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current2 == previous2) { Serial.println("le tweerste check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } if (current3 == previous3 && randNumber == 3) {</p><p> Serial.println("le driederste win check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the right wire"); delay(2500); lcdquiz.clear(); lives = 5; } else if (current3 == previous3){ Serial.println("le driederste check 2"); lcdquiz.clear(); lcdquiz.setCursor(0, 0); lcdquiz.print("You pulled"); lcdquiz.setCursor(0, 1); lcdquiz.print("the wrong wire"); delay(2500); lcdquiz.clear(); lives = 0; } previous1 = current1; previous2 = current2; previous3 = current3; }</p><p>//////////////////////////////////////////////////////////////////////// // // //BuzzWire Functions // // // ////////////////////////////////////////////////////////////////////////</p><p>void buzzwire() { BuzzHit = analogRead(wireRodPin);</p><p> if (BuzzHit > 1000) { Serial.println("lose hit"); digitalWrite(wireFeedbackPin, HIGH); delay(1500); digitalWrite(wireFeedbackPin, LOW); lives--; } else { digitalWrite(wireFeedbackPin, LOW); } currentButtonState = digitalRead(buttonGCPin); if (currentButtonState == HIGH && lastButtonState == LOW) { Serial.println("win hit"); lives = 5; } lastButtonState = currentButtonState; }</p><p> ////////////////////////////////////////////////////////////////////////// // //NoiseDetector Functions // // // ////////////////////////////////////////////////////////////////////////void noisedetector() { lcdquiz.setCursor(0, 0); lcdquiz.print("GO GO GO!"); if (micSeconds > 10) { lcdquiz.setCursor(0, 0); lcdquiz.print("You lose!"); micTimer = 0; micCounter = 0; micSeconds = 0; delay(1000); lives = 0; lcdquiz.clear(); } else { if (micCounter > 500) { micCounter = 0; micTimer = 0; micSeconds = 0; lcdquiz.setCursor(0, 0); lcdquiz.print("You win!"); delay(1000); lives = 5; lcdquiz.clear(); } micValue = analogRead(micPin); Serial.println(micValue); if (micValue > 95) { micCounter++; lcdquiz.setCursor(0, 1); lcdquiz.print(micCounter); } micTimer++; if (micTimer == 150) { micSeconds++ ; micTimer = 0; } } } //////////////////////////////////////////////////////////////////////// // // //Quiz Functions // // // //////////////////////////////////////////////////////////////////////// </p><p>void quiz() { int sensorValue = analogRead(A1); lcd.setCursor(0, 0); lcd.print("How old is"); lcd.setCursor(0, 1); lcd.print("Floris?"); if (sensorValue < 250) { lcdquiz.setCursor(0, 0); // lcdquiz.print(">20< 21 "); lcdquiz.setCursor(0, 1); lcdquiz.print(" 22 23 "); } else if (sensorValue > 250 && sensorValue < 500) { lcdquiz.setCursor(0, 0); lcdquiz.print(" 20 >21< "); lcdquiz.setCursor(0, 1); lcdquiz.print(" 22 23 "); } else if (sensorValue > 500 && sensorValue < 750) { lcdquiz.setCursor(0, 0); lcdquiz.print(" 20 21 "); lcdquiz.setCursor(0, 1); lcdquiz.print(">22< 23 "); } else if (sensorValue > 750) { lcdquiz.setCursor(0, 0); lcdquiz.print(" 20 21 "); lcdquiz.setCursor(0, 1); lcdquiz.print(" 22 >23< "); }</p><p> currentQuizButtonState = digitalRead(buttonQuizPin); if (currentQuizButtonState == HIGH && lastQuizButtonState == LOW && sensorValue > 750) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Correct!"); delay(2500); lives = 5; } else if (currentQuizButtonState == HIGH && lastQuizButtonState == LOW && sensorValue < 750) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wrong!"); lcd.setCursor(0, 1); lcd.print("Try again!"); delay(2500); lcd.clear(); lives--; } lastQuizButtonState = currentQuizButtonState; </p> 

Articles Liés

SMART Board : Intel Edison et salesforce CRM

SMART Board : Intel Edison et salesforce CRM

À l'aide d'intel edison à surveiller les paramètres d'environnement (hazard, confort) en classe, invoquer un incident au système scolaire salesforce salesforce et notifier automatiquement l'administrateur de l'école et le respectifs préféré du vendeu
Sailor Moon Mixed Board Game

Sailor Moon Mixed Board Game

Corps principal de ce jeu est « Monopoly Millionaires », mais en fait mélangés avec une partie de « The Game Of Life » et deux règles de « Échecs de l'avion ».Éléments inclus dans le jeu sont :(1) Une paire de dés à six faces(2) Papier-monnaie (total
Wall Board Game montable pour CNC Mill

Wall Board Game montable pour CNC Mill

avez-vous jamais gagné une nuit épique jeu de société ? Avez-vous envie de montrer que la victoire sur votre mur du salon ? Eh bien, avec cette instructable, vous pouvez construire votre propre mur montable en jeu de société qui sera l'envie de vos i
Board Games

Board Games

Je me souviens en grandissant j'ai toujours voulu jouer brouillons quand j'ai eu fini avec les échecs, mais j'ai toujours eu à nettoyer en premier. Maintenant, enfin, je n'ai pas de nettoyer, je peux arrêter de jouer les n utilisation d'échecs les mê
Build A trois trou rondelles Board Game

Build A trois trou rondelles Board Game

mes grands-parents copines font partie de la loge d'élans, ils jouent ce jeu beaucoup. Ils disent que ce jeu a été créé par la loge ; Je peux ni confirmer ni infirmer ce fait. Je ne suis pas l'un qui a inventé il (veux juste préciser). Toute façons,
Trailer Park Boys Board Game

Trailer Park Boys Board Game

jeu chaque personne choisit un de 11 caractères lahey exonéré... Il va sur le barrage routierEtape 1: Au début Roll pour voir combien de places vous pouvez déplacerÉtape 2: Le reste est à vous
Jeu Smart Gear

Jeu Smart Gear

J'ai trouvé ces instructables : etvraiment génial ! Par ailleurs, grâce à alpinedelta et tomatoskins.Dans mon enfance, j'ai toujours préféré la Sega Game Gear pour la Game Boy. Alors, j'ai voulu faire la même chose que tomatoskins, mais avec cette co
Support magnétique pour appareil photo ou un projecteur de vieux disques durs

Support magnétique pour appareil photo ou un projecteur de vieux disques durs

J'ai récemment acheté un pico projecteur (Étang de Pico toucher) et je cherchais un moyen pratique de le monter pour pointer vers le bas sur une table ou divers autres surfaces pour créer un "smart board" où je voulais. J'avais déjà créé un supp
Jeu de plateau magnétique Hnefatafl

Jeu de plateau magnétique Hnefatafl

Hnefatafl qui se traduit par « Table du roi » est un jeu de plateau stratégique qui a été joué par les Vikings entre le 8e et le 10e siècle. C'était un jeu populaire joué dans les pays nordiques et il a suivi la civilisation Viking à travers d'autres
Automatique distributeur de bonbons d’Halloween

Automatique distributeur de bonbons d’Halloween

cette année, mon projet de Halloween est Automatic Halloween Candy Dispenser® déclenchée par TextforTreat®, CallforTreat® (propulsé par Twilio) et technologies. Bien sûr il peut également être déclenché d'un bouton poussoir de Big Red , mais où est l
Une visite virtuelle de la Galerie au Pendleton Center for the Arts

Une visite virtuelle de la Galerie au Pendleton Center for the Arts

grâce à un effort de collaboration par le centre de Pendleton pour les professeurs de la région de Pendleton, dans l'Oregon et les Arts (PCA), le programme d'excursion virtuelle PCA suivant est présenté comme une occasion de faire participer les élèv
Comment démarrer et organiser un Festival de films

Comment démarrer et organiser un Festival de films

Festivals de cinéma sont une excellente façon de présenter les nouveaux films que vous et vos camarades de classe ont produit.Alors que la plupart des festivals de film prendra beaucoup de temps à préparer, elles aussi est possible rapidement et de m
Augmenter la capacité (runtime) de votre batterie d’ordinateur portable.

Augmenter la capacité (runtime) de votre batterie d’ordinateur portable.

Est votre PC portable batterie morte ?Est la duree pas assez longtemps pour vous passer la journée ?Effectuez-vous un de ces énormes blocs-batteries externes ?Cette instructable est destinée à montrer comment on peut remplacer les cellules mortes li-
L’éducation garçon et fille outil d’apprentissage

L’éducation garçon et fille outil d’apprentissage

éducation collègue salutations aimer instuctavillians !  Aujourd'hui, nous allons explorer comment faire pour créer un divertissement interactif d'apprentissage outil pour les étudiants à utiliser pour le quiz eux-mêmes et entre eux et donner une mai