Это пример того, как переместить игрок на борте
Но он использует специальный символ Linux для очистки терминала/консоли перед тем перерисовки платы.
import time
# --- constants --- (UPPER_CASE names)
SIZE_X = 10
SIZE_Y = 5
SYMBOL_EMPTY = '()'
SYMBOL_PLAYER = '(@)'
#SYMBOL_DANGER = '(!)'
# --- functions --- (lower_case names)
def print_board(board):
print('\33c') # clear terminal on Linux
for row in board:
print("".join(row))
def move_player(new_x, new_y):
global player_x
global player_y
# remove in old place
board[player_y][player_x] = SYMBOL_EMPTY
# put in new place
player_x = new_x
player_y = new_y
board[player_y][player_x] = SYMBOL_PLAYER
# --- main --- (lower_case names)
# creat board
board = [ ]
for row in range(SIZE_Y):
board.append([SYMBOL_EMPTY] * SIZE_X)
# display empty board
print_board(board)
time.sleep(0.5)
# set player position and symbol
player_x = player_y = 0
board[player_y][player_x] = SYMBOL_PLAYER
# display board with player
print_board(board)
time.sleep(0.5)
# move player
# move left
for new_x in range(SIZE_X):
move_player(new_x, player_y)
# redraw
print_board(board)
time.sleep(0.5)
# move down
for new_y in range(SIZE_Y):
move_player(player_x, new_y)
# redraw
print_board(board)
time.sleep(0.5)
Реальная программа может быть более сложной.
В консоли может возникнуть проблема с очисткой экрана, чтобы перерисовать доску и получить событие key/mouse, чтобы сделать ее реальной интерактивной. Возможно, см. Модуль urwid или ncurses
.
Или попробуйте графические модули, такие как PyGame, Pyglet
'board [y] [x] =" Hello World! "' – furas
@furas Что вы подразумеваете под этим? – mrzippy01
, если вам нужен пользователь на месте '(x, y)', тогда используйте 'board [y] [x] =" user_symbol "'. – furas