Python /如何在6x6网格上的随机位置放置符号

时间:2018-11-06 16:20:55

标签: python grid-layout

我是Python和编程的新手,我在编程课程中遇到了一项任务。

我需要创建一个将在6×6网格上进行游戏的游戏。网格将代表一张地图,游戏英雄将从位置(0,0)开始。同样,开始时,项目将被随机放置在网格上的唯一位置。它们以字母/符号表示。 (例如“ S”,“ R”,“ *”)

我对此有一些疑问。

1)我不确定如何将英雄(“ H”)放置在网格上。

2)我不知道如何在网格上随机获取物品。

有人可以帮我吗?这就是我创建网格的方式:

board = []

def print_board(board):
    for x in range(6):
        board= (["-"] * 6)
        print(" ".join(board))
    return board

print_board(board)

这就是我试图将英雄放置在网格上的方法:

    board[0][0] = "H"

但是,我不确定应该将这段代码放在哪里/如果正确的话。另外,我应该能够“移动”英雄(通过询问玩家是否要向左/向右/向上/向下移动)。可能这首先需要一个函数来询问玩家方向,然后是一个for循环来执行移动,对吗?

这是一门初学者课程,所以我认为无论答案是什么,它都可能很简单。我只是似乎无法绕过它。预先谢谢你。

编辑

很抱歉给您带来麻烦,我在这里也很新。无论如何,我尝试过:

    def PlaceItem(board, item):
        for i in range(len(board)-1):
            board[x] = randint(0,len(board) - 1)
            board[y] = randint(0,len(board) - 1)
            if board[x] == "-" and board[y] == "-":
                board[x][y] = item
                print(board)
            else:
                continue
        return board

我之前已经定义了项目(例如,剑=“ S”)。然后,我将该函数称为PlaceItem(board,sword)。不起作用,所以我假设有什么问题。

2 个答案:

答案 0 :(得分:1)

您需要首先建立一个真正符合您要求的董事会:

board = [
   [None, None, None, None, None, None], # Row 1 (but accessed with 0!)
   ... 5 more times
]

然后,您可以根据需要放置英雄。您还可以使用random模块来确定随机位置。寻找randint函数。

放置字符时,为该字符编写函数很有用

  • 将板卡作为输入参数。全局变量是邪恶的!
  • 获取字符作为输入。
  • 生成随机位置。
  • 检查位置是否为空!
  • 否则,返回生成(这最后三个步骤需要循环进行。您知道哪种类型吗?)
  • 最后,放置角色。

答案 1 :(得分:0)

您可以首先随机查看库,具体来说:

import random
print(random.choice(["S","R","Q"]))