Ujian Akhir Logika Python
Dalam game MOBA atau RPG, setiap karakter memiliki HP (Hit Points / Nyawa). Saat diserang, nilai HP ini akan berkurang berdasarkan Damage dari lawan.
Pertarungan ini terjadi di dalam sebuah While True, dan hanya akan berhenti (break) jika HP salah satu karakter menyentuh angka 0 atau lebih kecil!
Kita akan menggunakan random.randint() agar Damage setiap serangan bisa bervariasi (terkadang serangan biasa, terkadang serangan Critical!).
Misi: Buat variabel HP untuk Hero dan Boss. Keduanya memulai dengan 100 HP.
import random
import time # Library baru untuk memberi jeda/delay waktu
print("=== BATTLE DIMULAI ===")
# 1. Tentukan HP Awal
hp_hero = ____
hp_boss = ____
# Membuka arena pertarungan tanpa batas waktu
while ____:
print("--- RONDE BARU ---")
time.sleep(1) # Jeda 1 detik agar game tidak terlalu cepat
Misi: Di dalam while, kurangi HP masing-masing petarung dengan nilai Damage yang diacak dari 10 sampai 30!
# Hero menyerang Boss
damage_hero = random.randint(____, ____)
hp_boss = hp_boss - damage_hero
print("💥 Hero menyerang Boss! Damage:", damage_hero)
# Boss membalas menyerang Hero
damage_boss = random.randint(____, ____)
# Kurangi hp_hero dengan damage_boss
____ = ____ - damage_boss
print("🔥 Boss menyerang Hero! Damage:", damage_boss)
print("Sisa HP -> Hero:", hp_hero, "| Boss:", hp_boss)
Misi: Pertarungan harus berhenti! Gunakan `if` untuk mengecek apakah HP menyentuh `<= 0`, lalu gunakan rem darurat `break`.
# Cek apakah Boss kalah (HP kurang dari atau sama dengan 0)
if hp_boss <= 0:
print("🏆 HERO MENANG! Boss telah dikalahkan!")
____
# Cek apakah Hero kalah
elif ____ <= 0:
print("💀 HERO GUGUR! Boss memenangkan pertarungan!")
____
Salin kode ini dan jalankan! Kamu bisa menjadi "penonton" dan melihat siapa yang akan menang secara acak berkat library random.
import random
import time
hp_hero = 100
hp_boss = 100
print("=== PERTARUNGAN DIMULAI ===")
while True:
print("
⚔️ Tringg! Saling Serang!")
time.sleep(1.5)
dmg_hero = random.randint(10, 30)
hp_boss = hp_boss - dmg_hero
print("Hero memberi damage:", dmg_hero)
dmg_boss = random.randint(10, 30)
hp_hero = hp_hero - dmg_boss
print("Boss memberi damage:", dmg_boss)
print(">> HP HERO:", hp_hero, " | HP BOSS:", hp_boss)
if hp_hero <= 0 and hp_boss <= 0:
print("DRAW! Keduanya gugur bersamaan!")
break
elif hp_boss <= 0:
print("🏆 HERO MENANG!")
break
elif hp_hero <= 0:
print("💀 GAME OVER. BOSS MENANG!")
break