我刚刚尝试从YouTube复制一些游戏代码。运行代码后,它给出以下错误:
预期的整数论点,浮点数
据我说,问题出在w.addch(food[0], food[1], curses.ACS_PI)
行。该怎么办?
import random
import curses
s = curses.initscr()
curses.curs_set(0)
sh, sw = s.getmaxyx()
w = curses.newwin(sh, sw, 0 , 0)
w.keypad(1)
w.timeout(100)
snk_x = sw/4
snk_y = sh/2
snake = [
[snk_y, snk_x],
[snk_y, snk_x - 1],
[snk_y, snk_x - 2]
]
food = [sh/2,sw/2]
w.addch(food[0], food[1], curses.ACS_PI)
答案 0 :(得分:1)
使用底数分区//
而不是普通分区/
。后者总是导致Python 3中的浮动。
w.addch
需要整数。
答案 1 :(得分:1)
如果是旧代码,则可以在Python 2上运行。
Python 2中的整数除法会生成另一个整数。
在Python 3中,它会产生一个浮点数。
您需要将除法结果转换为整数(如果需要的话)。
snk_x = int(sw / 4)
snk_y = int(sh / 2)
和
food = [int(sh / 2), int(sw / 2)]