2016-05-05 3 views
0

Ich habe ein Python-Programm für meine Prüfung zu schaffen, ist dieses Programm Langtons Ant und dafür brauche ich ein Schachbrett zu schaffen, mit wie diese Koordinate:Schachbrett und Liste für das Programm

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

Ich mag tun, um zeichne alle Rechtecke in can1, aber ich kann nicht erfolgreich sein !!

Das ist mein Programm so weit:

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

Sie können [** diese Lösung **] (http://stackoverflow.com/questions/4954395/create-board-game-like-grid-in-python) –

Antwort

0

Im Allgemeinen wird eine Schleife (n) verwendet wird, sich wiederholende Codierung zu handhaben. Einige Dinge, die vor dem Erstellen des Boards notwendig sind, da dies die Art sein kann, mit dem Codieren zu beginnen, abhängig von: 1) Wie werden Sie identifizieren, welches Quadrat von und zu bewegt wird, und 2) wie werden Sie identifizieren, welches Stück ist bewegt und wenn das neue Quadrat besetzt ist. Schließlich geht es bei Schach um bewegte Teile, nicht um das Brett.

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()