1. Laitteistokomponentit:
* summerit:
* Yksinkertaiset summerit: Voit käyttää kunkin pelaajan peruspushton-bullereita. Ne ovat edullisia ja helppo löytää.
* elektroniset summerit: Realistisemman tunnelman saavuttamiseksi voit käyttää elektronisia summereita (kuten peliohjelmissa käytettyjä). Nämä vaativat hieman enemmän johdotusta ja ohjelmointia.
* mikrokontrolleri:
* arduino: Suosittu valinta sen helppokäyttöisyydelle ja ohjelmoinnin joustavuudelle. Voit käyttää Arduino Unoa, nanoa tai muita sopivia lautoja.
* vadelma pi: Tehokkaampi vaihtoehto edistyneemmillä ominaisuuksilla. Se pystyy käsittelemään monimutkaisempaa logiikkaa ja jopa mahdollisesti suorittaa graafisen rajapinnan.
* näyttö (valinnainen):
* LCD -näyttö: Kysymysten näyttämiseen, vastauksiin ja pelaajien pisteet.
* Tietokoneen näyttö: Voit näyttää kaiken visuaalisesti tietokoneen näyttöä.
* kaiutin (valinnainen): Äänitehosteiden soittamiseen.
* Virtalähde:
* Järjestelmän virran virtaamiseksi tarvitaan seinäsovitinta tai akkua.
* hyppyjohdot: Eri komponenttien kytkeminen.
* leipälauta: (Valinnainen) prototyyppien ja testaamiseksi.
2. Ohjelmistokomponentit:
* Ohjelmointikieli:
* Arduino IDE: Jos käytät Arduinoa.
* python: Jos käytät Raspberry Pi:tä.
* kysymyspankki:
* Tarvitset kokoelman kysymyksiä ja vastauksia peliin. Voit luoda oman tai löytää ennakkovalmistettuja sarjoja verkosta. Voit tallentaa nämä kysymykset tekstitiedostoon, CSV -tiedostoon tai tietokantaan.
* Logiikka ja pelivirta:
* Sinun on kirjoitettava koodi käsitellä:
* Kysymysten ja vastausvalintojen näyttäminen.
* Hulleri painavat.
* Oikean vastauksen määrittäminen.
* Pisteiden tai rangaistusten myöntäminen.
* Seuranta pelaajan pisteet.
* Siirtyminen seuraavaan kysymykseen.
* Pelin lopettaminen.
3. Rakennettava vaiheet:
1. Buzzersin johdotus:
* Kytke jokainen summeri mikrokontrollerin digitaaliseen tulotappiin.
* Käytä jokaisessa syöttötapin vetovastuksessa varmistaaksesi, että signaali on korkea, kun summeria ei paineta.
2. Ohjelmistoasetukset:
* Asenna Arduino IDE- tai Python -ympäristö.
* Kirjoita koodi lukemaan summeritulot.
* Aseta toiminto tarkistaaksesi painikkeen painikkeet.
* Sisällytä kysymyspankki ja logiikka oikean vastauksen määrittämiseksi.
* Luo toimintoja näyttääksesi kysymyksiä, vastauksia ja pisteitä.
3. Pelin logiikan ohjelmointi:
* Aseta pääsilmukka pelin ajamiseen.
* Näytä kysymys.
* Odota, että pelaaja painaa heidän summerinsa.
* Tarkista, onko vastaus oikea.
* palkita pisteitä tai rangaista pelaajaa.
* siirry seuraavaan kysymykseen.
4. näyttö (valinnainen):
* Jos käytät LCD -näyttöä, kirjoita koodi näyttääksesi kysymykset, vastaukset ja pisteet.
* Jos käytät tietokonevalvontaa, voit käyttää graafista käyttöliittymää (GUI) -kirjasto, kuten Tkinter (Python), luodaksesi visuaalisesti houkuttelevamman näytön.
5. äänitehosteet (valinnainen):
* Sisällytä koodi äänitehosteiden toistamiseen kaiuttimen avulla.
* Voit käyttää yksinkertaisia piippauksia oikeille ja väärille vastauksille tai yksityiskohtaisempiin äänihukeihin.
esimerkkikoodi (arduino):
`` `Arduino
// summeritapit
const int buzzerPin1 =2;
const int buzzerPin2 =3;
const int buzzerPin3 =4;
const int buzzerPin4 =5;
// Määritä kysymys- ja vastausryhmät
Merkkijonokysymykset [5] ={"Kysymys 1?", "Kysymys 2?", "Kysymys 3?", "Kysymys 4?", "Kysymys 5?"};
Merkkijono vastaukset [5] ={"vastaus 1", "vastaus 2", "vastaus 3", "vastaus 4", "vastaus 5"};
// pelaajan pisteet
int Player1Score =0;
int Player2Score =0;
int Player3Score =0;
int Player4Score =0;
tyhjä setup () {
// Aseta summeri-nastat tuloina vetovasteilla
PinMode (BuzzerPin1, input_pullup);
PinMode (BuzzerPin2, input_pullup);
PinMode (BuzzerPin3, input_pullup);
PinMode (BuzzerPin4, input_pullup);
Serial.begin (9600); // virheenkorjausta varten
}
tyhjä silmukka () {
// Tarkista, painetaanko summeria
if (DigitalRead (BuzzerPin1) ==matala) {
// Player 1 painoi summeria
Checanswer (1);
} else if (digitalRead (buzzerPin2) ==matala) {
// Player 2 painutti summeria
Checanswer (2);
} else if (digitalRead (buzzerPin3) ==matala) {
// Player 3 painosti summeria
Checanswer (3);
} else if (digitalRead (buzzerPin4) ==matala) {
// Player 4 painoi summeria
Checanswer (4);
}
}
void checanswer (int playernumber) {
// ... logiikkasi määrittää oikeat vastaukset ja palkittu pisteet tai rangaistukset
}
`` `
Lisävinkkejä:
* Aloita yksinkertainen: Aloita pelin perusversio ja lisää vähitellen lisää ominaisuuksia, kun sinusta tulee mukavampaa.
* modulaarinen muotoilu: Jatka koodisi pienempiin, hallittavissa oleviin toimintoihin, jotta ymmärtäminen ja ylläpitäminen olisi helpompaa.
* Käytä kommentteja: Dokumentoi koodisi selvästi kommentteilla selittääksesi, mitä kukin osa tekee.
* virheenkorjaus: Käytä sarjamonitoria (tarvittaessa) tai virheenkorjainta auttaaksesi sinua löytämään ja korjaamaan virheet koodissasi.
* Turvallisuus ensin: Varmista, että johdotus on turvallista ja ymmärrät, kuinka komponentteja käytetään turvallisesti.
Kerro minulle, jos sinulla on enemmän kysymyksiä erityisistä komponenteista tai ohjelmointitekniikoista, joita haluat käyttää. Pidä hauskaa rakentaa "joka haluaa olla miljonääri" -peli!