Orodha ya maudhui:

"Ninja Dollar" Mchezo wa Arduino: Hatua 3
"Ninja Dollar" Mchezo wa Arduino: Hatua 3

Video: "Ninja Dollar" Mchezo wa Arduino: Hatua 3

Video:
Video: Where Did They Go? ~ Noble Abandoned Mansion of a Corrupt Family 2024, Julai
Anonim
Picha
Picha

Mchezo mwingine wa video wa arduino.ni mchezo mzuri ni wa hali ya juu zaidi kuliko ule wa mwisho ninaochapisha. Kwa nini ni ngumu zaidi kuliko nyingine? Ni ngumu zaidi kwa sababu hii inaweza kuruka na kupiga risasi na kuwa na taa ya sauti na njia mpya ya njia.

Vifaa

  1. Arduino.
  2. Bodi ya mkate
  3. waya za kuruka
  4. LED nyekundu
  5. 2 vifungo vya kushinikiza
  6. Vipinga 2 ohk 10m
  7. Vipinga 2 220R.
  8. Mwangaza mkali wa Bluu ya Bluu.
  9. buzzer ya piezo
  10. Onyesho la 16 * 2 LCD

Hatua ya 1: Wiring Kila kitu Pamoja

Wiring Kila kitu Pamoja
Wiring Kila kitu Pamoja

Sasa unahitaji waya kila kitu

Hatua ya 2: Jinsi ya kucheza:

  1. Washa arduino.
  2. LCD inapaswa kuchapisha: "mchezo huanza" na hesabu.
  3. Bonyeza kitufe kimoja kuruka na kingine kupiga risasi.
  4. kila kizuizi ambacho unaruka umeshinda nukta moja na kila * unayokamata inakupa alama 5.
  5. Unapokuwa na alama 50 au zaidi ulishinda

Hatua ya 3: Kanuni

// Eee jogo e muito interessante na ao mesmo tempo irritante e frustante mas muito divertido.

# pamoja

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

kifungo cha int intPin1 = 1; kifungo cha int intPin2 = 6; const int buzzer = 7; pts ndefu ambazo hazijasainiwa = 0; // kuweka vifungo vya vifungo vya boastState1 = 0; kifungo cha boolState2 = 0; // nambari ya nasibu ya nafasi ya vizuizi ndani ya n [n] // nambari ya nasibu ya idadi ya vizuizi int randomNum = 0; // nambari ya nasibu ya msimamo wa pts int randomNums1 [3]; // nambari ya nasibu kwa idadi ya pts int randomNum1 = 0; // kuanza kuchelewa wakati, ambayo hupungua hatua kwa hatua bila kusaini int myDelay = 500; // ilifanya boolean hii kuangalia ikiwa kitufe2 kimeshinikizwa kwa sababu ikiwa imebanwa mara moja kwa kwanza kwa kitanzi nataka vizuizi visiandikwe mpaka mwisho wake bool temp = 0; // mabadiliko haya huhifadhi nafasi za shujaa wakati anapiga risasi. kunaweza kuwa na nafasi 16 kwa sababu shujaa ana nafasi 16. int tempI [16]; // ninatumia boolean hii kuangalia ikiwa nukta imepatikana bool temp1 = 0;

// tumia ubadilishaji huu kuhifadhi nafasi ya hatua iliyopigwa. lazima iwe na mpangilio wa kuhifadhi nafasi ya alama zote katika iteration moja ya kwanza kwa kitanzi. ikiwa imehifadhi nafasi moja tu, basi hatua ya "zamani" itarudi katika iteration mpya

int tempI1 [3]; // tumia ubadilishaji huu kuwa na risasi kadhaa za shujaa, ambayo pia ni urefu wa safu ya tempI int button2IsPressed = 0; LiquidCrystal LCD (rs, sw, d4, d5, d6, d7);

usanidi batili () {

// weka safu ya safu na safu za LCD: lcd. anza (16, 2); // weka pini ya Modi ya kifungo cha pini (kifungoPin1, INPUT); pinMode (kifungoPin2, INPUT); pinMode (buzzer, OUTPUT); lcd.setCursor (4, 0); lcd.print ("MCHEZO"); lcd.setCursor (2, 1); lcd.print ("INAANZA"); lcd.print ("5"); kuchelewesha (1000); lcd.setCursor (12, 1); lcd.print ("4"); kuchelewesha (1000); lcd.setCursor (12, 1); lcd.print ("3"); kuchelewesha (1000); lcd.setCursor (12, 1); lcd.print ("2"); kuchelewesha (1000); lcd.setCursor (12, 1); lcd.print ("1"); kuchelewesha (1000); lcd wazi ();

}

kitanzi batili () {

hapa:

randomNum = nasibu (5);

kwa (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd wazi (); lcd.setCursor (5, 0); lcd.print ("USHINDI"); sauti (buzzer, 262); kuchelewesha (200); sauti (buzzer, 330); kuchelewesha (200); sauti (buzzer, 392); kuchelewesha (100); sauti (buzzer, 330); kuchelewesha (100); sauti (buzzer, 392); kuchelewesha (100); sauti (buzzer, 523); kuchelewesha (200); hakuna Sauti (buzzer); kuchelewesha (3000); lcd wazi (); picha hapa; } mwingine lcd.setCursor (15, 0); lcd.print (pts); kifungoState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // kuweka vizuizi ikiwa shujaa hakupiga risasi au alipiga risasi lakini pia akaruka ikiwa (! temp) {kwa (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// kuweka pts

ikiwa (! temp1) {kwa (int j = 0; j

}

Ilipendekeza: