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