これらのelifステートメントをある種のメソッドに凝縮する方法については、私は不思議です。私はまた、選択した座標を保存する方法を知らないので、周囲の座標のチェックを実行できます。私は自分のコードがnoobyだと知っていますが、それでは、私は長い道のりから始めることを学びます:)複数のELIFステートメントを1つのメソッド(PYTHON)に変換する方法
以下は、変数内に座標を格納する方法です。
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が私のプレイヤーがつかむことを望んでいる部分の座標である(わからないこれは...まだそれを行うにしても正しい方法である)、そしてDjumpXは先の座標です。この背後にある私のロジックは、プレイヤーが座標(A1 B2 C3 ...)を入力すると、その座標を変数 'grab'に格納し、その変数を使用して目的地座標が空であるかどうかをテストします。 2人の間の座標は反対側の選手の部分です。
1 2 3 4 A - X O X B X O - O C O X O X
この私が、「jumpable」先の座標が私の「グラブ」変数の現在の座標に基づいて、空であることを確認しています:ここで
ボードです。この場合、 'A3' < ==>グラブ= [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'):
私の主な質問は以下のとおりです。
1 - どのように私は、巨大なelifのステートメントリストを凝縮しますか?
2周囲の座標の内容をチェックするために座標を格納する正しい形式/プロセスは何ですか?
3宛先の座標が空( ' - ')であるかどうかを調べるif文を凝縮するにはどうすればよいですか。
すべての 'elif'文で' grab = [x1] [y1]の代わりに 'grab [x1] [y1]'や 'grab = board [x1] [y1] '。右?なぜなら、文は構文的に正しいとは思われないからです。 –
あなたはelifを1行に集約することができます(上記のコメントが正しいと仮定して):grab [{'A':0、 'B':1、 'C':2} [SjumpX [0]] ] [int(SjumpX [1]) - 1] ' – khachik