ich ein Wendung basiertes Kampfsystem für ein kleines Spiel zu schaffen, und ich bin Empfangen des FehlersTypeerror: Objekt vom Typ ‚Typ‘ hat keine len()
TypeError: object of type 'type' has no len()
in der Zeile:
AImove = random.choice(AImove)
als Referenz die AImove
Variable wird wie folgt festgelegt:
AImove = [1,2]
ich habe versucht,hinzufügenund AImove = str
in den Code, aber ich entweder den gleichen Fehler wie zuvor oder "TypeError: object of type 'int' has no len()"
Die Funktion, wo AImove
verwendet wird, erscheint unten, eine Rückmeldung würde geschätzt werden.
def combat(health, turn, loop, gold, AImove):
enemy_health = (random.choice(random_enemy_Health))
enemy_attack = (random.choice(random_enemy_Attack))
print("\nYou are fighting a" ,random.choice(enemies), "with an attack amount of" ,enemy_attack, "and a health amount of" ,enemy_health,".")
while health > 0 and enemy_health > 0:
if turn == 1:
while loop == False:
print("\nDo you want to attack or flee? Type '1' to attack and '2' to flee.")
response=input()
if response == "1":
enemy_health = enemy_health - attack
print("You attacked!")
loop = True
elif response == "2":
hub_travel()
print ("You fled the battle, come back once you are stronger!")
loop = True
else:
print ("Invalid number, try again")
continue
turn = 2
if turn == 2:
AImove = random.choice(AImove)
if AImove == 1:
print ("Enemy attacked!")
health = health - enemy_attack
if AImove == 2:
print("Enemy missed!")
turn = 1
continue
'AImove = random.choice (AImove)' Sobald dieser Code ausgeführt wird, wird der Name 'AImove' bezieht sich nicht mehr auf die ursprüngliche Liste, sondern die gewählte ganze Zahl. Wenn Sie das zweite Mal versuchen, auszuführen, erhalten Sie den Fehler. –
Wie würde ich die gleiche Funktionalität beibehalten, aber den Fehler beseitigen? Die zufällige Auswahl muss dort bleiben. – lg99
Verwenden Sie einen anderen Namen, beispielsweise: 'AIchoice = random.choice (AImove)' –