私はまだ学んでおり、x がどのようにこれを行うか、y がどのようにそれを行うかをよりよく理解するために、最終的に定期的に将来的に行うことを構築するのが好きです。
クラスがどのように機能するかについてはまだあまり学んでいませんが、複数のクラスを通過する呼び出しを設定しました。
getattr(monster, monster_class.str().lower())(1)
これを呼び出す:
class monster:
def vampire(x):
monster_loot = {'Gold':75, 'Sword':50.3, 'Good Sword':40.5, 'Blood':100.0, 'Ore':.05}
if x == 1:
loot_table.all_loot(monster_loot)
順番にこれを呼び出します...
class loot_table:
def all_loot(monster_loot):
loot = ['Gold', 'Sword', 'Good Sword', 'Ore']
loot_dropped = {}
for i in monster_loot:
if i in loot:
loot_dropped[i] = monster_loot[i]
drop_chance.chance(loot_dropped)
そして、いよいよ最後の授業へ。
class drop_chance:
def chance(loot_list):
loot_gained = []
for i in loot_list:
x = random.uniform(0.0,100.0)
if loot_list[i] >= x:
loot_gained.append(i)
return loot_gained
そして、loot_gained を返さないことを除けば、すべて機能します。私はそれが単にloot_tableクラスに返されていると仮定しています.投稿された最初の行までそれをバイパスする方法がわかりません. 洞察を得ることができますか?