首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int()参数必须是字符串、类似字节的对象或数字,而不是'list‘python-tcod Roguelike

int()参数必须是字符串、类似字节的对象或数字,而不是'list‘python-tcod Roguelike
EN

Stack Overflow用户
提问于 2018-09-09 08:30:26
回答 1查看 665关注 0票数 0

我正在用python-tocd roguelike引擎做一个类似roguelike的游戏。我的游戏基于python libtcod roguelike教程。

我正在制作一个用于生成映射的常量列表

代码语言:javascript
复制
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'])

现在我在一个函数中使用一些代码来确定房间的大小。

代码语言:javascript
复制
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)

我在这里定义了变量

代码语言:javascript
复制
map_width = 80
map_height = 45

room_max_size = 10
room_min_size = 6
max_rooms = 30

现在,当我启动游戏时,它会出现吗?

代码语言:javascript
复制
  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'

我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2018-09-09 09:37:04

使用int()函数时,必须有一个字符串或某个数字。这个错误说明您的参数中至少有一个是列表,而不是数字。

您应该检查声明"w“变量的行,看起来问题的根源不是来自room_max_size就是来自room_min_size。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52240398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档