Բովանդակություն:

«Ninja Dollar» խաղը Arduino- ի համար. 3 քայլ
«Ninja Dollar» խաղը Arduino- ի համար. 3 քայլ

Video: «Ninja Dollar» խաղը Arduino- ի համար. 3 քայլ

Video: «Ninja Dollar» խաղը Arduino- ի համար. 3 քայլ
Video: Նա ստիպողաբար դուրս է մղվել: ~ Հոլանդացի ներգաղթյալների գրավիչ լքված տուն 2024, Հուլիսի
Anonim
Պատկեր
Պատկեր

Մեկ այլ տեսախաղ arduino- ի համար: այն հիանալի խաղ է, քան վերջին հրապարակածս:

Պարագաներ

  1. Արդուինո
  2. Breadboard
  3. jumper լարերը
  4. Կարմիր LED
  5. 2 կոճակ
  6. 2 10k ohm դիմադրություն
  7. 2 220R դիմադրություն:
  8. Սուպեր պայծառ կապույտ LED:
  9. պիեզո բզզոց
  10. 16*2 LCD էկրան

Քայլ 1: Միացրեք ամեն ինչ միասին:

Ամեն ինչ միասին միացնելը
Ամեն ինչ միասին միացնելը

Այժմ դուք պետք է լարեք ամեն ինչ

Քայլ 2: Ինչպես խաղալ

  1. Միացրեք arduino- ն:
  2. LCD- ը պետք է տպվի. «Խաղը սկսվում է» և հետհաշվարկ:
  3. Սեղմեք կոճակներից մեկը `ցատկելու, իսկ մյուսը` կրակելու համար:
  4. յուրաքանչյուր բլոկ, որը ցատկում եք, վաստակում է մեկ միավոր, իսկ ձեր բռնած յուրաքանչյուր * -ը տալիս է 5 միավոր:
  5. Երբ ունեք 50 կամ ավելի բարձր միավոր, դուք հաղթում եք

Քայլ 3: Կոդ

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

#ներառում

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

const int buttonPin1 = 1; const int buttonPin2 = 6; const int buzzer = 7; անստորագիր երկար միավոր = 0; // սահմանել buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // պատահական համար ՝ խոչընդոտների դիրքի մեջ randomNums [6]; // պատահական թիվ խոչընդոտների քանակի համար int randomNum = 0; // պատահական համարը pts- ի դիրքի համար random random2 [3]; // պատահական թիվ pts- ի համար int randomNum1 = 0; // սկսել հետաձգման ժամանակը, որը նվազում է աստիճանաբար անստորագիր int myDelay = 500; // ստիպեց այս բուլանը ստուգել, թե արդյոք կոճակը 2 սեղմված է, քանի որ եթե այն առաջին անգամ սեղմված լինի օղակի համար, ես ուզում եմ, որ խոչընդոտները չգրվեն մինչև դրա ավարտը bool temp = 0; // այս փոփոխականը պահում է մարտիկի դիրքերը, երբ նա կրակում է: կարող է լինել 16 դիրք, քանի որ ռազմիկն ունի 16 դիրք: int tempI [16]; // Ես օգտագործում եմ այս բուլանը `ստուգելու համար, թե արդյոք կետը բռնել է bool temp1 = 0;

// օգտագործել այս փոփոխականը ՝ բռնած կետի դիրքը պահելու համար: այն պետք է լինի և զանգված, որպեսզի պահի բոլոր կետերի դիրքը առաջին օղակի համար մեկ կրկնության մեջ: եթե այն պահեր ընդամենը մեկ դիրք, ապա «հին» կետը կվերադառնա նոր կրկնությամբ

int tempI1 [3]; // օգտագործեք այս փոփոխականը, որպեսզի ունենաք մարտիկի մի շարք կադրեր, ինչը նաև զանգվածի tempI int button2IsPressed = 0 երկարությունն է: LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

void setup () {

// կարգավորել LCD- ի սյունակների և տողերի քանակը. lcd.begin (16, 2); // սահմանել կոճակակապի ռեժիմ pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (ազդանշանային, OUTPUT); lcd.setCursor (4, 0); lcd.print («ԽԱAMEԸ»); lcd.setCursor (2, 1); lcd.print («ՍԿՍՈՄ Է»); lcd.print («5»); ուշացում (1000); lcd.setCursor (12, 1); lcd.print («4»); ուշացում (1000); lcd.setCursor (12, 1); lcd.print ("3"); ուշացում (1000); lcd.setCursor (12, 1); lcd.print ("2"); ուշացում (1000); lcd.setCursor (12, 1); lcd.print ("1"); ուշացում (1000); lcd. հստակ ();

}

դատարկ շրջան () {

այստեղ ՝

randomNum = պատահական (5);

համար (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd. հստակ (); lcd.setCursor (5, 0); lcd.print («ՀԱ VԹԱՆԱԿ»); տոն (ազդանշան, 262); ուշացում (200); տոն (ազդանշան, 330); ուշացում (200); տոն (ազդանշան, 392); ուշացում (100); տոն (ազդանշան, 330); ուշացում (100); տոն (ազդանշան, 392); ուշացում (100); տոն (ազդանշան, 523); ուշացում (200); noTone (ազդանշան); ուշացում (3000); lcd. հստակ (); հասա այստեղ; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (կոճակ Pin2); // խոչընդոտներ դնել, եթե մարտիկը չկրակեց կամ նա կրակեց, բայց նա նաև ցատկեց, եթե (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// միավորներ սահմանելը

եթե (! temp1) {համար (int j = 0; j

}

Խորհուրդ ենք տալիս: