2016-12-07 9 views
0

グリッドを作成し、ユーザーが移動できるようにする次のコードを考え出しました。プレイヤーが2Dグリッドの外に移動することを許可しないPython 3

choice_size = 8 
board = [] 
x = choice_size 
y = x 
for row in range(0,x): 
    board.append(["."]*y) 

def print_board(board): 
    for row in board: 
     print(" ".join(row)) 
x = choice_size - 1 
y = 0 
while True: 
    board[x][y] = "P" 
    print_board(board) 
    board[x][y] = "." 
    right = ["right", "Right", "R", "r"] 
    left = ["Left", "left", "L", "l"] 
    up = ["Up", "up", "U", "u"] 
    down = ["Down", "down", "D", "d"] 
    direction_choice = input("Which direction would you like to move vertically (Up/Down)?") 
    if direction_choice.strip() in up: 
     movement_value = int(input("How far do you want to move up?")) 
     x = x - movement_value 
    elif direction_choice.strip() in down: 
     movement_value = int(input("How far do you want to move down?")) 
     x = x + movement_value 
    else: 
     print("Please ensure that you have chosen a valid option") 
    direction_choice = input("Which direction would you like to move horizontally (Left/Right)?") 
    if direction_choice.strip() in right: 
     movement_value = int(input("How far do you want to move right?")) 
     y = y + movement_value 
    elif direction_choice.strip() in left: 
     movement_value = int(input("How far do you want to move left?")) 
     y = y - movement_value 
    else: 
     print("Please ensure that you have chosen a valid option") 

私がグリッドの底から出る移動を入力すると、エラーが発生します。そして、私はまだボードの側から反対側に移動することができます(たとえば、ボードの端から左に移動すると、ボードの右側に移動します)。 Try/Except IndexErrorを試しましたが、解決策が見つかりませんでした。

答えて

0

リスト「ボード」内のx、y座標の位置を見つけることについて考え、その後、「ボード」内のサブリストの位置になり、あなたのボード

+1

だから、Y座標のサイズにこれを比較しますX座標はそのサブリスト内の位置になりますか? –

関連する問題