python - 制作游戏时二维数组索引python的问题
问题描述
我正在尝试使用 Python 编写自己的连接四游戏。我正在尝试将我绘制的圆圈排序为二维数组。但是,当我尝试将我的形状对象分配给数组时,它会给我一个索引错误。我真的看不出 counterrow 和 countercolumn 的问题,其他人可以吗?顺便说一句,我的空间类只有一个初始化设置 x1、x2、y1、y2、taked 和 id
from tkinter import *
from space import *
master = Tk();
w = Canvas(master, width = 600, height = 500)
w.pack()
spaceList = []
for i in range(7):
spaceList.append([0] * 6)
currentmove = 'PLAYER1'
won = False
counterrow = 0
countercolumn = 0
for i in range(0,560,80):
for j in range(0,480,80):
w.create_oval(10+i, 10+j, 90+i, 90+j)
newspace = Space(10+i, 10+j, 90+i, 90+j, False, 'EMPTY')
spaceList[counterrow][countercolumn] = newspace
countercolumn = countercolumn + 1
counterrow = counterrow + 1
while(not won):
movecol = int(input("Please select a column!"))
def move(column):
for i in spaceList:
return 0
mainloop()
解决方案
您必须重置计数器:
for i in range(0,560,80):
# add this:
countercolumn = 0
for j in range(0,480,80):
# omitted
否则它会变成 7 甚至更大,并且您会溢出。
推荐阅读
- python - tensorflow 2,梯度是一个空列表
- html - 隐藏块元素而不使用 display:none 与 0 高度和宽度的修改容器?
- postgresql - 如何实现类似表的“银行交易”?
- rust - 闭包是 `FnOnce` 因为它将变量 `________` 移出其环境
- python - 有没有办法在 QTextBrowser PyQt5 中显示输入 html 标签?
- metal - 制服有什么用
? 统一缓冲区可以通过 setVertexBytes() 传递有什么区别? - javascript - 是否可以使用javascript向html文件添加n次按钮?
- mysql - 在本地运行并部署到 Heroku 时,Spring Boot 应用程序查询编码似乎有所不同
- email - 强制 Mailapp 始终从特定的电子邮件地址发送?
- amazon-web-services -
AuthorizationHeaderMalformed