2

ヘビに似たゲームを作ろうとしています。違いは、食料配給はrandintを使用して受け取られ、プレーヤーはヘビが成長する方向を選択できるようになり、開始位置もランダムに選択されることです。ゲームフィールドはマトリックスで構築されているため、リストが範囲外になる成長方向を選択することで、「壁の中に」成長することができます。

私の質問は、プレーヤーがリストを範囲外にするような方法で成長することを選択した場合に、「ゲームオーバー」でゲームを終了するifステートマンを作成できるかどうかです。

if IndexError: list index out of range : 
         print("Game over")

例外処理を除いて、私のコードは次のようになります。

 try :

    if p == 0:
        table[x][y] = "+"
    elif p == 1:
        table[x][y] = "+"
        table[x][y+1] = "+"
    elif p == 2:
        table[x][y] = "+"
        table[x][y+1] = "+"
        table[x][y+2] = "+"
    else:
        table[x][y] = "+"
        table[x][y+1] = "+"
        table[x][y+2] = "+"
        table[x][y+3] = "+"
 except IndexError :
                 print ("Game Over")

しかし、「unindentは外部のインデントレベルと一致しません」というエラーが表示されます

4

1 に答える 1

9

例外処理を使用する:

 try :
     #your code
 except IndexError:
    print "Game Over"
于 2012-11-17T18:33:31.463 に答える