Arkadaşlar, iyi akşamlar.
Aşağıdaki gibi ana sınıf Oyuncu, alt sınıf ise özellikler diye class oluşturdum. 3 karakterim var ve bu karakterin özelliklerine göre r(random) sayı atamasını yaptım. Buraya kadar güzel. Ben VurusYap fonksiyonunda çalıştırıyorum. "1" Tekme seçtikten sonra random sayı atıyor tekrar "1" seçince önceki random sayıyı hafıza da tutuyor ve tekrar döndürüyor. Ben farklı sayı atamasını istiyorum. Nasıl yapabilirim?
Halbuki self.Yumruk (r(12, 15)) değerleri döndürüyorum. İlkinde dönüyor ikinci de dönmüyor. Diğer elif değerleri de aynı şekilde.
from random import randint as r
class Oyuncu:
def __init__(self, kullaniciAdi, *args, level=0, can=100, enerji=0, **kwargs):
self.KullaniciAdi = kullaniciAdi
self.Level = level
self.Can = can
self.Enerji = enerji
class Ozellikler(Oyuncu):
def __init__(self, yumruk, tekme, tokat, tukur, sac, *args, **kwargs):
self.Yumruk = yumruk
self.Tekme = tekme
self.Tokat = tokat
self.Tukurme = tukur
self.SacCekme = sac
super().__init__(*args, **kwargs)
def __str__(self):
return "Kullanıcı adı: {}\nYumruk Ortalama Vuruş: {}\nTekme Ortalama Vuruş: {}\nTokat Ortalama Vuruş: {}\nTükürme Ortalama Vuruş: {}\nSaç Çekme Ortalama Vuruş: {}\nLevel: {}\nCan: {}\nEnerji: {}".format(self.KullaniciAdi, self.Yumruk, self.Tekme, self.Tokat, self.Tukurme, self.SacCekme, self.Level, self.Can, self.Enerji)
def VurusYap(self):
while True:
Vurus = input("Nasıl canını acıtmak istersin(Topuk Yapmak istersen 'ESC' basabilirsin):\n1- Yumruk At\n2- Tekme At\n3- Tokat At\n4- Suratına Tükür\n5- Saçını Çek")
if Vurus == "1":
self.Yumruk
print("Yumruk Değeri: {}".format(self.Yumruk))
continue
elif Vurus == "2":
self.Tekme
print("Tekme Değeri: {}".format(self.Tekme))
continue
elif Vurus == "3":
self.Tokat
print("Tokat Değeri: {}".format(self.Tokat))
continue
elif Vurus == "4":
self.Tukurme
print("Tükürme Değeri: {}".format(self.Tukurme))
continue
elif Vurus == "5":
self.SacCekme
print("Saç Çekme Değeri: {}".format(self.SacCekme))
continue
elif Vurus == "ESC":
print("Korkak kaçtın ve oyunu kaybettin...")
break
Merve = Ozellikler(r(12, 15), r(20, 24), r(8, 10), r(5, 8), r(1, 3), "Merve")
Didem = Ozellikler(r(5, 9), r(11, 15), r(4, 7), r(2, 4), r(3, 6), "Didem")
Elif = Ozellikler(r(15, 19), r(25, 29), r(9, 11), r(1, 2), r(1, 2), "Elif")
Merve.VurusYap()
Python Hakkında Bir Soru?
2
●103
- 19-04-2020, 23:10:42Python dan anlamam ama aşağıdaki link işine yarayabilir.
https://stackoverflow.com/questions/...inimal-changes
Anladığım kadarı ile randomu genel değişkenlerde tanımladığın için 1 kere üretilen değer sabit kalıyor. Her alt fonksiyonu çağırdığında tekrar üretmen gerekiyor değeri. - 19-04-2020, 23:56:28Cevap için teşekkür ederim fakat benim farklı özelliklere random atadığım için tek random sayacı işime yaramıyor.duskorc adlı üyeden alıntı: mesajı görüntüle
Tıkandım kaldım arkadaşlar. Yardımcı olabilirseniz çok sevinirim.
Tıkandım kaldım arkadaşlar. Yardımcı olabilirseniz çok sevinirim.
