Smart board-spel (15 / 21 steg)

Steg 15: Main spelet modulen - att göra koden

Detta steg i ganska stor eftersom det omfattar en hel del information om programmeringen av den huvudsakliga modulen. Här är en förklaring vad varje del av koden gör. Om du inte känner behov av att veta nitty gritty koden kan du hoppa vidare till nästa steg. Den fullständiga koden wil vara med där.

Vi måste först definiera alla variabler.

Vars för Gameloop
#include < LiquidCrystal.h >
int gameChooser = 0;
int ChoosenGame = 0;
LiquidCrystal lcd (7, 6, 5, 4, 3, 2);
int buttonGCPin = 10;
int buttonSelectPin = 11;
Globala vars
int liv = 3;
int TurnEnable = 1;
int Turn = 0;
booleska currentButtonState = låg;
booleska lastButtonState = låg;

Vars inkluderar 2 avsnitt i första avsnittet är alla variabler som används av spelutbud del av koden. Den andra delen är de variabler som används av olika funktioner i koden.

När vi har definierat variabler har vi inställningen för gameloop.

void setup() {
Serial.BEGIN(9600);
LCD.BEGIN (16, 2);
GameLoop inställningar
pinMode (buttonGCPin, ingång);
pinMode (buttonSelectPin, ingång);
}

Först av allt vi har i den seriella begin. Detta är något som du inte behöver. Det finns där för felsökning ändamål. Du kan kontrollera feedback för spel i följetong monitor.

Detta är en slinga som bassically kontroller allt, de två första kontrollerna är för att kontrollera vilka spelare tur det är och skriva som ut. Det finns också en check för att komma in knappen Markera-menyn. Om knappen trycks spelet väljaren kommer att aktiveras och TurnEnable inaktiveras. stoppa slingan från skriva ut vilka spelare slår den är.

void loop() {
om (vända == 0 & & TurnEnable == 1) {
lcd.setCursor (0, 0);
LCD.Print ("Player 1 turn");
lcd.setCursor (0, 1);
LCD.Print ("väntan för spelet");
currentButtonState = digitalRead(buttonSelectPin);
om (currentButtonState == hög & & lastButtonState == låg) {
gameChooser = 1;
TurnEnable = 0;
LCD.Clear();
}
}
om (vända == 1 & & TurnEnable == 1) {
lcd.setCursor (0, 0);
LCD.Print ("spelare 2 turn");
lcd.setCursor (0, 1);
LCD.Print ("väntan för spelet");
currentButtonState = digitalRead(buttonSelectPin);
om (currentButtonState == hög & & lastButtonState == låg) {
gameChooser = 1;
TurnEnable = 0;
LCD.Clear();
}
}
om (gameChooser == 1) {
gamePicker();
}
}

Om knappen spelet väljaren har tryckts kommer funktionen gamepicker anropas. Det är följande funktion:

void gamePicker() {
int sensorValue = analogRead(A0);
spel kies-menyn
om (sensorValue < 200) {
lcd.setCursor (0, 0); //
LCD.Print ("> Simon Says <");
lcd.setCursor (0, 1);
LCD.Print ("WirePuller");
} else om (sensorValue > 200 & & sensorValue < 400) {
lcd.setCursor (0, 0);
LCD.Print ("> WirePuller <");
lcd.setCursor (0, 1);
LCD.Print ("BuzzWire");
} else om (sensorValue > 400 & & sensorValue < 600) {
lcd.setCursor (0, 0);
LCD.Print ("> BuzzWire <");
lcd.setCursor (0, 1);
LCD.Print ("NoiseDetector");
} else om (sensorValue > 600 & & sensorValue < 800) {
lcd.setCursor (0, 0);
LCD.Print ("> NoiseDetector <");
lcd.setCursor (0, 1);
LCD.Print ("Quiz");
} else om (sensorValue > 800) {
lcd.setCursor (0, 0);
LCD.Print ("> Quiz <");
lcd.setCursor (0, 1);
LCD.Print("");
}
currentButtonState = digitalRead(buttonGCPin);
om (currentButtonState == hög & & lastButtonState == låg & & sensorValue < 200) {
lcd.setCursor (0, 0);
LCD.Print ("start:");
lcd.setCursor (0, 1);
LCD.Print ("Simon säger");
Delay(2000);
LCD.Clear();
ChoosenGame = 1;
gameChooser = 0;
} else om (currentButtonState == hög & & lastButtonState == låg & & sensorValue > 200 & & sensorValue < 400) {
lcd.setCursor (0, 0);
LCD.Print ("start:");
lcd.setCursor (0, 1);
LCD.Print ("WirePuller");
Delay(2000);
LCD.Clear();
ChoosenGame = 2;
gameChooser = 0;
} else om (currentButtonState == hög & & lastButtonState == låg & & sensorValue > 400 & & sensorValue < 600) {
lcd.setCursor (0, 0);
LCD.Print ("start:");
lcd.setCursor (0, 1);
LCD.Print ("BuzzWire");
Delay(2000);
LCD.Clear();
ChoosenGame = 3;
gameChooser = 0;
} else om (currentButtonState == hög & & lastButtonState == låg & & sensorValue > 600 & & sensorValue < 800) {
lcd.setCursor (0, 0);
LCD.Print ("start:");
lcd.setCursor (0, 1);
LCD.Print ("NoiseDetector");
Delay(2000);
LCD.Clear();
ChoosenGame = 4;
gameChooser = 0;
} else om (currentButtonState == hög & & lastButtonState == låg & & sensorValue > 800) {
lcd.setCursor (0, 0);
LCD.Print ("start:");
lcd.setCursor (0, 1);
LCD.Print ("Quiz");
Delay(2000);
LCD.Clear();
ChoosenGame = 5;
gameChooser = 0;
}
lastButtonState = currentButtonState;
}

Vad detta innebär är det kontroller menyn scrolltrough spel. I den här menyn väljer du en av spel

Än detta är den del som kontroller alla spelet mekanik. När ett spel är valt visar vad spelet spelas. Dessa gamecontrol loopar också kontrollera om du vunnit eller förlorat ett minispel. När du vinner ett minispel säga skärmen wil spelare [antal spelare] fick en punkt. Som visar att du har tjänat in delen av det spelet. En seger ljud spelas och svängar kommer att stängas. Om du förlorar ett spel säger skärmen spelare [antal spelare] är gameover. Ett gameover ljud spelas och turn kommer att stängas. Detta fungerar på samma sätt för alla spel.

void loop() {
lastButtonState = currentButtonState;
Simon säger
om (ChoosenGame == 1) {
lcd.setCursor (0, 0);
LCD.Print("Playing:");
lcd.setCursor (0, 1);
LCD.Print ("Simon säger");
om (bor == 0) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("är Gameover!");
failsound();
Delay(2500);
ChoosenGame = 0;
turnss = 0;
TurnSwitch();
} else om (bor == 5) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("fick en punkt!");
Delay(2500);
victorysound();
ChoosenGame = 0;
turnss = 0;
TurnSwitch();
} annat {
SimonSays();
}
}
WirePuller
om (ChoosenGame == 2) {
lcd.setCursor (0, 0);
LCD.Print("Playing:");
lcd.setCursor (0, 1);
LCD.Print("Wirepuller");
wirepuller();
om (bor == 0) {
lcdquiz.Clear();
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("är Gameover!");
failsound();
Delay(2500);
ChoosenGame = 0;
TurnSwitch();
} else om (bor == 5) {
lcdquiz.Clear();
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("fick en punkt!");
Delay(2500);
victorysound();
ChoosenGame = 0;
TurnSwitch();
}
}
BuzzWire
om (ChoosenGame == 3) {
lcd.setCursor (0, 0);
LCD.Print("Playing:");
lcd.setCursor (0, 1);
LCD.Print("BuzzWire");
Buzzwire();
om (bor == 0) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("är Gameover!");
failsound();
Delay(2500);
ChoosenGame = 0;
TurnSwitch();
} else om (bor == 5) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("fick en punkt!");
Delay(2500);
victorysound();
ChoosenGame = 0;
TurnSwitch();
}
}
NoiseDetector
om (ChoosenGame == 4) {
lcd.setCursor (0, 0);
LCD.Print("Playing:");
lcd.setCursor (0, 1);
LCD.Print("Noisedetector");
noisedetector();
om (bor == 0) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("är Gameover!");
failsound();
Delay(2500);
ChoosenGame = 0;
TurnSwitch();
} else om (bor == 5) {
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("fick en punkt!");
Delay(2500);
victorysound();
ChoosenGame = 0;
TurnSwitch();
}
}
Frågesport
om (ChoosenGame == 5) {
Quiz();
om (bor == 0) {
LCD.Clear();
lcdquiz.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("är Gameover!");
failsound();
Delay(2500);
ChoosenGame = 0;
TurnSwitch();
} else om (bor == 5) {
LCD.Clear();
lcdquiz.Clear();
lcd.setCursor (0, 0);
LCD.Print ("Spelaren" + sträng (Turn + 1));
lcd.setCursor (0, 1);
LCD.Print ("fick en punkt!");
Delay(2500);
victorysound();
ChoosenGame = 0;
TurnSwitch();
}
}
}

Detta är en slinga som hanterar tur växlingen. Det är ganska rak fram. om spelare en spelar det kommer att kopplas till spelare 2 och livet kommer att återställas. om spelare 2 spelar kommer att det fungera tvärtom.

void TurnSwitch() {
om (vända == 0) {
Vända = 1;
TurnEnable = 1;
bor = 3;
} else om (vända == 1) {
Vända = 0;
TurnEnable = 1;
bor = 3;
}
}

Detta är en seger slinga. Detta kommer att anropas när ett spel vinns. Det spelar bara en seger ljud

void victorysound() {
för (int thisNote = 0; thisNote < 6; thisNote ++) {
spela nästa anteckning:
speakerpin.Play(Note[thisNote]);
Håll anteckningen:
Delay(duration[thisNote]);
stopp för nästa anteckning:
speakerpin.stop();
Delay(25);
}
}

Detta är gameover slingan. Här heter när ett spel är förlorad. Det leker bara en gameover ljud.

void failsound() {
för (int y = 0; y < = 2; y ++) {
speakerpin.Play (NOTE_G3, 300);
Delay(200);
speakerpin.Play (NOTE_C3, 300);
Delay(200);
}
}

Se Steg
Relaterade Ämnen

Smart Board: Intel Edison och salesforce CRM

Med hjälp av intel föredrog edison att övervaka klassrummet miljön (hazard, comfort) parametrar, åberopa en incident till salesforce skolsystemet salesforce och automatiskt meddela skolan admin och respektive leverantör.Steg 1: Konfigurera node.js kl...

Smart telefon spel konsolen

Detta Instructable är för hur till vända din smarta telefon i en gaming konsolen och spela spel från alla typer av system som Nintendo och Playstation! Smarta telefoner kommer i alla olika former och storlekar så dessa instruktioner kanske eller kans...

Spel-opoly: Designa & bygga ditt eget brädspel

spel-opoly är den ultimata designprojekt. Komma upp med ditt eget spel verkligen är inte rocket science, men det är svårare än du tror. Vad är haken? Spelet måste vara kul att spela.Vi har alla haft erfarenhet av att spela ett spel som gav oss timmar...

En virtuell Gallery på Pendleton Center för konst

genom en gemensam ansträngning från Pendleton centrum för konst (PCA) och området lärare i Pendleton, Oregon, följande PCA virtuella studiebesök programmet presenteras som en möjlighet att involvera eleverna i konstutbildning och inspirera en varakti...

Mångfald papper Quilt

genom att göra denna mångfald täcke i hemmet, eleverna kommer att ha en visuell påminnelse om att även om vi alla är olika, vi är också desamma. Mångfald täcke kan eleverna att uttrycka sig på sitt eget torg samtidigt ha en kantlinje som representera...

Utbildning pojke och flicka läromedel

hälsningar Karl utbildning älska instuctavillians! Idag kommer vi att undersöka hur man skapar en rolig interaktivt lärande verktyg för studenter att använda quiz sig själva och varandra och ge en händer på lärande aktivitet för att hjälpa dem inform...

ANDROID kontrollerade min upptäckt ROBOT

Vi hade framgångsrikt gjort en robot med en tillämpning av metall identifiering och övervakning som kan förlängas till många andra program. I grunden för att bygga denna robot hade vi beslutat att använda bilen som ett chassi för den mottagande krets...

Magnetiskt fäste för kameran eller projektor från gamla hårddiskar

Jag köpte nyligen en pico-projektor (Touch Pico damm) och jag var ute efter ett praktiskt sätt att montera den peka ner på ett bord eller olika andra ytor att skapa en "smart board" där jag ville. Jag hade redan skapat ett magnetiskt fäste för a...

Hur du spelar hjärter - och vinn!

Denna handledning är för dem som har en mycket grundläggande förståelse för kort-spelar spel hjärtan. Helst, om du använder denna tutorial du har spelat hjärtan minst en gång. Denna handledning kommer att börja genom att tillhandahålla grundläggande...

Telefonautomat i hemmet

detta projekt började nog på grund av min udda besatthet med inkvarterar och mynt drivs enheter.Jag antar att legender av de gyllene dagarna av hacka och phreaking hjälpte också. Läggs till denfaktum att min trådlösa telefoner skulle aldrig finnas nä...

Kaffe runt världen-skapa dina egna anpassade soffbord

Vill du ha kaffe i Europa, ta ut i Kina och en hamburgare i USA på samma gång? Så skulle jag! Tyvärr är detta inte en Instructable om hur man kan vara i mer än ett ställe i taget eller resa världen. Men med din egen anpassade världen karta soffbord k...

Ski Resort skrivbord Snow Meter (Snowbird)

När min snowboard resa närmar sig, finner jag mig kontrollera Utah Snowbird snowcam (http://www.snowbird.com/snowcam.html) några gånger om dagen, önskar sig mer snö ansamlas på min favorit skidort.Så som en rolig mini projektet beslöt jag att skapa m...

Automatisk Halloween godis Dispenser

år min Halloween projekt är Automatic Halloween Candy Dispenser® utlöses av TextforTreat®, CallforTreat® (drivs av Twilio) och teknik. Det kan naturligtvis också utlösas från en Stor röd tryckknapp, men där är roligt i det?När trick-or-treaters dyker...

Halloween släppa Spider

min Halloween projektet bestod av en släppa spindel utlöses av en PIR motion sensor monterad på en Jackolantern och kontrolleras av en arduino MCU. Rörelsesensorn utlöste en släppa spindel, ljus, ljud, låg om dimma och slutligen en tweet med en bifog...

Öka din laptop batteri kapacitet (runtime).

Är din laptop batteri död?Är den inte tillräckligt länge för att ta dig igenom dagen runtime?Bär du en av de stora externa batterier?Detta instructable är avsett att visa hur man kan ersätta en laptop batteri dead Li-Ion/li-poly celler och hur man ka...

Trådlösa sensorer via ioBridge + ThingSpeak

Jag har haft min ioBridge i några år nu, och nyligen ville expandera sensorerna till andra delar av huset. Efter att ha tittat på flera olika alternativ, plockade jag upp 2 netduinos (sparkfun ) och 2 xbees (sparkfun ). För att gå med på netduinos, p...

Hur man startar och organisera en filmfestival

filmfestivaler är ett utmärkt sätt att visa upp nya filmer som du och dina klasskamrater har producerat.Medan de flesta filmfestivaler kommer att ta lång tid att förbereda, kan de också göras snabbt och mindre professionellt på gymnasienivå.Steg 1: N...

Papercraft blommor (lätt)

glad våren instructavillians! Vad ett bra sätt att hålla blommor levande och frisk hela året än att göra dem av papper! Det finns flera användningsområden för att göra papercraft blommor, i detta instructable jag kommer att använda dem göra en väggbo...

Centrera av universum (brädspel)

detta spel jag kom med efter att ha spelat ett annat peg-board spel. Hoppas ni gillar detSteg 1: material du behöver-en sharpie-trä (minst 5 tum breda)-en borra (ca 1/8")-en kompass-en gradskiva-röda och blå färg / markörSteg 2: Klipp ut och Mark trä...