Arts >> Изкуства >  >> Theater >> драматургия

Какъв е кодът за лабиринта в книгата за бегачи?

``` питон

импортиране на pygame

Дефинирайте някои цветове

ЧЕРНО =(0, 0, 0)

БЯЛО =(255, 255, 255)

Задайте височината и ширината на екрана

размер =[700, 500]

екран =pygame.display.set_mode(размер)

Върти се, докато потребителят щракне върху бутона за затваряне.

готово =невярно

часовник =pygame.time.Clock()

Скорост в пиксели в секунда

x_скорост =0

y_скорост =0

Текуща позиция

x_коорд =10

y_coord =10

Създаване на лабиринт

лабиринт =[

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 0, 1, 0, 1, 0, 1, 0, 1, 1],

[1, 0, 0, 0, 1, 0, 0, 0, 1, 1],

[1, 0, 1, 0, 1, 1, 1, 0, 1, 1],

[1, 0, 1, 0, 0, 0, 1, 0, 1, 1],

[1, 0, 1, 1, 1, 0, 1, 0, 1, 1],

[1, 0, 0, 0, 0, 0, 1, 0, 0, 1],

[1, 0, 1, 1, 1, 1, 1, 0, 1, 1],

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

]

Цикъл, докато е направено ==False

докато не е направено:

# Това ограничава цикъла while до максимум 10 пъти в секунда.

# Оставете това и ние ще използваме целия CPU, който можем.

clock.tick(10)

за събитие в pygame.event.get():# Потребителят направи нещо

if event.type ==pygame.QUIT:# Ако потребителят щракне затвори

done =True # Флаг, че сме готови, така че излизаме от този цикъл

# Изчистете екрана и задайте фона на екрана

screen.fill(ЧЕРНО)

# Начертайте лабиринта

за ред в диапазон (9):

за колона в диапазон (10):

ако лабиринт [ред][колона] ==1:

pygame.draw.rect(екран, БЯЛО, [(25 * колона), (25 * ред), 25, 25])

# Нарисувайте бегача

pygame.draw.rect(екран, БЯЛ, [x_coord, y_coord, 25, 25])

# Преместете бегача въз основа на натиснатия клавиш

натиснат =pygame.key.get_pressed()

ако се натисне [pygame.K_UP]:

y_скорост =-5

elif натисна [pygame.K_DOWN]:

y_скорост =5

elif натисна [pygame.K_LEFT]:

x_скорост =-5

elif натисна [pygame.K_RIGHT]:

x_скорост =5

# Актуализирайте позицията на бегача

x_коорд +=x_скорост

y_coord +=y_скорост

# Ако бегачът удари ръба на екрана, отскочете го назад

ако x_coord> 675:

x_скорост =-5

elif x_coord <0:

x_скорост =5

ако y_coord> 475:

y_скорост =-5

elif y_coord <0:

y_скорост =5

# Ако бегачът се удари в стена, спрете го

ако лабиринт [int(y_coord / 25)][int(x_coord / 25)] ==1:

x_скорост =0

y_скорост =0

#Актуализирайте екрана

pygame.display.flip()

Излезте от pygame

pygame.quit()

```

драматургия

Съответните категории