Gece yazdığım uygulamaya sabah ek yapıyorum. Şimdi dediğim gibi rastgele çekebilirdik canavarı bende öyle yaptım ama sadece sağlığını değiştirdim. Saldırı puanını bir sonraki yazıda düzenlerim. Rastgele seçim yapmak için önce canavarlar isimli bir sözlük nesnesi oluşturdum sonra random modülünün choice() fonksiyonunu kullanarak bu sözlüğün anahtarlarından rastgele bir seçim yaptım. Aşağıda ki while döngüsüne tekrardan bir ek yapma gereği duydum sorun şuydu eğer canavarın canı 3’e iner ve bundan saldırı puanımız yüksekse negatif olarak işlem devam ediyor ve sonunda ölüyorduk. Buraya bir ek yapıp canavarın canı güçten ufak olduğundan değerini otomatik sıfır yapıyoruz ve biz kazanıyoruz. Ayrıca while döngüsünün başına tekrardan bir koşul koydum. Oyuncu canını 0 olarak işaretlerse oyuna başlamadan kaybedecek.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
print "Karakter yaratım işlemi başlamak üzere lütfen hazırlanın gireceğiniz değerlerin toplamı 20 olmalı"
zeka = raw_input("Zeka puanı: ")
guc = raw_input("Güç puanı: ")
karizma = raw_input("Karizma puanı: ")
ceviklik = raw_input("Çeviklik puanı: ")
can = raw_input("Can puanı: ")
toplam = int(zeka)+int(guc)+int(karizma)+int(ceviklik)+int(can)
if toplam == 20:
print "işlem başarılı."
canavarlar = {"kutupayisi":"50","demon":"30","bildircin":"20","solucan":"5"}
sans = random.choice(canavarlar.keys())
canavar = canavarlar[sans]
sal = 2
saglik = int(can) * 5
print "deneme savaşı başlatılıyor..."
if saglik == 0:
print "Tebrikler başlamadan kaybettiniz"
else:
while saglik > 0:
saglik = int(saglik) - int(sal)
print "canınız %s'e indi" % saglik
canavar = int(canavar) - int(guc)
print "canavarın canı %s'e indi" % canavar
if saglik == 0:
print "öldünüz ühühü"
break
elif canavar == 0:
print "kazandınız ohh yeahhh"
break
elif canavar