gpt4 book ai didi

python - Python 编程的新手,有人可以解释一下这个程序的错误吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:46 25 4
gpt4 key购买 nike

我是 Python 编程的新手,目前我正在编写一个简单的格斗游戏(基于文本),这非常简单,因为我目前只是在学习基础知识。我已将我的游戏代码放在下面(尚未完成),我的问题是每次运行程序时,当您输入要玩的角色时都会出现此错误。

Traceback (most recent call last):
File "C:\Python26\combat.py", line 60, in <module>
first_player.attack(second_player)
TypeError: 'int' object is not callable

这是我游戏的代码(别担心它不是很大!)。

import time
import random

class player(object):

def __init__(self, name):

self.account = name
self.health = random.randint(50,100)
self.attack = random.randint(30,40)
self.alive = True

def __str__(self):

if self.alive:
return "%s (%i health, %i attack)" % (self.account, self.health, self.attack)
else:
return self.account, "is dead!"

def attack(self, enemy):

print self.account, "attacks", enemy.account, "with %s attack!" % self.attack
enemy.health -= self.attack
if enemy.health <= 0:
enemy.die()

def die(self):
print self.account, "dies!"

alive_players = 2

name1 = raw_input("Enter a name: ")
name2 = raw_input("Enter another name: ")

player_list = {"a":player(name1), "b":player(name2)}

while alive_players == 2:

print
for player_name in sorted(player_list.keys()):
print player_name, player_list[player_name]
print

player1 = raw_input("Who would you like to play as? (a/b): ").lower()

try:
first_player=player_list[player1]
except KeyError, wrong_name:
print wrong_name, "does not exist!"
continue

if first_player==player(name1):
second_player=player(name2)
else:
second_player=player(name1)

time.sleep(1)
print
print "*" * 30
first_player.attack(second_player)
second_player.attack(first_player)

我知道有一些解决方法,比如在玩家选择名字后将角色附加到列表中,尽管我想进一步了解类并想知道为什么这不起作用!如果可能的话,有人可以解释一下故障以及我该如何解决吗?我已经看了三天了,我可以用不同的方式做它并使其工作,但我想先了解为什么这不起作用!

提前致谢!-查理

最佳答案

first_player.attack 是一个数字,因为 self.attack = random.randint(30,40)。我怀疑您希望以不同的方式命名,这样它就不会覆盖您的 attack 方法。

关于python - Python 编程的新手,有人可以解释一下这个程序的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com