Სარჩევი:

"ნინძას დოლარი" თამაში არდუინოსთვის: 3 ნაბიჯი
"ნინძას დოლარი" თამაში არდუინოსთვის: 3 ნაბიჯი

ვიდეო: "ნინძას დოლარი" თამაში არდუინოსთვის: 3 ნაბიჯი

ვიდეო:
ვიდეო: игра в крупнейшем тематическом парке аниме и игр в Японии | Нидзиген-но Мори | Остров Авадзи | АСМР 2024, ივლისი
Anonim
გამოსახულება
გამოსახულება

კიდევ ერთი ვიდეო თამაში arduino– სთვის. ეს არის დიდი თამაში, ვიდრე ბოლო გამოქვეყნებული. რატომ არის ის უფრო რთული, ვიდრე სხვა? ეს უფრო რთულია, რადგან ამან შეიძლება ხტომა და გადაღება და ხმის შუქის და ახალი წერტილების შემუშავების მეთოდი.

მარაგები

  1. არდუინო.
  2. პურის დაფა
  3. ჯუმბერის მავთულები
  4. წითელი LED
  5. 2 ღილაკი
  6. 2 10k ohm რეზისტორი
  7. 2 220R რეზისტორი.
  8. სუპერ ნათელი ლურჯი LED.
  9. პიეზო ზუზუნი
  10. 16*2 LCD ეკრანი

ნაბიჯი 1: ყველაფრის ერთად გაყვანილობა

ყველაფრის ერთად გაყვანილობა
ყველაფრის ერთად გაყვანილობა

ახლა თქვენ უნდა დააკავშიროთ ყველაფერი

ნაბიჯი 2: როგორ ვითამაშოთ:

  1. ჩართეთ არდუინო.
  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; // შემთხვევითი რიცხვი დაბრკოლებების პოზიციისთვის შემთხვევით რიცხვებში [6]; // შემთხვევითი რიცხვი დაბრკოლებების რაოდენობისათვის int randomNum = 0; // შემთხვევითი რიცხვი pts პოზიციისთვის შემთხვევითი რიცხვები 1 [3]; // შემთხვევითი რიცხვი ქულების რაოდენობისათვის int randomNum1 = 0; // დაყოვნების დაწყების დრო, რომელიც მცირდება თანდათანობით ხელმოუწერელ int myDelay = 500; // გააკეთე ეს ლოგიკური იმის შესამოწმებლად, არის თუ არა ღილაკი 2 დაჭერილი, რადგან თუ ის ერთხელ არის დაჭერილი პირველ მარყუჟში, მინდა დაბრკოლებები არ დაიწეროს ბოლომდე bool temp = 0; // ეს ცვლადი ინახავს მეომრის პოზიციებს, როდესაც ის ისვრის. შეიძლება იყოს 16 პოზიცია, რადგან მეომარს აქვს 16 პოზიცია. int tempI [16]; // მე ვიყენებ ამ ლოგიკურ შემოწმებას, არის თუ არა წერტილი დაჭერილი bool temp1 = 0;

// გამოიყენეთ ეს ცვლადი დაჭერილი წერტილის პოზიციის შესანახად. ის უნდა იყოს და მასივი შეინახოს ყველა წერტილის პოზიცია ერთი მარყუჟის პირველი გამეორებით. თუ ის ინახავს მხოლოდ ერთ პოზიციას, მაშინ "ძველი" წერტილი დაბრუნდება ახალ გამეორებაში

int tempI1 [3]; // გამოიყენეთ ეს ცვლადი მეომრის კადრების მისაღებად, რაც ასევე არის მასივის tempI int button2IsPpress = 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 ("თამაში"); lcd.setCursor (2, 1); lcd.print ("STARTS IN"); 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);

for (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd. წმინდა (); lcd.setCursor (5, 0); lcd.print ("VICTORY"); ტონი (ზუზუნი, 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 (ღილაკი Pin1); buttonState2 = digitalRead (ღილაკი Pin2); // დაბრკოლებების დაწესება, თუ მეომარმა არ ესროლა ან ისროლა, მაგრამ ის ასევე გადახტა თუ (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// ქულების დაყენება

თუ (! temp1) {for (int j = 0; j

}

გირჩევთ: