小编Cha*_*ing的帖子

为什么将值变为"无"而不是"现场"?

这是Game of Life计划.当我测试它时,我的周围(行,col)函数返回0,即使配置文件指示8个方格将被设置为"LIVE".只需在打开配置文件后通过打印电路板进行测试,结果表明,而不是让指示的方块显示为"LIVE",那些"LIVE"表示"无",因此没有计算"LIVE"值.

[[None,None,None,0,0,0,0],[None,0,None,0,0,0,0],[None,None,None,0,0,0,0],[ 0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0, 0,0,0,0,0,0]是我得到的print board.看不到我在这里缺少的东西?

LIVE = 1
DEAD = 0

def board(canvas, width, height, n):
    for row in range(n+1):
        for col in range(n+1):
            canvas.create_rectangle(row*height/n,col*width/n,(row+1)*height/n,(col+1)*width/n,width=1,fill='black',outline='green')                      

n = int(raw_input("Enter the dimensions of the board: "))
width = n*25
height = n*25

from Tkinter import *
import math

window=Tk()
window.title('Game of Life')

canvas=Canvas(window,width=width,height=height,highlightthickness=0)
canvas.grid(row=0,column=0,columnspan=5)

board = [[DEAD for row in range(n)] for col in range(n)]

rect = [[None for row in range(n)] for col in range(n)]


for row …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
34
查看次数

我/我是否将其作为函数递归?

我有三个游戏功能,如下:

def round():
    global board
    board_copy = [[x for x in row] for row in board]
    for row in range(n):
        for col in range(n):
            if countNeighbors(row,col) == 3:
                board_copy[row][col] = LIVE
                canvas.itemconfigure(rect[row][col],fill='red')
            elif countNeighbors(row,col) > 3 or countNeighbors(row,col) < 2:
                board_copy[row][col] = DEAD
                canvas.itemconfigure(rect[row][col],fill='black')
    board = board_copy

def start():
    round()
    global alarm
    alarm = window.after(500,round)

def stop():
    global alarm
    window.after.cancel(alarm)
Run Code Online (Sandbox Code Playgroud)

我希望start()函数round()每500毫秒运行一次,直到用户打开stop()(使用按钮).但是,在完全停止之前,调用start()只给了我两次迭代round().

python tkinter

0
推荐指数
1
解决办法
67
查看次数

标签 统计

python ×2

tkinter ×2