Smart board game (15 / 21 étapes)

Étape 15 : Main jeu module - rendre le code

Cette étape i assez grand puisqu’il couvre beaucoup de renseignements concernant la programmation du module principal. Voici une explication ce que fait chaque partie du code. Si vous ne ressentez pas le besoin de connaître le nitty graveleux du code vous pouvez passez directement à l’étape suivante. Le code complet de wil figurer là.

Nous devons commencer par définir toutes les variables.

 //Vars for Gameloop#include <LiquidCrystal.h>int gameChooser = 0; int ChoosenGame = 0; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); int buttonGCPin = 10; int buttonSelectPin = 11;//Global vars int lives = 3; int TurnEnable = 1; int Turn = 0; boolean currentButtonState = LOW; boolean lastButtonState = LOW; 

La puissance réactive comprend 2 sections, que la première section est de toutes les variables utilisées par la partie de la sélection des jeux du code. La deuxième section sont les variables utilisées par diverses fonctions dans le code.

Après que nous avons défini les variables que nous avons le programme d’installation pour le gameloop.

 void setup() { Serial.begin(9600); lcd.begin(16, 2);//GameLoop setup pinMode(buttonGCPin, INPUT); pinMode(buttonSelectPin, INPUT);} 

D’abord nous avons la la série commence. C’est quelque chose que vous n’avez pas besoin. Il est là pour des fins de débogage. Vous pouvez vérifier avec le retour des jeux dans le moniteur de la série.

C’est la boucle qui bassically contrôle tout, les deux premiers contrôles sont pour vérifier quel joueurs c’est le tour et que l’impression. Il y a aussi un contrôle pour entrer dans le menu du bouton select. Si le bouton est enfoncé le sélecteur de jeu sera activé et le TurnEnable est désactivé. arrêt de la boucle de l’impression de faire ce que les joueurs est.

 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(); } }if (gameChooser == 1) { gamePicker(); }} 

Si le bouton sélecteur de jeu a été actionné s’appellera la fonction gamepicker. C’est la fonction suivante :

 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(" "); } 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; } 

Ce qu’il fait c’est le contrôle le menu scrolltrough des jeux. Dans ce menu, vous sélectionnez un des jeux

Qu’il s’agit de la partie qui contrôle tous les mécanismes du jeu. Si vous avez sélectionné un jeu il montre quel jeu est joué. Ces boucles de gamecontrol aussi vérifier si vous avez gagné ou perdu un mini-jeu. Lorsque vous gagnez un mini-jeu le wil écran dire joueur [numéro de lecteur] a gagné un point. Ce qui indique que vous avez gagné la partie de ce jeu. Un son de la victoire se jouera et les virages est mise en marche. Si vous perdez un jeu l’écran va dire que joueur [numéro de lecteur] est gameover. Un son gameover se jouera et le tour est mise en marche. Cela fonctionne de la même façon pour tous les jeux.

 void loop() { lastButtonState = currentButtonState; //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(); } } // 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(); } } } 

Il s’agit de la boucle qui gère la commutation de la tour. C’est joli straigt vers l’avant. Si le joueur on joue elle est réactivée au joueur 2 et la vie sera remis à zéro. Si le joueur 2 joue il travaillera l’autre manière autour.

 void TurnSwitch() { if (Turn == 0) { Turn = 1; TurnEnable = 1; lives = 3; } else if (Turn == 1) { Turn = 0; TurnEnable = 1; lives = 3; } } 

Il s’agit de la boucle de la victoire. Cela s’appellera lorsqu’une partie est gagnée. Il joue juste une victoire son

 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); } } 

Il s’agit de la boucle de gameover. Celui-ci est appelé lorsqu’un jeu est perdu. Il joue juste un gameover sonore.

 void failsound() { for (int y = 0; y <= 2; y++) { speakerpin.play(NOTE_G3, 300); delay(200); speakerpin.play(NOTE_C3, 300); delay(200); } } 

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