Proyek: Snake Water Gun
Suit vs komputer dengan random.choice dan match/case.
Pahami konsepnya
Snake-Water-Gun adalah variant rock-paper-scissors dari CodeWithHarry: ular minum air, air mematikan senjata, senjata membunuh ular. Pemain memilih, komputer memilih acak, pemenang ditentukan. Proyek ini menggabungkan random.choice, dictionary, match/case, dan loop skor.
Logika kemenangan bisa dipetakan sebagai dict: MENANG = {"ular": "air", "air": "senjata", "senjata": "ular"} — kunci mengalahkan nilai. Bila pilihan sama: seri. Bila pilihan pemain mengalahkan pilihan komputer (MENANG[pemain] == komputer): menang; selain itu kalah.
Struktur game loop: while True menampilkan skor, baca input, validasi, tentukan ronde, perbarui skor, tanya main lagi. Break keluar saat pemain menyerah. Kerangka ada di editor — lengkapi penentuan pemenangnya.
Coba contoh kode
import random
MENANG = {"ular": "air", "air": "senjata", "senjata": "ular"}
pilihan = ["ular", "air", "senjata"]
skor_p, skor_k = 0, 0
print("=== SNAKE WATER GUN ===")
while True:
aku = input("[ular/air/senjata/keluar]: ").lower()
if aku == "keluar":
break
if aku not in pilihan:
print("Pilihan tidak dikenal.")
continue
komputer = random.choice(pilihan)
print(f"Komputer: {komputer}")
if aku == komputer:
print("Seri!")
elif MENANG[aku] == komputer:
print("Kamu menang!")
skor_p += 1
else:
print("Komputer menang!")
skor_k += 1
print(f"Skor: kamu {skor_p} - {skor_k} komputer")Dictionary MENANG memetakan siapa mengalahkan siapa — logika tiga cabang dalam satu tabel. Loop baca-validasi-putuskan-skor adalah pola game loop standar. Kerangka editor menyembunyikan penentuan pemenang — lengkapi hingga skor berjalan benar.
Latihan singkat
Uji: lengkapi penentuan pemenang agar skor terupdate setiap ronde.