Я пытаюсь создать текстовую игру, используя Python. Я настроил функцию радара(), но в настоящее время единственным способом ее использования является то, что игрок вводит аргументы непосредственно в консоль. Я хочу, чтобы программа обнаружила, какой автомобиль пилотирует игрок, и передавать любые атрибуты этого транспортного средства, которые должны передаваться автоматически, без того, чтобы игрок набирал их.Как автоматически передать аргументы функции на определенные объекты
Например Вместо игрока, имеющего ввести «a.radar ([100.100.100], 100)» для того, чтобы использовать функцию радара() Я хочу, чтобы игрок только нужно ввести «радар» , и все другие параметры, которые будут переданы автоматически. Как я могу это сделать? Должен ли я полностью перестроить этот код?
Мой код:
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)
'печать ("% s обнаружено at% s ")% (a.instances [i] .description, a.instances [i] .cordinates) '- вы на Python 2. Не помещайте круглые скобки вокруг строки, которую вы передаете, чтобы напечатать. – user2357112