Game Batu Gunting Kertas
Game klasik melawan komputer dengan skor dan riwayat ronde.
Game Melawan Komputer
Batu gunting kertas adalah game pertama yang melibatkan "kecerdasan" komputer (walau hanya acak). Kamu belajar: pilihan acak komputer, matriks kemenangan, dan skor persisten antar ronde.
Langkah Membangun
HTML: Tiga tombol pilihan besar (✊ ✌️ 🖐), area "kamu vs komputer" yang menampilkan pilihan masing-masing, pesan hasil ronde, papan skor (Menang/Kalah/Seri), dan tombol reset.
CSS: Tombol pilihan besar berbentuk lingkaran dengan hover membesar. Pilihan yang dimainkan ditampilkan besar berdampingan dengan animasi muncul. Skor dalam tiga kartu kecil.
JS: Logika inti:
- Pilihan komputer:
["batu","gunting","kertas"][Math.floor(Math.random()*3)]. - Penentu menang: aturan "batu mengalahkan gunting, gunting mengalahkan kertas, kertas mengalahkan batu". Cara elegan: object
kalahDari = { batu: "kertas", gunting: "batu", kertas: "gunting" }. Jika pilihan komputer === kalahDari[pilihanKamu], kamu menang. - Update skor, tampilkan hasil ronde, tambah ke riwayat.
Trik kalahDari: daripada menulis 9 kombinasi if/else, satu object menyelesaikan semua. Ini contoh "data mengalahkan logika": simpan aturan sebagai data, bukan sebagai cabang kode.
Kesalahan Umum
- Menulis if/else bersarang panjang yang rawan salah ketik (pakai pola object).
- Skor di-reset setiap ronde karena variabel ditaruh di dalam fungsi (taruh di luar).
- Tidak menangani seri dulu sehingga seri terhitung kalah.
export default function App(): JSX.Element { return <h1>Hello world</h1> }
Tantangan
Tantangan: Best of 5
Ubah menjadi sistem "best of 5": siapa yang menang 3 ronde duluan menjadi juara. Tampilkan "🏆 KAMU JUARA!" atau "💻 KOMPUTER JUARA!" lalu kunci tombol sampai reset.