Python 将字符输入到地图上 def board10(): 从随机导入randint 硬币=0 董事会=[] 字符=[] 对于范围(10)内的i: 行=[] 对于范围(10)内的j: 行。追加('O') 字符[x][y]=“x” board.append(第行) def打印板(板): 对于板中的行: 打印(“.”连接(行)) 打印(“让我们玩寻宝游戏吧!”) 印刷电路板 打印(“硬币总数:”,硬币) def随机_第1行(板): 返回randint(O,len(板)-1) def随机_第2行(板): 返回randint(O,len(板)-1) def随机_col1(电路板): 返回randint(O,len(板[0])-1) def随机_col2(电路板): 返回randint(O,len(板[0])-1) 左交叉1=随机第1行(板) 右箭头1=随机箭头2(板) 垂直向上=随机向上(电路板) down_Vetica1=随机_col2(板) 对于交车范围(10): left_across2=int(输入(“您希望在网格左侧移动多少步?:”) right_across2=int(输入(“您希望在网格右侧移动多少次?”:”) up_vertical2=int(输入(“您希望向网格上移多少步?:”) down_vertical2=int(输入(“您希望在网格中向下移动多少?:”) 如果左箭头2==左箭头1和右箭头2==右箭头1和上箭头2==上箭头1和下箭头2==下箭头1: 打印(“祝贺你!你落在了一个宝箱上!”) 硬币+10 打破 其他: 如果(左交叉28)或(右交叉28)或(上垂直28)或(下垂直28): 打印(“哦,这不在网格中。请重试”) 其他: 打印(“旋转”,旋转+1) 印刷电路板 打印(“硬币总数:”,硬币) 选择=”; 当循环==1时: 打印(“菜单”) 打印(“a.玩游戏”) 打印(“b.退出游戏”) 打印(“”) 选择=输入(“选择选项=”) 循环=0 如果选项=='a': 打印(“您已选择玩游戏”) 打印(“选择要播放的网格大小”) 打印(“1.)8 x 8”) 打印(“2.)10 x 10”) 打印(“3.)12 x 12”) 选择=输入(“选择选项=”) 如果选项=='1': 董事会8() elif choice==“2”: 董事会10() elif选项==“3”: 董事会12() 其他: 打印(“您选择的选项无效”) 循环==1 elif choice==“b”: 打印(“您已选择退出游戏”) 退出 其他: 打印(“您选择的选项无效”) 循环==1
我目前正在尝试制作一个金银岛游戏,其中的代码打印出一个10x10(试图让这个先工作,然后实现其余大小的地图),地图左下角有一个X。然后,用户告诉程序要将角色上、左、右、下移动多少个位置,然后再移动 它还应该随机隐藏硬币,以允许角色获得点数 目前,我无法使用板上的X打印板。现在它返回错误Python 将字符输入到地图上 def board10(): 从随机导入randint 硬币=0 董事会=[] 字符=[] 对于范围(10)内的i: 行=[] 对于范围(10)内的j: 行。追加('O') 字符[x][y]=“x” board.append(第行) def打印板(板): 对于板中的行: 打印(“.”连接(行)) 打印(“让我们玩寻宝游戏吧!”) 印刷电路板 打印(“硬币总数:”,硬币) def随机_第1行(板): 返回randint(O,len(板)-1) def随机_第2行(板): 返回randint(O,len(板)-1) def随机_col1(电路板): 返回randint(O,len(板[0])-1) def随机_col2(电路板): 返回randint(O,len(板[0])-1) 左交叉1=随机第1行(板) 右箭头1=随机箭头2(板) 垂直向上=随机向上(电路板) down_Vetica1=随机_col2(板) 对于交车范围(10): left_across2=int(输入(“您希望在网格左侧移动多少步?:”) right_across2=int(输入(“您希望在网格右侧移动多少次?”:”) up_vertical2=int(输入(“您希望向网格上移多少步?:”) down_vertical2=int(输入(“您希望在网格中向下移动多少?:”) 如果左箭头2==左箭头1和右箭头2==右箭头1和上箭头2==上箭头1和下箭头2==下箭头1: 打印(“祝贺你!你落在了一个宝箱上!”) 硬币+10 打破 其他: 如果(左交叉28)或(右交叉28)或(上垂直28)或(下垂直28): 打印(“哦,这不在网格中。请重试”) 其他: 打印(“旋转”,旋转+1) 印刷电路板 打印(“硬币总数:”,硬币) 选择=”; 当循环==1时: 打印(“菜单”) 打印(“a.玩游戏”) 打印(“b.退出游戏”) 打印(“”) 选择=输入(“选择选项=”) 循环=0 如果选项=='a': 打印(“您已选择玩游戏”) 打印(“选择要播放的网格大小”) 打印(“1.)8 x 8”) 打印(“2.)10 x 10”) 打印(“3.)12 x 12”) 选择=输入(“选择选项=”) 如果选项=='1': 董事会8() elif choice==“2”: 董事会10() elif选项==“3”: 董事会12() 其他: 打印(“您选择的选项无效”) 循环==1 elif choice==“b”: 打印(“您已选择退出游戏”) 退出 其他: 打印(“您选择的选项无效”) 循环==1,python,python-3.x,Python,Python 3.x,我目前正在尝试制作一个金银岛游戏,其中的代码打印出一个10x10(试图让这个先工作,然后实现其余大小的地图),地图左下角有一个X。然后,用户告诉程序要将角色上、左、右、下移动多少个位置,然后再移动 它还应该随机隐藏硬币,以允许角色获得点数 目前,我无法使用板上的X打印板。现在它返回错误 def board10(): from random import randint coins = 0 board = [] charac = []
def board10():
from random import randint
coins = 0
board = []
charac = []
for i in range(10):
row = []
for j in range(10):
row.append('O')
charac[x][y] = 'x'
board.append(row)
def print_board(board):
for row in board:
print (" ".join(row))
print ("Let's play Treasure Hunt!")
print_board(board)
print ("Total Coins:", coins)
def random_row1(board):
return randint(O, len(board) - 1)
def random_row2(board):
return randint(O, len(board) - 1)
def random_col1(board):
return randint(O, len(board[0]) - 1)
def random_col2(board):
return randint(O, len(board[0]) - 1)
left_across1 = random_row1(board)
right_across1 = random_row2(board)
up_vertical1 = random_col1(board)
down_vetical1 = random_col2(board)
for turn in range(10):
left_across2 = int(input("How many moves LEFT of the grid would you like to go?:"))
right_across2 = int(input("How many moves RIGHT of the grid would you like to go?:"))
up_vertical2 = int(input("How many moves UP of the grid would you like to go?:"))
down_vertical2 = int(input("How many moves DOWN of the grid would you like to go?:"))
if left_across2 == left_across1 and right_across2 == right_across1 and up_vertical2 == up_vertical1 and down_vertical2 == down_vertical1:
print ("Congratulations! You landed on a Treasure Chest!")
coins + 10
break
else:
if (left_across2 < 0 or left_across2 > 8) or (right_across2 < 0 or right_across2 > 8) or (up_vertical2 < 0 or up_vertical2 > 8) or (down_vertical2 < 0 or down_vertical2 > 8):
print ("Oops, that's not even in the grid. Try Again")
else:
print ("Turn", turn + 1 )
print_board(board)
print ("Total Coins:", coins)
choice = "";
while loop ==1:
print ("Menu")
print ("a.) Play the Game")
print ("b.) Quit the Game")
print ("")
choice = input("Select an option = ")
loop =0
if choice == 'a':
print("You have selected to Play the Game")
print("Select which size grid you would like to play")
print("1.) 8 x 8")
print("2.) 10 x 10")
print("3.) 12 x 12")
choice=input("Select an option = ")
if choice =='1':
board8()
elif choice == '2':
board10()
elif choice == '3':
board12()
else:
print("You've picked an invalid choice")
loop ==1
elif choice == 'b':
print("You have selected to Quit the Game")
quit()
else:
print("You've Picked an invalid Choice")
loop==1
回溯(最近一次呼叫最后一次):
文件“*文件根*/受控评估(1.py)”,第91行,在
董事会10()
文件“*文件根*/受控评估(1.py)”,第17行,在board10中
字符[x][y]=“x”
名称错误:未定义名称“x”
任何帮助都将不胜感激 这是一条线
Traceback (most recent call last):
File "*file Root*/Controlled Assessment (1).py", line 91, in <module>
board10()
File "*file Root*/Controlled Assessment (1).py", line 17, in board10
charac[x][y] = 'x'
NameError: name 'x' is not defined
当您为列表编制索引时,正如您在这里所做的那样,您应该使用计算结果为数字的内容。例如,如果您有一个名为lst
的变量,它保存值[1,2,3,4,5]
(由5个数字组成的列表),那么lst[0]
是1
,lst[3]
是4
,依此类推。除了使用文字数字外,您还可以使用一个保存数字的变量,例如如果foo
被定义为2
(您可以使用code语句foo=2
),那么lst[foo]
就是3
。这就是您试图在代码中执行的操作,使用存储在x
下的值对列表charac
进行索引。然而,您实际上从未在x
中放入数字,因此Python不知道如何处理它。这就是为什么你会犯这个错误
一个复制这个错误的非常简单的程序是
charac[x][y] = 'x'
^
修复此程序的简单方法是将其更改为以下内容:
lst = [1, 2, 3, 4, 5]
print(lst[x])
将来,如果您尝试将程序缩减到可能出现错误的最小示例(如我刚才展示的示例),您将很容易发现许多错误。感谢David的回复,非常感谢。谢谢你的编辑!回答了我的问题。你现在可以看一下吗。当我尝试运行代码时,我得到了以下错误:代码:从随机导入randint coins=0 board=[]字符=[0,1,2,3,4,5]对于范围(10)中的I:row=[]对于范围(10)中的j:row.append('O')字符[1][1]=“X”board.append(row)错误:文件“*文件根*/受控评估(1).py“,board10()文件“*文件根*/受控评估(1.py)”第91行,board10字符[1][1]=“X”类型错误:“int”对象不支持项目分配或者您是否有电子邮件,我可以从您那里获得一些支持?
lst = [1, 2, 3, 4, 5]
x = 2
print(lst[x])