Форум сайта python.su
0
Добрый день.
Помогите разобраться.
Изучаю классы на практике и хочу реализовать игру “кости” с их помощью. Задумка такая, при входе, идет приветствие, далее вопрос о количестве играков, вводим количество играков и в зависимости от того сколько их, столько создается и объектов класса, у каждого объекта есть переменная с именем и возрастом игрока, которая задается с клавиатуры. Создаю класс для объектов:
class Player(object): def __init__(self, name, age): self.name = name self.age= age def __str__(self): rep = "New player %s, %s age" %(self.name, self.age) return rep def name(self): self.name = input("Enter name new player: ") self.age= input("Enter he/she age: ") return (self.name, self.age)
def start_game(): print("Hello, welcom to new game - dist") players_num = int(input("How many players will play: ")) # if not players_num.is_digit(): # raise Exception("Incorrect number of players") players = [Player(). for i in range(players_num)] l_players = list(enumerate(players, start=1)) print(l_players) return players_num, l_players
Отредактировано 7slon7 (Авг. 13, 2015 16:01:03)
Офлайн
568
player = Player(name, age)
Офлайн
33
7slon7David Ascher and Mark Lutz, Learning Python, 5th Edition
покажите ресурс, где будет доступно расказано о такой ситуации
Офлайн
0
немного уточню вопрос: в ф-ии start_game()
players = [Player.names() for i in range(players_num)]
str def names(): name = input("Enter name new player: ") old = input("Enter he/she old: ") return (name, old)
Отредактировано 7slon7 (Авг. 14, 2015 14:29:44)
Офлайн
568
Городите.
Во-первых, __init__ - это не конструктор. Это инициализатор, который вызывается автоматически каждый раз после создания объекта.
Во-вторых, если у вас инит задан так
def __init__(a, b): pass
obj = MyClass()
7slon7Вопрос потрясающе нелогичный. Чтобы передать в функцию параметры, их надо тупо туда передать.
тогда как его заставить эти значения получить
obj = MyClass(a, b)
Офлайн
7slon7Первый раунд:
и хочу реализовать игру “кости”
$ dice -n 3 -p "J.R.,7slon7" J.R.:......13 7slon7:....8 J.R.!
$ dice -n 3 -p "J.R.,7slon7" 7slon7:....14 J.R.:......14 No winner, one more throw: 7slon7:....25 J.R.:......28 J.R.!
$ dice -n 3 -p "J.R.,7slon7" 7slon7:....9 J.R.:......9 No winner, one more throw: 7slon7:....17 J.R.:......17 No winner, one more throw: 7slon7:....30 J.R.:......23 7slon7!
Офлайн