← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 43

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.