Ich frage mich, wie ich diese elif-Aussagen in eine Art von Methode zusammenfassen kann. Ich weiß auch nicht, wie ich eine gewählte Koordinate speichern soll, damit ich die umliegenden Koordinaten überprüfen kann. Ich weiß, dass mein Code nooby, aber so bin ich, ich lerne besser beginnend mit dem langen Weg :)Wie man mehrere ELIF-Anweisungen in eine Methode umwandelt (PYTHON)
Unten ist, wie werde ich über eine in einem variablen Koordinate zu speichern. (Nicht sicher, dass dies auch der richtige Weg, es noch zu tun ...)
grab = board[x][y] if(SjumpX == 'A1'): grab = [0][0] elif(SjumpX == 'A2'): grab = [0][1] elif(SjumpX == 'A3'): grab = [0][2] elif(SjumpX == 'A4'): grab = [0][3] elif(SjumpX == 'B1'): grab = [1][0] elif(SjumpX == 'B2'): grab = [1][1] elif(SjumpX == 'B3'): grab = [1][2] elif(SjumpX == 'B4'): grab = [1][3] elif(SjumpX == 'C1'): grab = [2][0] elif(SjumpX == 'C2'): grab = [2][1] elif(SjumpX == 'C3'): grab = [2][2] elif(SjumpX == 'C4'): grab = [2][3]
SjumpX die des Stückes koordinieren ist mein Spieler ergreifen will, und DjumpX ist die des Ziel koordinieren. Meine Logik dahinter ist, wenn der Spieler eine Koordinate eingibt (zB A1 B2 C3 ...), kann ich dann diese Koordinate in der Variablen 'greifer' speichern und dann diese Variable verwenden, um zu testen, ob die Zielkoordinate leer ist, auch wenn die Koordinieren Sie zwischen den beiden ist das ein Gegenspielerstück. Hier
ist der Vorstand:
1 2 3 4 A - X O X B X O - O C O X O X
Dies, wo ich überprüfen, ob die „überspringbare“ Zielkoordinaten leer sind, basierend auf den aktuellen Koordinaten meines ‚greifen‘ variabel. In diesem Fall < 'A3' ==> Greifer = [0] [2]
if((grab[x][y-2] == '-' or grab[x][y+2] == '-' or grab[x-2][y] == '-' or grab[x+2][y] == '-')and (grab[x][y-1] == 'X' or grab[x][y+1] == 'X' or grab[x-1][y] == 'X' or grab[x+1][y] == 'X'):
Meine Hauptfragen sind:
1- Wie kann ich eine riesige elif Anweisungsliste kondensieren?
2- Was ist das korrekte Format/Verfahren zum Speichern einer Koordinate zur Überprüfung des umgebenden Koordinateninhalts?
3- Wie kann ich meine if-Anweisung verdichten, die prüft, ob die Zielkoordinate leer ist ('-').
In allen 'elif'-Anweisungen, nehme ich an, dass Sie beabsichtigen zu bedeuten: return grab [x1] [y1] 'oder' grab = board [x1] [y1] 'anstelle von' grab = [x1] [y1] '. Recht? Denn die Aussagen scheinen syntaktisch nicht richtig zu sein. –
Nur zum Spaß können Sie Ihre Elifs in einer Zeile zusammenfassen (vorausgesetzt, der obige Kommentar ist korrekt): 'grab [{'A': 0, 'B': 1, 'C': 2} [SjumpX [0]] ] [int (SjumpX [1]) - 1] ' – khachik