我正在尝试使用Python制作一个基于文本的游戏。我设置了一个radar()函数,但目前唯一的使用方法是玩家直接向控制台输入参数。我想程序来检测车辆的球员是驾驶和通过任何属性的车辆需要通过自动无需球员必须键入他们。你知道吗
例如 而不是玩家必须输入 'a.radar([100100100],100)'为了使用radar()函数,我希望玩家只需要输入'radar',所有其他参数将自动传递。我怎样才能做到这一点?我应该完全重构这个代码吗?你知道吗
我的代码:
class Mobilesuits:
#class global variables/methods here
instances = [] #grid cords here
def __init__(self,armor,speed,name,description,cockpit_description,\
radar_range, coordinates):
Mobilesuits.instances.append(self)
self.armor=armor
self.speed=speed
self.name=name
self.description=description
self.cockpit_description=cockpit_description
self.radar_range=radar_range
self.coordinates=coordinates
def radar(self, coordinates, radar_range):
for i in range(len(a.instances)):
cordcheck=a.instances[i].coordinates
if cordcheck == coordinates:
pass
elif (abs(cordcheck[0]-coordinates[0]) <= radar_range) and \
(abs(cordcheck[1]-coordinates[1]) <= radar_range) and \
(abs(cordcheck[2]-coordinates[2]) <= radar_range):
print("%s detected at %s ") %(a.instances[i].description, a.instances[i].coordinates)
a=Mobilesuits(100,100,"Leo","leo desc","dockpit desc",100,[100,100,100])
b=Mobilesuits(100,100,"Leo","leo desc","dockpit desc",100,[300,100,100])
c=Mobilesuits(100,100,"Leo","leo desc","dockpit desc",100,[100,150,100])
a.radar([100,100,100], 100)
让程序使用
raw_input
函数获取输入:然后根据输入做一些事情:
例如
您可能还想更改
radar
方法获取参数的方式。看起来至少有一个coordinates
或radar_range
参数应该来自self
的相应属性。例如,如果移动服的雷达应自动使用移动服自身的坐标和雷达范围,则可以编写如下方法:像其他人一样。你知道吗
看,
str()
函数只是对__str__
函数的专门调用。object
类有默认的__str__
,如果您不使用p3k,str()
对没有__str__
的对象有一些逻辑。你知道吗最后,
str()
内建可能看起来像这样(从概念上讲,实现可能完全不同):你可以做类似的事情。你知道吗
你需要返回用户对象的函数(假设游戏中有3个玩家:A、B和C,其中A由用户控制;你需要返回实例的函数
get_user_player()
)。你知道吗然后,需要实现无参数
radar
函数:现在对
radar()
的调用将导致自动找到用户控制的实例并对其调用radar。你知道吗相关问题 更多 >
编程相关推荐