при запуске кода вместо игры змейка запускается черное окно

import pygame
from random import randrange
RES=800
SIZE=50
x,y=randrange(0,RES,SIZE),randrange(0,RES,SIZE)
apple=randrange(0,RES,SIZE),randrange(0,RES,SIZE)
length=1
snake=[(x,y)]
dx,dy=0,0
fps=3
pygame.init()
(5, 0)
sc=pygame.display.set_mode([RES,RES])
clock=pygame.time.Clock()
while True:
    sc.fill(pygame.Color("black"))
    [(pygame.draw.rect(sc,pygame.Color("green"),(i,j,SIZE -2,SIZE -2)))for i,j in snake]
    pygame.draw.rect(sc,pygame.Color("red"),(*apple,SIZE,SIZE))
    x+=dx*SIZE
    y+=dy*SIZE
    snake.append((x,y))
    snake=snake[-length:]
    if snake[-1]==apple:
        apple=randrange(0,RES,SIZE),randrrange(0,RES,SIZE)
        length+=1
        fps+=1
    if x < 0 or x > RES - SIZE or y < 0 or y > RES - SIZE:
        break
    if len(snake) !=len(set(snake)):
        break
        pygame.display.flip(
    clock.tick(fps)
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
    key=pygame.key.get_pressed()
    if key[pygame.K_w]:
        dx,dy=0,-1
    if key[pygame.K_s]:
        dx,dy=0,-1
    if key[pygame.K_a]:
        dx,dy=-1,0
    if key[pygame.K_d]:
        dx,dy=1,0

Ответы (1 шт):

Автор решения: No end music

В 24 строчке у вас ошибка вместо randrrange должно быть randrange и в 31 строчке у вас открыты и не закрыты скобки pygame.display.flip( - закройте их, так же в это строчке у вас нарушена табуляция, Строка pygame.display.flip() идёт сразу после break, а так нельзя.

Вот исправный код:

import pygame
from random import randrange
RES=800
SIZE=50
x,y=randrange(0,RES,SIZE),randrange(0,RES,SIZE)
apple=randrange(0,RES,SIZE),randrange(0,RES,SIZE)
length=1
snake=[(x,y)]
dx,dy=0,0
fps=3
pygame.init()
(5, 0)
sc=pygame.display.set_mode([RES,RES])
clock=pygame.time.Clock()
while True:
    sc.fill(pygame.Color("black"))
    [(pygame.draw.rect(sc,pygame.Color("green"),(i,j,SIZE -2,SIZE -2)))for i,j in snake]
    pygame.draw.rect(sc,pygame.Color("red"),(*apple,SIZE,SIZE))
    x+=dx*SIZE
    y+=dy*SIZE
    snake.append((x,y))
    snake=snake[-length:]
    if snake[-1]==apple:
        apple=randrange(0,RES,SIZE),randrange(0,RES,SIZE) # 24 строка
        length+=1
        fps+=1
    if x < 0 or x > RES - SIZE or y < 0 or y > RES - SIZE:
        break
    if len(snake) !=len(set(snake)):
        break
    pygame.display.flip() # 31 строка
    clock.tick(fps)
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
    key=pygame.key.get_pressed()
    if key[pygame.K_w]:
        dx,dy=0,-1
    if key[pygame.K_s]:
        dx,dy=0,-1
    if key[pygame.K_a]:
        dx,dy=-1,0
    if key[pygame.K_d]:
        dx,dy=1,0
→ Ссылка