From 59d8474b8dcc3bf907a0af82b1a56527c5a9e60a Mon Sep 17 00:00:00 2001 From: hnu202410040325 <3035798012@qq.com> Date: Wed, 21 May 2025 20:48:53 +0800 Subject: [PATCH] ADD file via upload --- homework.py | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 homework.py diff --git a/homework.py b/homework.py new file mode 100644 index 0000000..5668ccc --- /dev/null +++ b/homework.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed May 21 20:08:31 2025 + +@author: Administrator +""" + +import pygame +import random + +pygame.init() + +WIDTH, HEIGHT = 800, 600 +screen = pygame.display.set_mode((WIDTH, HEIGHT)) + +WHITE, RED, GREEN = (255, 255, 255), (255, 0, 0), (0, 255, 0) + +SNAKE_SIZE = 20 +SNAKE = [(5 * SNAKE_SIZE, 5 * SNAKE_SIZE), + (4 * SNAKE_SIZE, 5 * SNAKE_SIZE), + (3 * SNAKE_SIZE, 5 * SNAKE_SIZE)] + +FOOD = (random.randint(0, (WIDTH // SNAKE_SIZE) - 1) * SNAKE_SIZE, + random.randint(0, (HEIGHT // SNAKE_SIZE) - 1) * SNAKE_SIZE) + +DIRECTION = "RIGHT" + +running = True + +clock = pygame.time.Clock() + +while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT and DIRECTION != "RIGHT": + DIRECTION = "LEFT" + elif event.key == pygame.K_RIGHT and DIRECTION != "LEFT": + DIRECTION = "RIGHT" + elif event.key == pygame.K_UP and DIRECTION != "DOWN": + DIRECTION = "UP" + elif event.key == pygame.K_DOWN and DIRECTION != "UP": + DIRECTION = "DOWN" + + head = SNAKE[0] + if DIRECTION == "RIGHT": + new_head = (head[0] + SNAKE_SIZE, head[1]) + elif DIRECTION == "LEFT": + new_head = (head[0] - SNAKE_SIZE, head[1]) + elif DIRECTION == "UP": + new_head = (head[0], head[1] - SNAKE_SIZE) + elif DIRECTION == "DOWN": + new_head = (head[0], head[1] + SNAKE_SIZE) + + if new_head == FOOD: + SNAKE.insert(0, new_head) + FOOD = (random.randint(0, (WIDTH // SNAKE_SIZE) - 1) * SNAKE_SIZE, + random.randint(0, (HEIGHT // SNAKE_SIZE) - 1) * SNAKE_SIZE) + else: + SNAKE.insert(0, new_head) + SNAKE.pop() + + # Check if snake hit itself or wall + if (new_head[0] < 0 or new_head[0] >= WIDTH or + new_head[1] < 0 or new_head[1] >= HEIGHT or + new_head in SNAKE[1:]): + running = False + + screen.fill(WHITE) + pygame.draw.rect(screen, RED, (FOOD[0], FOOD[1], SNAKE_SIZE, SNAKE_SIZE)) + for segment in SNAKE: + pygame.draw.rect(screen, GREEN, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE)) + pygame.display.flip() + clock.tick(10) \ No newline at end of file