ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 70
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Негосударственное образовательное частное учреждение высшего образования «Московский финансово-промышленный университет «Синергия»Институт информационных систем и технологийДепартамент Цифровой экономикиДисциплина «Python»Тема «Мини игра змейка»Выполнил Студент Атакшиев Ш.О.группа Номер ДБИ-102РСОБПриняла Терехова Л.А.Москва 2023import 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)dirs = {'W': True, 'S': True, 'A': True, 'D': True, }lenght = 1 # длина змейкиsnake = [(x,y)]dx, dy = 0, 0 # направление движенияscore = 0fps = 5 # скорость змейкиpygame.init() # инициализируем модули pygamesc = pygame.display.set_mode([RES, RES])clock = pygame.time.Clock() # объект класса для регулирования змейкиfont_score = pygame.font.SysFont('TimesNewRoman', 26, bold=True) #Укажем название шрифта и его размер для показания счетаfont_end = pygame.font.SysFont('TimesNewRoman', 66, bold=True) #Укажем название шрифта и его размер для надписи по окончанию игры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))# показ результатаrender_score = font_score.render(f'SCORE: {score}', 1, pygame.Color('green'))sc.blit(render_score, (5,5))# движение змеиx += dx * SIZEy += dy * SIZEsnake.append((x, y))snake = snake[-lenght:] # чтобы змейка не была бесконечной# поедание яблокаif snake[-1] == apple:apple = randrange(0, RES, SIZE), randrange(0, RES, SIZE)# длина и скорость змейки при поедании увеличиваются на 1 единицуlenght += 1score += 1fps += 1# конец игрыif x < 0 or x > RES - SIZE or y < 0 or y > RES - SIZE or len(snake) != len(set(snake)): #определяем крайнее положение для x,ywhile True:render_end = font_end.render('Game Over', 1, pygame.Color('green'))sc.blit(render_end, (RES // 2 - 200, RES // 3))pygame.display.flip()for event in pygame.event.get():if event.type == pygame.QUIT:exit()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] and dirs['W']: # задаем клавиши для управленияdx, dy = 0, -1 # направление движения змейкиdirs = {'W': True, 'S': False, 'A': True, 'D': True, } #чтобы змейка не проходила через саму себяif key[pygame.K_s] and dirs['S']: # задаем клавиши для управленияdx, dy = 0, 1 # направление движения змейкиdirs = {'W': False, 'S': True, 'A': True, 'D': True, } #чтобы змейка не проходила через саму себяif key[pygame.K_a] and dirs['A']: # задаем клавиши для управленияdx, dy = -1, 0 # направление движения змейкиdirs = {'W': True, 'S': True, 'A': True, 'D': False, } #чтобы змейка не проходила через саму себяif key[pygame.K_d] and dirs['D']: # задаем клавиши для управленияdx, dy = 1, 0 # направление движения змейкиdirs = {'W': True, 'S': True, 'A': False, 'D': True, } #чтобы змейка не проходила через саму себяСама игра
if event.type == pygame.QUIT:exit()#управлениеkey = pygame.key.get_pressed()if key[pygame.K_w] and dirs['W']: # задаем клавиши для управленияdx, dy = 0, -1 # направление движения змейкиdirs = {'W': True, 'S': False, 'A': True, 'D': True, } #чтобы змейка не проходила через саму себяif key[pygame.K_s] and dirs['S']: # задаем клавиши для управленияdx, dy = 0, 1 # направление движения змейкиdirs = {'W': False, 'S': True, 'A': True, 'D': True, } #чтобы змейка не проходила через саму себяif key[pygame.K_a] and dirs['A']: # задаем клавиши для управленияdx, dy = -1, 0 # направление движения змейкиdirs = {'W': True, 'S': True, 'A': True, 'D': False, } #чтобы змейка не проходила через саму себяif key[pygame.K_d] and dirs['D']: # задаем клавиши для управленияdx, dy = 1, 0 # направление движения змейкиdirs = {'W': True, 'S': True, 'A': False, 'D': True, } #чтобы змейка не проходила через саму себяСама игра