Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
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
- Arduino.
- Papan tempat memotong roti
- kabel jumper
- LED merah
- 2 tombol tekan
- 2 resistor 10k ohm
- 2 resistor 220R.
- LED Biru super terang.
- bel piezo
- 16*2 layar LCD
Langkah 1: Menghubungkan Semuanya Bersama
Sekarang Anda perlu menghubungkan semuanya
Langkah 2: Cara Bermain:
- Nyalakan arduinonya.
- LCD harus mencetak: "permainan dimulai" dan hitungan mundur.
- Tekan salah satu tombol untuk melompat dan tombol lainnya untuk menembak.
- setiap blok yang Anda lompat Anda memenangkan satu poin dan setiap * yang Anda tangkap memberi Anda 5 poin.
- 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
}