Q1: Как получить последний '|' в каждой строке карты?
Вы можете сделать print('|', end='')
после печати каждой строки.
Q2: почему 'T' не меняется на 'H / T ', когда мои x = 0 и y = 0
Вы использовали оператор сравнения ==
, а не оператор присваивания =
.
Вы можете попробовать следующий код:
world_map = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],
[' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]
x = 0
y = 0
def print_map(x, y, world_map):
if world_map[y][x] == '':
world_map[y][x] = 'H'
elif world_map[y][x] == 'T':
world_map[y][x] = 'H/T'
elif world_map[y][x] == 'K':
world_map[y][x] = 'H/K'
for i in world_map:
print('\n' + '+---' * 8 + '+')
for j in i:
print('|{:^3}'.format(j), end='')
print('|', end='')
print('\n' + '+---' * 8 + '+')
print_map(x, y, world_map)
, который печатает
+---+---+---+---+---+---+---+---+
|H/T| | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | T | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | T | | |
+---+---+---+---+---+---+---+---+
| | T | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | T | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | K |
+---+---+---+---+---+---+---+---+