Daftar Isi:

"Ninja Dollar" Game untuk Arduino: 3 Langkah
"Ninja Dollar" Game untuk Arduino: 3 Langkah

Video: "Ninja Dollar" Game untuk Arduino: 3 Langkah

Video:
Video: SULTAN MEDAN INDRAKENZ NAIK JET PRIBADI KE PULAU PRIBADI!! 2024, Juli
Anonim
Gambar
Gambar

Video game lain untuk arduino. Ini adalah game hebat yang lebih canggih daripada yang terakhir saya publikasikan. Mengapa itu lebih kompleks daripada yang lain? Ini lebih kompleks karena ini dapat melompat dan menembak dan memiliki cahaya suara dan metode poin cont baru.

Perlengkapan

  1. Arduino.
  2. Papan tempat memotong roti
  3. kabel jumper
  4. LED merah
  5. 2 tombol tekan
  6. 2 resistor 10k ohm
  7. 2 resistor 220R.
  8. LED Biru super terang.
  9. bel piezo
  10. 16*2 layar LCD

Langkah 1: Menghubungkan Semuanya Bersama

Menghubungkan Semuanya Bersama-sama
Menghubungkan Semuanya Bersama-sama

Sekarang Anda perlu menghubungkan semuanya

Langkah 2: Cara Bermain:

  1. Nyalakan arduinonya.
  2. LCD harus mencetak: "permainan dimulai" dan hitungan mundur.
  3. Tekan salah satu tombol untuk melompat dan tombol lainnya untuk menembak.
  4. setiap blok yang Anda lompat Anda memenangkan satu poin dan setiap * yang Anda tangkap memberi Anda 5 poin.
  5. Ketika Anda memiliki 50 poin atau lebih tinggi, Anda menang

Langkah 3: Kode

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

#termasuk

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

const int buttonPin1=1; const int buttonPin2=6; const int bel=7; poin panjang yang tidak ditandatangani = 0; //set buttonstates bool buttonState1=0; bool buttonState2=0; //angka acak untuk posisi rintangan di randomNums[6]; //angka acak untuk jumlah rintangan int randomNum=0; //angka acak untuk posisi pts int randomNums1[3]; //nomor acak untuk jumlah poin int randomNum1=0; //mulai waktu tunda, yang secara bertahap berkurang unsigned int myDelay=500; //membuat boolean ini untuk memeriksa apakah button2 ditekan karena jika ditekan sekali di loop for pertama saya ingin hambatan tidak ditulis sampai akhir bool temp=0; //variabel ini menyimpan posisi prajurit saat dia menembak. bisa ada 16 posisi karena prajurit memiliki 16 posisi. int suhu[16]; // saya menggunakan boolean ini untuk memeriksa apakah titik sudah ditangkap bool temp1=0;

//gunakan variabel ini untuk menyimpan posisi titik yang ditangkap. itu harus dan array untuk menyimpan posisi semua titik dalam satu iterasi dari loop for pertama. jika disimpan hanya satu posisi, maka titik "lama" akan kembali dalam iterasi baru

int tempI1[3]; //gunakan variabel ini untuk mendapatkan sejumlah bidikan prajurit, yang juga merupakan panjang array tempI int button2IsPressed=0; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

batalkan pengaturan() {

// mengatur jumlah kolom dan baris LCD: lcd.begin(16, 2); // setel mode pin tombol pinMode(buttonPin1, INPUT); pinMode(tombolPin2, INPUT); pinMode(buzzer, OUTPUT); lcd.setCursor(4, 0); lcd.print("PERMAINAN"); lcd.setCursor(2, 1); lcd.print("MULAI DALAM "); lcd.print("5"); penundaan (1000); lcd.setCursor(12, 1); lcd.print("4"); penundaan (1000); lcd.setCursor(12, 1); lcd.print("3"); penundaan (1000); lcd.setCursor(12, 1); lcd.print("2"); penundaan (1000); lcd.setCursor(12, 1); lcd.print("1"); penundaan (1000); lcd.clear();

}

lingkaran kosong() {

di sini:

randomNum=acak(5);

untuk(int i=0; i9 && pts19 && pts29 && pts=50){ pts=0; penundaan saya=500; lcd.clear(); lcd.setCursor(5, 0); lcd.print("MENANG"); nada(buzzer, 262); penundaan (200); nada (bel, 330); penundaan (200); nada (bel, 392); penundaan(100); nada (bel, 330); penundaan(100); nada (bel, 392); penundaan(100); nada (bel, 523); penundaan (200); tidakNada(bel); penundaan(3000); lcd.clear(); pergi ke sini; } else lcd.setCursor(15, 0); lcd.print(poin); buttonState1=digitalRead(buttonPin1); buttonState2=digitalRead(buttonPin2); //menetapkan rintangan jika prajurit tidak menembak atau dia menembak tetapi dia juga melompat if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j], 1); lcd.print("#"); }

}

}

//mengatur poin

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

}

Direkomendasikan: