πΎΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π½Π½ΠΈΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π½Π½ΠΈΡ Π½Π° ΠΠΈΡΠΎΠ½Π΅?
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π½Π½ΠΈΡΠ° Π½Π° ΠΠΈΡΠΎΠ½Π΅, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ³ΡΡ:
# ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ turtle Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ
import turtle
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
window = turtle.Screen()
window.title("Π’Π΅Π½Π½ΠΈΡ")
# Π ΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΊΠ΅ΡΠΊΡ
racket = turtle.Turtle()
racket.shape("square")
racket.color("white")
racket.shapesize(stretch_wid=1, stretch_len=5)
# Π ΠΈΡΡΠ΅ΠΌ ΠΌΡΡ
ball = turtle.Turtle()
ball.shape("circle")
ball.color("white")
# ΠΠ°Π΄Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΌΡΡΠ°
ball.dx = 0.1
ball.dy = -0.1
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
while True:
window.update()
# ΠΠ²ΠΈΠ³Π°Π΅ΠΌ ΡΠ°ΠΊΠ΅ΡΠΊΡ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°Π²ΠΈΡ
def move_racket_left():
x = racket.xcor()
if x > -240:
x -= 10
racket.setx(x)
def move_racket_right():
x = racket.xcor()
if x < 240:
x += 10
racket.setx(x)
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ
window.listen()
window.onkeypress(move_racket_left, "Left")
window.onkeypress(move_racket_right, "Right")
# ΠΠ²ΠΈΠ³Π°Π΅ΠΌ ΠΌΡΡ
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
# ΠΡΡΠΊΠΎΠΊ ΠΌΡΡΠ° ΠΎΡ ΡΡΠ΅Π½ΠΎΠΊ
if ball.xcor() > 290 or ball.xcor() < -290:
ball.dx *= -1
if ball.ycor() > 290 or ball.ycor() < -290:
ball.dy *= -1
# ΠΡΡΠΊΠΎΠΊ ΠΌΡΡΠ° ΠΎΡ ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if ball.ycor() < -250 and racket.xcor() - 50 < ball.xcor() < racket.xcor() + 50:
ball.dy *= -1
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΡΠ΅Π½Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ΅Ρ, Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ³ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π½Π½ΠΈΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅
ΠΠ³ΡΠ° Π² ΡΠ΅Π½Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ³Ρ ΡΡΠ΅Π΄ΠΈ ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΡ ΠΈΠ³Ρ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅Π½Π½ΠΈΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΈΡΠΎΠ½ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ³ΡΡ Π² ΡΠ΅Π½Π½ΠΈΡ.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΡ
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ Π² ΡΠ΅Π½Π½ΠΈΡ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pygame, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°.
import pygame
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pygame
pygame.init()
# ΠΠ°Π΄Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°
screen_width = 800
screen_height = 400
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΡ
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Π’Π΅Π½Π½ΠΈΡ")
Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ Π² ΡΠ΅Π½Π½ΠΈΡ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠ΅ΡΠΊΠ°, ΠΌΡΡ ΠΈ Π³ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡΡ pygame.
class Paddle:
def __init__(self, x, y):
self.x = x
self.y = y
self.width = 10
self.height = 60
self.speed = 5
def draw(self):
pygame.draw.rect(screen, (255, 255, 255), (self.x, self.y, self.width, self.height))
class Ball:
def __init__(self, x, y):
self.x = x
self.y = y
self.radius = 5
self.speed_x = 3
self.speed_y = 3
def draw(self):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), self.radius)
Π¨Π°Π³ 3: ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ³ΡΠ° ΡΠ°Π±ΠΎΡΠ°Π»Π°, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° while.
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
paddle = Paddle(10, screen_height / 2 - 30)
ball = Ball(screen_width / 2, screen_height / 2)
# ΠΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ»
running = True
while running:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.flip()
Π¨Π°Π³ 4: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ³ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ», ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ³ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠ΅ΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΡΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ.
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
paddle.y -= paddle.speed
elif keys[pygame.K_DOWN]:
paddle.y += paddle.speed
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΡΡΠ°
ball.x += ball.speed_x
ball.y += ball.speed_y
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ Ρ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠΎΠ»Ρ
if ball.y + ball.radius > screen_height or ball.y - ball.radius < 0:
ball.speed_y *= -1
# ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ³ΡΠΎΠ²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
screen.fill((0, 0, 0))
paddle.draw()
ball.draw()
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.flip()
Π¨Π°Π³ 5: ΠΠ°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ³ΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ» ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π°ΡΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΈΠ³ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ³ΡΠ° ΠΌΠΎΠ³Π»Π° Π±ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
# ΠΠ°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ
if __name__ == '__main__':
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.flip()
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ Π² ΡΠ΅Π½Π½ΠΈΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅. ΠΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - ΡΡΠΎ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ, ΠΈ ΠΏΠΈΡΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³Ρ.