Smart board game (6 / 21 étapes)

Étape 6: Simon dit Module - adapter le Code

Jusqu'à maintenant nous avons le code et il fonctionne parfaitement avec l’arduino sur son propre, il est temps de ré-écrire le code, donc il peut être utilisé dans le module principal du jeu. Cette étape est sensiblement la même pour tous les modules et si vous le faites de cette façon que vous pouvez très facilement développer le module de jeu jusqu'à ce qu’il fonctionne en provenance des ports (qui sont un grand nombre de ports sur l’arduino mega lol)

Nous devons commencer par définir les variables pour le module dans le code principal, j’ai commenté tout sorte qu’il reste lisible.

J’ai adapté les ports vers les ports sur la vue de droite sur la carte, donc les ports mieux alignées avec la place de la simon dit module sur la planche.

 /Vars for Simon Says#include Tone speakerpin; 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]; 

Prochain suivez que le programme d’installation qui sera dans la boucle de programme d’installation de l’arduino, que ce code est toujours le même sauf pour la broche de haut-parleur, que je me suis déplacé qu’afin de mieux s’adapter à la position de la simon dit module.

 speakerpin.begin(30); for (int i = 0; i < 4; i++) { pinMode(ledpin[i], OUTPUT); } for (int i = 0; i < 4; i++) { pinMode(button[i], INPUT); digitalWrite(button[i], HIGH); } 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); } 

Depuis l’unité de jeu principaux contrôles al les jeux et le temps qu’ils s’activera, toutes les fonctions de boucle de modules ont été mis dans les fonctions qui sont appelées basées sur ce qui se passe dans la boucle principale

 ////////////////////////////////////////////////////////////////////////// // //Simon Says Functions // // // ////////////////////////////////////////////////////////////////////////void SimonSays() { //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); 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); } digitalWrite(ledpin[0], LOW); digitalWrite(ledpin[1], LOW); digitalWrite(ledpin[2], LOW); digitalWrite(ledpin[3], LOW); delay(1000); 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]); for (int y = 0; y < 4; y++) { 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); } if (randomArray[i] == 2 && ledpin[y] == 23) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_A3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); } if (randomArray[i] == 3 && ledpin[y] == 24) { digitalWrite(ledpin[y], HIGH); speakerpin.play(NOTE_B3, 100); delay(400); digitalWrite(ledpin[y], LOW); delay(100); } 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();}void input() { for (int i = 0; i <= turnss;) { for (int y = 0; y < 4; y++) { buttonstate = digitalRead(button[y]); 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++; } 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++; } 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; } }void fail() { for (int y = 0; y <= 2; y++) { //Flashes lights for failure 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)); } 

Le code ci-dessus est toujours le même que l’original simon dit code. La seule chose qui changée est qu’il est dans sa propre fonction et si vous échouez le jeu va prendre une de vos vies. Si vous atteigniez 4 et que vous gagnez le jeu wil mettre vos vies sur 5. En affectant votre vie 5 le jeu principal reconnaît que le jeu est terminé et a été remporté par le joueur.

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