2016-12-26 1 views
0

Es ist derzeit zwischen den Semestern und ich wollte ein zweites "Abschlussprojekt" für nichts anderes als Übung machen. Ich habe beschlossen, ein Schachspiel in Python zu machen.Erstellen eines Checkers Board in Python

Ich benutze die Grafikbibliothek, um dies zu tun. Die Art, wie ich will, dass es funktioniert, ist die Platine mit Quadraten zu bauen und ich möchte jede von ihnen als ihre eigene Einheit bezeichnen. Ich weiß nicht, ob das funktionieren kann ***, aber ich möchte ein Wörterbuch erstellen, um jedes Rechteck zu speichern und einen Wert zu haben, der anzeigt, ob dort ein Stück ist oder nicht. Bisher ist es das, was ich das Board bauen ....

def board(win,coordSys): 
     xRange = 'ABCDEFGH' 
     X = 0 
     for x in range(1,9): 
      for y in range(1,9): 
       Rec = Rectangle(Point(x,y),Point(x+1,y+1)) 

       if x%2 == 0 and y%2 == 0: 
        Rec.setFill('red') 
        coordSys[xRange[X]+str(y)] = 0 
       elif x%2 != 0 and y%2 != 0 : 
        Rec.setFill('red') 
        coordSys[xRange[X]+str(y)] = 0 
       else: 
        Rec.setFill('grey') 

       Rec.draw(win) 
      X+=1 

ich Python relativ neu bin so ich versuche es mit den Werkzeugen zu tun, die ich schon von jetzt bewusst bin. Meine Frage ist, wie kann ich einzelne Rechtecke mit einem A1-H8-Format in einem Wörterbuch speichern, so dass ich {A1: 0 etc ..} habe und ich bin in der Lage, den Wert von A1 zu überprüfen, ob etwas geändert wurde in A1s Rechteck?

+0

haben Sie das nicht schon getan? – mic4ael

+0

Es erstellt ein Wörterbuch mit den richtigen Koordinaten, aber es gibt keine Coorelation zwischen der Koordinate und dem Quadrat. Wenn ich zum Beispiel versuchen würde, A1 zu nennen, ist es nur ein String und zeigt nicht auf das Quadrat A1 –

+0

'coordSys [xRange [X] + str (y)] = Rec'? – mic4ael

Antwort

0

Wenn das, was Sie wollen, ein Wörterbuch, dessen Werte sind die Rechtecke in Frage, es klingt wie das, was Sie suchen, ist so etwas wie

for x in range(1, 9): 
    for y in range(1, 9): 
     rec = Rectangle(Point(x, y), Point(x+1, y+1)) 
     coordSys[xRange[x-1] + str(y)] = rec 
     rec.draw(win) 
+0

Zunächst einmal danke für die Antwort! –

+0

Würde ich dann ein zweites Wörterbuch verwenden müssen, um jedes dieser Rechtecke im Wörterbuch mit einem Wert von entweder 0,1 oder 2 zu verknüpfen. Jedes Quadrat, das eine 1 hat, hat ein schwarzes Stück, jedes 2 hat ein rotes usw ... Ich weiß nicht, ob das Sinn macht. Lass es mich wissen, wenn nicht und ich versuche es zu klären. –

Verwandte Themen