Аргумент int() должен быть строкой, байтовоподобным объектом или числом, а не "списком" Python Python-Tcod Roguelike
Я делаю игру типа roguelike, используя движок python-tocd roguelike. Моя игра основана на обучающей программе Python libtcod roguelike.
Я делаю список констант, которые я использую для создания карт
game_map.make_map(constants['max_rooms'], constants['room_min_size'], constants['room_max_size'],
constants['map_width'], constants['map_height'],entities,player,
constants['maze_min_size'], constants['max_maze_rooms'], ['maze_max_size'])
Теперь я использую некоторый код в функции, чтобы определить размер комнаты.
for r in range(max_rooms):
# random width and height
w = randint(room_max_size, room_min_size)
h = randint(room_max_size, room_min_size)
# random position without going out of the boundaries of the map
x = randint(0, map_width - w - 1)
y = randint(0, map_height - h - 1)
Я определил переменные здесь
map_width = 80
map_height = 45
room_max_size = 10
room_min_size = 6
max_rooms = 30
Теперь, когда я запускаю игру, это появляется?
File "C:/Users/Al Abraham/Documents/CaveRL/CaveRL/engine.py", line 466, in <module>
main()
File "C:/Users/Al Abraham/Documents/CaveRL/CaveRL/engine.py", line 445, in main
player, entities, game_map, message_log, game_state, ggender = get_game_variables(constants)
File "C:\Users\Al Abraham\Documents\CaveRL\CaveRL\initialize_new_game.py", line 115, in get_game_variables
constants['maze_min_size'], constants['max_maze_rooms'], ['maze_max_size'])
File "C:\Users\Al Abraham\Documents\CaveRL\CaveRL\map_objects\game_map.py", line 110, in make_map
w = randint(room_max_size, room_min_size)
File "C:\Python37\lib\random.py", line 222, in randint
return self.randrange(a, b+1)
File "C:\Python37\lib\random.py", line 184, in randrange
istart = _int(start)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
Что я должен делать?
1 ответ
Когда вы используете функцию int(), у вас должна быть строка или некоторое число. Эта ошибка говорит о том, что по крайней мере один из ваших параметров является списком, а не числом.
Вы должны проверить строку, где вы объявляете переменную "w", кажется, что источником проблемы является либо room_max_size, либо room_min_size.