Python Grid Treasure Hunt

时间:2017-01-21 17:38:37

标签: python grid

我正在尝试创建一个游戏,用户输入他们想要向上/向下和向左/向右移动的值,并且网格重新打印,X在正确的位置 - 这是一个寻宝。当您输入有效的移动时,程序会失败或将X放在随机位置。我认为问题可能与我不确定每列和每行的分配数量有关。 这是代码的相关部分:

创建董事会

Move = 0
from random import randint
GridSize = 8

board = []

for x in range(8):
    board.append(["O"] * GridSize)

def print_board(board):
    for row in board:
        print( " ".join(row))

Player_Row = GridSize - 1
Player_Col = 0

def random_row(board):
    return randint(0, len(board) - 1)

def random_col(board):
    return randint(0, len(board[0]) - 1)
board[Player_Row][Player_Col] = "X"
print_board(board)
while 1:
    #  Player Moving Up #
    Player_Row_Add = 123
    while (0 >(Player_Row - Player_Row_Add) < (GridSize -1)):
        try:
            Player_Row_Add = int(input("How many squares up do you want to go?"))
        except ValueError as ex:
            print(ex)

    # Player Moving Down #
    Player_Col_Add = 123
    while (0 >(Player_Col_Add + Player_Col)> (GridSize -1)):
        try:
            Player_Col_Add = int(input("How many squares along do you want to go?"))
        except ValueError as ex:
            print(ex)






    Player_Row = Player_Row - Player_Row_Add
    Player_Col = Player_Col + Player_Col_Add
    board[Player_Row][Player_Col] = "X"
    Move = Move + 1
    print_board(board)

1 个答案:

答案 0 :(得分:0)

你错了while

此版本更易于理解

while not (-1 < Player_Row - Player_Row_Add < GridSize):

while not (-1 < Player_Col + Player_Col_Add < GridSize):

如果没有not则需要

while (-1 >= Player_Row - Player_Row_Add) or (Player_Row - Player_Row_Add >= GridSize):

while (-1 >= Player_Col + Player_Col_Add) or (Player_Col + Player_Col_Add >= GridSize):