我必须为我的考试创建一个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()
答案 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()