Mục lục:

Trò chơi "Ninja Dollar" dành cho Arduino: 3 bước
Trò chơi "Ninja Dollar" dành cho Arduino: 3 bước

Video: Trò chơi "Ninja Dollar" dành cho Arduino: 3 bước

Video: Trò chơi
Video: Biến hình khi văn phòng Schannel có khách đến 2024, Tháng bảy
Anonim
Hình ảnh
Hình ảnh

Một trò chơi điện tử khác dành cho arduino. Đó là một trò chơi tuyệt vời tiên tiến hơn so với trò chơi cuối cùng mà tôi xuất bản. Tại sao nó phức tạp hơn trò khác? Nó phức tạp hơn bởi vì trò chơi này có thể nhảy và bắn và có ánh sáng âm thanh và một phương pháp tiếp điểm mới.

Quân nhu

  1. Arduino.
  2. Breadboard
  3. dây nhảy
  4. dẫn màu đỏ
  5. 2 nút nhấn
  6. 2 điện trở 10k ohm
  7. 2 điện trở 220R.
  8. Đèn LED xanh dương siêu sáng.
  9. piezo buzzer
  10. Màn hình LCD 16 * 2

Bước 1: Kết nối mọi thứ lại với nhau

Kết nối mọi thứ với nhau
Kết nối mọi thứ với nhau

Bây giờ bạn cần kết nối mọi thứ

Bước 2: Cách chơi:

  1. Bật arduino.
  2. Màn hình LCD sẽ in: "trò chơi bắt đầu" và đếm ngược.
  3. Nhấn một trong các nút để nhảy và nút khác để bắn.
  4. mỗi khối mà bạn nhảy, bạn sẽ giành được một điểm và mỗi * bạn bắt được sẽ cho bạn 5 điểm.
  5. Khi bạn có 50 điểm trở lên, bạn đã thắng

Bước 3: Mã

// este Jogo e muito Feat.

#bao gồm

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; pts dài không dấu = 0; // thiết lập các buttontates bool buttonState1 = 0; bool buttonState2 = 0; // số ngẫu nhiên cho vị trí của chướng ngại vật int randomNums [6]; // số ngẫu nhiên cho số chướng ngại vật int randomNum = 0; // số ngẫu nhiên cho vị trí của pts int randomNums1 [3]; // số ngẫu nhiên cho số pts int randomNum1 = 0; // thời gian trễ bắt đầu giảm dần unsigned int myDelay = 500; // tạo boolean này để kiểm tra xem button2 có được nhấn không vì nếu nó được nhấn một lần trong vòng lặp for đầu tiên, tôi muốn các chướng ngại vật không được ghi cho đến khi kết thúc bool temp = 0; // biến này lưu trữ vị trí của chiến binh khi anh ta bắn. có thể có 16 vị trí vì chiến binh có 16 vị trí. int tempI [16]; // tôi sử dụng boolean này để kiểm tra xem điểm có được chốt hay không bool temp1 = 0;

// sử dụng biến này để lưu trữ vị trí của điểm được đánh dấu. nó phải là và mảng để lưu trữ vị trí của tất cả các điểm trong một lần lặp của vòng lặp for đầu tiên. nếu nó chỉ được lưu trữ một vị trí, thì điểm "cũ" sẽ quay trở lại trong lần lặp mới

int tempI1 [3]; // sử dụng biến này để có một số bức ảnh của chiến binh, cũng là độ dài của một mảng tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

void setup () {

// thiết lập số cột và số hàng của màn hình LCD: lcd.begin (16, 2); // thiết lập chế độ ghim nút pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buzzer, OUTPUT); lcd.setCursor (4, 0); lcd.print ("TRÒ CHƠI"); lcd.setCursor (2, 1); lcd.print ("SAO TRONG"); lcd.print ("5"); chậm trễ (1000); lcd.setCursor (12, 1); lcd.print ("4"); chậm trễ (1000); lcd.setCursor (12, 1); lcd.print ("3"); chậm trễ (1000); lcd.setCursor (12, 1); lcd.print ("2"); chậm trễ (1000); lcd.setCursor (12, 1); lcd.print ("1"); chậm trễ (1000); lcd.clear ();

}

void loop () {

ở đây:

randomNum = ngẫu nhiên (5);

for (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORY"); âm báo (buzzer, 262); chậm trễ (200); âm báo (buzzer, 330); chậm trễ (200); âm báo (buzzer, 392); chậm trễ (100); âm báo (buzzer, 330); chậm trễ (100); âm báo (buzzer, 392); chậm trễ (100); âm báo (buzzer, 523); chậm trễ (200); noTone (buzzer); chậm trễ (3000); lcd.clear (); goto đây; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // đặt chướng ngại vật nếu chiến binh không bắn hoặc anh ta đã bắn nhưng cũng nhảy if (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// thiết lập pts

if (! temp1) {for (int j = 0; j

}

Đề xuất: