Проблема заключается в том, что ваш цикл for итерирует по каждому символу в строке map, а не по строкам в map. В результате, ваш код ожидает, что каждый символ будет либо /, либо w, и никогда не достигнет условия изменения значения word.
Чтобы исправить эту проблему, вам нужно сначала разделить строку map на строки, используя символ переноса строки \n в качестве разделителя. Вы можете сделать это с помощью метода split().
Вот как ваш код может выглядеть с исправлениями:
map_str = """\
wwwwwwwww/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
wwwwwwwww/"""
map_lines = map_str.split('\n') # разбиваем строку на строки
line = 1
xw = 0
for row in map_lines:
for word in row:
if word == "/":
line += 1
xw = 0
if word == "w":
yw = line * 80
pygame.draw.rect(screen, BLACK, (xw * 80, yw, 80, 80))
xw += 1
В этой версии кода мы сначала разбиваем строку map_str на строки map_lines с помощью метода split(). Затем мы используем вложенный цикл for для итерации по каждому символу в каждой строке. Переменная row содержит текущую строку, которую мы обрабатываем. Переменная word содержит текущий символ, который мы обрабатываем.
Я также добавил символ \ в начале строки map_str, чтобы избежать проблемы с отступами.
Как его разциклить что бы ничего не сломать я не знаю. Помогите с этим.
Вот отрывок кода:
map = """
wwwwwwwww/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
waaaaaaaw/
wwwwwwwww/"""
line = 1
xw = 0
word = 0
for word in map: ------------------------------------------------- ТУТ ЗАЦИКЛЕНО. ПОМОГИТЕ.
if word == "/":
line += 1
xw = 0
if word == "w":
yw = line*80
pygame.draw.rect(screen, BLACK, (xw*80, yw, 80, 80))
xw += 1