棋盘和程序列表

时间:2016-05-05 15:33:43

标签: python python-2.7 tkinter

我必须为我的考试创建一个python程序,这个程序是Langton的Ant,为此我需要用这样的坐标创建一个棋盘:

[x1y1, x2y1, ..., XnY1
 X1Y2, X2Y2, ..., XnY2
 ...
 X1Yn, X2Yn, ..., XnYn]

我想在can1画出所有矩形,但我不能成功!!

到目前为止,这是我的计划:

from Tkinter import *

# Création du widget principal:

fen1 = Tk()
fen1.title('Fourmi de Langton')



# création des widgets:

can1 = Canvas(fen1,bg='white',height=500,width=600)
can1.pack(side=TOP,padx=10,pady=10)    
can1.create_rectangle(1,1,10,10, fill="black")

bou1 = Button(fen1,text='Quitter',width=25,command=fen1.quit)
bou1.pack(side=RIGHT,padx=10,pady=10)

bou2 = Button(fen1,text='Start/Stop',width=25,)
bou2.pack(side=LEFT,padx=10,pady=10)

bou3 = Button(fen1,text='Step',width=25)
bou3.pack(padx=10,pady=10)

fen1.mainloop()              # récupération des instructions
fen1.destroy()  

1 个答案:

答案 0 :(得分:0)

通常,循环用于处理重复编码。在创建电路板之前需要做的一些事情,因为这可能是也可能不是开始编码的方式,具体取决于:1)您将如何识别哪个方格移动到哪个,以及2)您将如何识别哪个方块是移动,如果新广场被占用。毕竟,国际象棋是关于移动棋子,而不是使用的棋盘。

from Tkinter import *

fen1 = Tk()
fen1.title('Fourmi de Langton')

can1 = Canvas(fen1,bg='white',height=500,width=600)
can1.pack(side=TOP,padx=10,pady=10)    

board_rows=5
board_cols=5
color_black=True
x=1
y=1
square_size=10
for rows in range(board_rows):
    for columns in range(board_cols):
        color="lightgray"
        if not color_black:
            color="red"
        x=columns*square_size
        y=rows*square_size
        can1.create_rectangle(x, y,
                   x+square_size, y+square_size, fill=color)
        color_black= not color_black

bou1 = Button(fen1,text='Quitter',width=25,command=fen1.quit)
bou1.pack(side=RIGHT,padx=10,pady=10)

fen1.mainloop()