π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° ΠΠΈΡΠΎΠ½Π΅: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°" Π½Π° ΠΏΠΈΡΠΎΠ½Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pygame. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ:
import pygame
import time
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
pygame.init()
# ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ²
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# Π Π°Π·ΠΌΠ΅ΡΡ ΡΠΊΡΠ°Π½Π°
width = 800
height = 600
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
# ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π·ΠΌΠ΅ΠΉΠΊΠΈ
snake_block = 10
snake_speed = 30
# ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠΈ
def draw_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(screen, GREEN, [x[0], x[1], snake_block, snake_block])
# ΠΠ»Π°Π²Π½ΡΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
def game_loop():
game_over = False
game_close = False
snake_x = width / 2
snake_y = height / 2
snake_x_change = 0
snake_y_change = 0
snake_list = []
length_of_snake = 1
clock = pygame.time.Clock()
while not game_over:
while game_close:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
game_close = False
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΡΠ΅
font_style = pygame.font.SysFont(None, 50)
message = font_style.render("ΠΡ ΠΏΡΠΎΠΈΠ³ΡΠ°Π»ΠΈ! ΠΠ°ΠΆΠΌΠΈΡΠ΅ Q-Π²ΡΡ
ΠΎΠ΄ ΠΈΠ»ΠΈ C-ΠΈΠ³ΡΠ°ΡΡ ΡΠ½ΠΎΠ²Π°", True, BLACK)
screen.blit(message, [width / 6, height / 3])
pygame.display.update()
# Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
game_loop()
# Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_x_change = -snake_block
snake_y_change = 0
elif event.key == pygame.K_RIGHT:
snake_x_change = snake_block
snake_y_change = 0
elif event.key == pygame.K_UP:
snake_y_change = -snake_block
snake_x_change = 0
elif event.key == pygame.K_DOWN:
snake_y_change = snake_block
snake_x_change = 0
if snake_x >= width or snake_x < 0 or snake_y >= height or snake_y < 0:
game_close = True
snake_x += snake_x_change
snake_y += snake_y_change
screen.fill(BLACK)
pygame.draw.rect(screen, GREEN, [snake_x, snake_y, snake_block, snake_block])
snake_head = []
snake_head.append(snake_x)
snake_head.append(snake_y)
snake_list.append(snake_head)
# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½ΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ Π·ΠΌΠ΅ΠΉΠΊΠΈ
if len(snake_list) > length_of_snake:
del snake_list[0]
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅
for x in snake_list[:-1]:
if x == snake_head:
game_close = True
# ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·ΠΌΠ΅ΠΉΠΊΠΈ
draw_snake(snake_block, snake_list)
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.update()
# ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·ΠΌΠ΅ΠΉΠΊΠΈ
clock.tick(snake_speed)
# ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π°
pygame.quit()
quit()
# ΠΠ°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ
game_loop()
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°" Π½Π° Python
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°" Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΠ³ΡΠ° "ΠΠΌΠ΅ΠΉΠΊΠ°" ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°ΡΠΊΠ°Π΄Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠΉ, Π³Π΄Π΅ ΠΈΠ³ΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ, ΡΡΠ΅Π΄Π°Ρ Π΅Π΄Ρ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ΅Π½Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅Π»ΠΎΠΌ.
Π¨Π°Π³ 1: ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Python Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Python.
Π¨Π°Π³ 2: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pygame
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°" ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pygame, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 2D ΠΈΠ³Ρ Π½Π° Python. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pygame, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
pip install pygame
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ "ΠΠΌΠ΅ΠΉΠΊΠ°", Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΈΠ³ΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:
import pygame
WIDTH = 800
HEIGHT = 600
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.flip()
Π¨Π°Π³ 4: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π·ΠΌΠ΅ΠΉΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ. ΠΠΌΠ΅ΠΉΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·ΠΌΠ΅ΠΉΠΊΠΈ:
import pygame
WIDTH = 800
HEIGHT = 600
SNAKE_SIZE = 20
WHITE = (255, 255, 255)
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
snake_segments = [(WIDTH / 2, HEIGHT / 2)]
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
window.fill(WHITE)
for segment in snake_segments:
pygame.draw.rect(window, WHITE, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
pygame.display.flip()
Π¨Π°Π³ 5: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ
Π§ΡΠΎΠ±Ρ ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠ³ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ:
import pygame
WIDTH = 800
HEIGHT = 600
SNAKE_SIZE = 20
WHITE = (255, 255, 255)
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
snake_segments = [(WIDTH / 2, HEIGHT / 2)]
snake_direction = "right"
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_direction = "left"
elif event.key == pygame.K_RIGHT:
snake_direction = "right"
elif event.key == pygame.K_UP:
snake_direction = "up"
elif event.key == pygame.K_DOWN:
snake_direction = "down"
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
window.fill(WHITE)
for segment in snake_segments:
pygame.draw.rect(window, WHITE, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
pygame.display.flip()
Π¨Π°Π³ 6: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π΄Ρ Π΄Π»Ρ Π·ΠΌΠ΅ΠΉΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΈΠ³ΡΠ° ΡΡΠ°Π»Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π΄Ρ, ΠΊΠΎΡΠΎΡΡΡ Π·ΠΌΠ΅ΠΉΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Π΄Π°ΡΡ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΅Π΄Ρ:
import pygame
import random
WIDTH = 800
HEIGHT = 600
SNAKE_SIZE = 20
FOOD_SIZE = 20
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
snake_segments = [(WIDTH / 2, HEIGHT / 2)]
snake_direction = "right"
food_position = (random.randint(0, WIDTH - FOOD_SIZE), random.randint(0, HEIGHT - FOOD_SIZE))
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_direction = "left"
elif event.key == pygame.K_RIGHT:
snake_direction = "right"
elif event.key == pygame.K_UP:
snake_direction = "up"
elif event.key == pygame.K_DOWN:
snake_direction = "down"
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
window.fill(WHITE)
pygame.draw.rect(window, GREEN, (food_position[0], food_position[1], FOOD_SIZE, FOOD_SIZE))
for segment in snake_segments:
pygame.draw.rect(window, WHITE, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
pygame.display.flip()
Π¨Π°Π³ 7: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ Π·ΠΌΠ΅ΠΉΠΊΠΈ Ρ Π΅Π΄ΠΎΠΉ ΠΈ ΡΠΎ ΡΡΠ΅Π½Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠ° ΡΡΠ΅ΡΡ Π΅Π΄Ρ, ΡΠΎ Π΅Π΅ Π΄Π»ΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡΡ, Π° Π½ΠΎΠ²Π°Ρ Π΅Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΡΠ»ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ ΡΠΎ ΡΡΠ΅Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅Π»ΠΎΠΌ, ΠΈΠ³ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ:
import pygame
import random
WIDTH = 800
HEIGHT = 600
SNAKE_SIZE = 20
FOOD_SIZE = 20
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
snake_segments = [(WIDTH / 2, HEIGHT / 2)]
snake_direction = "right"
snake_alive = True
food_position = (random.randint(0, WIDTH - FOOD_SIZE), random.randint(0, HEIGHT - FOOD_SIZE))
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_direction = "left"
elif event.key == pygame.K_RIGHT:
snake_direction = "right"
elif event.key == pygame.K_UP:
snake_direction = "up"
elif event.key == pygame.K_DOWN:
snake_direction = "down"
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
window.fill(WHITE)
pygame.draw.rect(window, GREEN, (food_position[0], food_position[1], FOOD_SIZE, FOOD_SIZE))
if snake_alive:
for segment in snake_segments:
pygame.draw.rect(window, WHITE, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΡΠΎ ΡΡΠ΅Π½Π°ΠΌΠΈ
if snake_segments[0][0] < 0 or snake_segments[0][0] >= WIDTH or snake_segments[0][1] < 0 or snake_segments[0][1] >= HEIGHT:
snake_alive = False
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π»ΠΎΠΌ
for segment in snake_segments[1:]:
if snake_segments[0] == segment:
snake_alive = False
if not snake_alive:
pygame.draw.rect(window, RED, (0, 0, WIDTH, HEIGHT))
pygame.display.flip()
Π¨Π°Π³ 8: ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π·ΠΌΠ΅ΠΉΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΏΡΠΈ ΡΡΠ΅Π΄Π°Π½ΠΈΠΈ Π΅Π΄Ρ. ΠΡΠ»ΠΈ Π³ΠΎΠ»ΠΎΠ²Π° Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ Π΅Π΄Ρ, ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»ΠΎ Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π΅Π΅ Π΄Π»ΠΈΠ½Ρ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ Π·ΠΌΠ΅ΠΉΠΊΠΈ:
import pygame
import random
WIDTH = 800
HEIGHT = 600
SNAKE_SIZE = 20
FOOD_SIZE = 20
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ΠΠΌΠ΅ΠΉΠΊΠ°")
snake_segments = [(WIDTH / 2, HEIGHT / 2)]
snake_direction = "right"
snake_alive = True
food_position = (random.randint(0, WIDTH - FOOD_SIZE), random.randint(0, HEIGHT - FOOD_SIZE))
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_direction = "left"
elif event.key == pygame.K_RIGHT:
snake_direction = "right"
elif event.key == pygame.K_UP:
snake_direction = "up"
elif event.key == pygame.K_DOWN:
snake_direction = "down"
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
window.fill(WHITE)
pygame.draw.rect(window, GREEN, (food_position[0], food_position[1], FOOD_SIZE, FOOD_SIZE))
if snake_alive:
for segment in snake_segments:
pygame.draw.rect(window, WHITE, (segment[0], segment[1], SNAKE_SIZE, SNAKE_SIZE))
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΡΠΎ ΡΡΠ΅Π½Π°ΠΌΠΈ
if snake_segments[0][0] < 0 or snake_segments[0][0] >= WIDTH or snake_segments[0][1] < 0 or snake_segments[0][1] >= HEIGHT:
snake_alive = False
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π»ΠΎΠΌ
for segment in snake_segments[1:]:
if snake_segments[0] == segment:
snake_alive = False
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Ρ Π΅Π΄ΠΎΠΉ
if snake_segments[0] == food_position:
food_position = (random.randint(0, WIDTH - FOOD_SIZE), random.randint(0, HEIGHT - FOOD_SIZE))
snake_segments.insert(0, (snake_segments[0][0], snake_segments[0][1]))
if not snake_alive:
pygame.draw.rect(window, RED, (0, 0, WIDTH, HEIGHT))
pygame.display.flip()
Π¨Π°Π³ 9: ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Π°Ρ ΠΈΠ³ΡΠ° "ΠΠΌΠ΅ΠΉΠΊΠ°" ΡΠΎΠ·Π΄Π°Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΈ Π²Π½Π΅ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² ΠΈΠ³ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΡΠΊΠΎΠ², ΡΡΠΎΠ²Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΡ. ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π½ΡΠ°Π·ΠΈΠΈ ΠΈ Π½Π°Π²ΡΠΊΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ·