Python / Как разместить символы в произвольном месте на сетке 6x6

Я новичок в Python и программировании, и у меня возникла проблема с одной из задач моего курса программирования.

Мне нужно создать игру, в которую можно будет играть по сетке 6 × 6. Сетка будет представлять карту, и герой игры начнет с позиции (0,0). Также при запуске предметы будут случайным образом размещаться на уникальных позициях в сетке. Они представлены в виде букв / символов. (например, "S", "R", "*")

У меня есть несколько проблем с этим.

1) Я не уверен, как разместить героя ("Н") на сетке.

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(доска, меч). Не работает, поэтому я предполагаю, что что-то не так.

2 ответа

Сначала вам нужно создать доску, которая действительно соответствует вашим требованиям:

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

Затем вы можете разместить своего героя по желанию. Вы также можете определить случайное положение, используя random модуль. Ищите randint-функции.

При размещении символа полезно написать функцию для

  • получает плату в качестве входного параметра. Глобальные переменные - это зло!
  • получает символ в качестве входных данных.
  • генерирует случайную позицию.
  • проверяет, пуста ли позиция!
  • если нет, вернемся к генерации (эти последние три шага должны войти в цикл. Вы знаете, какой именно?)
  • наконец, разместите персонажа.

Вы можете начать с просмотра библиотеки случайным образом, а именно:

import random
print(random.choice(["S","R","Q"]))
Другие вопросы по тегам