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 将字符输入到地图上 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 = []

我目前正在尝试制作一个金银岛游戏,其中的代码打印出一个10x10(试图让这个先工作,然后实现其余大小的地图),地图左下角有一个X。然后,用户告诉程序要将角色上、左、右、下移动多少个位置,然后再移动

它还应该随机隐藏硬币,以允许角色获得点数

目前,我无法使用板上的X打印板。现在它返回错误

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])