def playerMove (board,player):
userInput = input("Enter a direction NSWE: ").upper()
if userInput == "N":
if (player == 0):
board[player] = '.'
player += 1
board[player] = '@'
elif userInput == "S":
if (player(board)-1):
board[player] = '.'
player += 1
board[player] = '@'
elif userInput == "E":
if (player < len(board)-1):
board[player] = '.'
player += 1
board[player] = '@'
elif userInput == "W":
if (player['x'] > 0):
board[player] = '.'
player -= 1
board[player] = '@'
这是我正在创建的游戏的示例编码,我已经编写了所有内容,当创建一个玩家时,它随机放置在5x5板上。我需要一个用户移动玩家NESW的选项,但我无法理解。这不是我的所有编码,只是我需要帮助的部分。
这是电路板编码
'def createBoard():
tempList = []
for i in range (5):
tempList.append(".")
board = []
for i in range (5):
board.append(["."]*5)
return board
def showBoard(board):
print ("---------")
print ("|".join(board[0]))
print ("---------")
print("|".join(board[1]))
print ("---------")
print("|".join(board[2]))
print ("---------")
print("|".join(board[3]))
print ("---------")
print("|".join(board[4]))
print ("---------")
def placePlayer(board,player):
len(board[0])
row = random.randint(0, len(board) -1)
col = random.randint(0, len(board[0])-1)
board[row][col] = '@'
return board, row, col
答案 0 :(得分:0)
您的播放器似乎没有被一个整数值引用,而是一行和一个col
您应该更新代码以传递元组或传入行和col值,如下面的代码段所示:
def playerMove (board,playerRow, playerCol):
if userInput == "N":
if (playerRow > 0):
board[playerRow][playerCol] = '.'
playerRow -= 1
board[playerRow][playerCol] = '@'
注意:上面的代码假定您的电路板被拆分为多维数组。就像目前一样,您需要操作数组中的字符串,因为字符串不允许您直接修改内容。
答案 1 :(得分:0)
<强> 1)强> 首先,在您的电路板生成代码中:
board = []
for i in range (5):
board.append(["."]*5)
return board
在该代码中,没有必要使用return board
,因为它不在函数中。返回语句主要用于函数:
def square(x):
return x*x
2)您的董事会将按照以下列表中的列表进行组织:
board = [
['.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.']
]
要在电路板上查找一个点,您将使用以下语法:
board[row][col]
[row]
指向电路板列表中的列表,而[col]
指向该列表中的项目。因此,要在网格上找到一个点,您需要行和列。
要将棋盘中的一个向上移动,您将使用以下内容:
board[row][col] = '.' #reset last position to '.'
board[row][col-1] = '@' #set the coordinate above to '@'
要将播放器向右移动一下,您将使用以下内容:
board[row][col] = '.' #reset last position '.'
board[row+1][col] = '@' #set the coordinate to the right to '@'