Python 3 を呼び出すたびにリストからランダムな項目を選択するにはどうすればよいですか? これを行う必要がある関数が 2 つあります。item = random.randint() と item = random.choice() を試しましたが、それらは一度だけランダム化してアイテムに保存します。
これが2つの機能です。関数 1 では、呼び出すたびにアイテムをランダム化する必要があるため、プレイヤーは毎回ランダムなアイテムを取得します。機能 2 では、プレイヤーとネズミの攻撃を、選択した数値内でランダム化する必要があります。つまり、プレイヤーが攻撃するときは常に 10 から 30 の間であり、ネズミが攻撃するときは 10 から 15 の間です。これを毎ターン行う必要があります。
これは可能ですか?
機能 1.
def chest(sector):
item = random.choice(items)
print("You see a chest, you unlock it and inside is '{0}'".format(item))
print()
if item in inventory:
print("You already have a {0}".format(item))
item_take = input("Do you wish to take the '{0}'?: ".format(item)).lower()
if item_take == ("yes"):
inventory.append(item)
if item == "Armor":
player["hp"] = 150
print("The {0} has been added to your inventory!".format(item))
sector()
else:
print("You don't take the '{0}'!".format(item))
print()
sector()
機能 2。
player = dict(
name = " ",
att = random.randint(10, 30),
hp = 100,)
rat = dict(
name = "Rat",
att = random.randint(10, 15),
hp = 20,)
def attack(player, enemy):
firstAtt = random.randint(1, 2)#Player = 1, Enemy = 2. Checks to see who goes first.
if firstAtt == 1:
while player["hp"] > 0 and enemy["hp"] > 0:
enemy["hp"] = enemy["hp"] - player["att"]
print("You have dealt {0} damage to the {1}!".format(player["att"], enemy["name"]))
if enemy["hp"] <= 0:
print()
print("You have killed the {0}".format(enemy["name"]))
print("You have {0}HP left.".format(player["hp"]))
break
player["hp"] = player["hp"] - enemy["att"]
print("The {0} has dealt {1} damage to you!".format(enemy["name"], enemy["att"]))
if player["hp"] <= 0:
print()
print("The {0} has killed you!".format(enemy["name"]))
break
elif firstAtt == 2:
while player["hp"] > 0 and enemy["hp"] > 0:
player["hp"] = player["hp"] - enemy["att"]
print("The {0} has dealt {1} damage to you!".format(enemy["name"], enemy["att"]))
if player["hp"] <= 0:
print()
print("The {0} has killed you!".format(enemy["name"]))
break
enemy["hp"] = enemy["hp"] - player["att"]
print("You have dealt {0} damage to the {1}".format(player["att"], enemy["name"]))
if enemy["hp"] <= 0:
print()
print("You have killed the {0}".format(enemy["name"]))
print("You have {0}HP left.".format(player["hp"]))
break