Здравствуйте. Я начал изучать Python, и в качестве практической цели поставил создание игры. Это большая задача, решение которой, как мне кажется, закрепит те крохи знаний которые я получаю.
Заранее извиняюсь за, возможно, неправильно сформированный вопрос и возможную путаницу в понятиях, но как точнее описать я не придумал.
В общем есть следующая проблема.
Есть совершенно условный метод класса с некоторыми значениями, так же есть файл со строкой (строками) которой присвоены значения данного метода. Суть такова что я с помощью модуля "random" вставляю случайную строку из файла, этой строке хочу присвоить атрибуты метода, но как это сделать не знаю.
Python 3.5
import random
class battle_param :
def __init__(self, health, streight, agility): #инициализация
self.health = health # здоровье
self.streight = streight # сила
self.agility = agility # ловкость
mob_list = open('mob_list.py', 'r') #чтение из файла (не нужно)
random.seed (version=2)
x = random.choice ([line for line in open('mob_list.py')]) #загрузка 1 случайного монстра
y = random.choice ([line for line in open('mob_list.py')]) #загрузка 2 случайного монстра
if x.agility > y.agility: #если ловкость первого больше чем второго
while x.health != 0 or y.health != 0 : #здоровье монстров не равно нулю
y.health - x.streight #здоровье второго минус сила второго
x.health - y.streight #здоровье первого минус сила второго
if x.health == 0: #смерть одного из монстров
print ("First Win",y.health) #Вывод
break
else:
print (" Win", x.health)
break
else:
while x.health != 0 or y.h != 0:
y.health - x.streight
x.health - y.streight
if x.health == 0:
print("Second Win" + y.health)
break
else:
print("First Win" + x.health)
break
Файл из которого пытаюсь взять строки выглядит так
kot = battle_param (12,3,5)
neko = battle_param (15,5,3)
pes = battle_param (12,3,5)
nepes = battle_param (15,5,3)
buka = battle_param (12,3,5)
chashka = battle_param (15,5,3)
Ошибка:
line 17, in module
if x.agility > y.agility: #если ловкость первого больше чем второго
AttributeError: 'str' object has no attribute 'agility'
Буду благодарен, если ответ будет дан ссылкой на мануал, который надо курить. Желательно на русском. И пожалуйста, если уведите еще какие то ошибки - укажите.
Спасибо.