یه بار برای همیشه، فرانت‌ اند رو اصولی یاد بگیر! یه بار برای همیشه، فرانت‌ اند رو اصولی یاد بگیر!
🎯 ثبت نام

پروژه بازی PingPong با پایتون

ساخت بازی پینگ پنگ با پایتون
شرح مختصر پروژه

در این پروژه میخواهیم با استفاده از کتابخانه های random و pygame یک بازی پینگ پنگ دوبعدی ساده بسازیم

توضیحات پروژه


یادگیری پایتون ، کلیدی به دنیای جادوی برنامه‌نویسی و تکنولوژی!

این زبان ساده و قدرتمند به شما امکان می‌دهد تا ایده‌های خلاقانه خود را به زندگی روزمره بیاورید، از توسعه وب تا ساخت بازی‌های ویدئویی و حتی جادویی‌ترین پروژه‌های هوش مصنوعی. به عنوان یکی از پراستفاده‌ترین زبان‌های برنامه‌نویسی، پایتون به شما امکان می‌دهد تا در دنیای فناوری به سطح بالایی از تخصص برسید.


در این پروژه میخواهیم با استفاده از کتابخانه های random و pygame یک بازی پینگ پنگ دوبعدی ساده بسازیم. این بازی کلاسیک برای تازه‌واردان در برنامه‌نویسی پایتون یک پروژه خوب برای شروع است. در این بازی، دو راکت و یک توپ دو بعدی وجود دارد، و هدف اصلی اندازه‌گیری توپ توسط راکت و تماس و انداختن توپ به طرف مقابل است.

در ادامه سورس کد و تصاویری از محیط بازی را مشاهده می کنید :


سورس پروژه :

سورس پروژه از پایین صفحه نیز قابل دانلود است
import pygame
import sys
import random

# تنظیمات
width, height = 800, 600
background_color = (0, 0, 0)
paddle_color = (255, 255, 255)
ball_color = (255, 255, 255)
paddle_width, paddle_height = 10, 100
ball_size = 20
ball_speed = [7, 7]

# تعریف امتیازات
left_score = 0
right_score = 0
winning_score = 21  # تعیین امتیاز برنده شدن

# تابلوهای راکت و توپ
left_paddle = pygame.Rect(50, height // 2 - paddle_height // 2, paddle_width, paddle_height)
right_paddle = pygame.Rect(width - 50 - paddle_width, height // 2 - paddle_height // 2, paddle_width, paddle_height)
ball = pygame.Rect(width // 2 - ball_size // 2, height // 2 - ball_size // 2, ball_size, ball_size)

# شروع Pygame
pygame.init()
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Pong Game")

clock = pygame.time.Clock()

# حرکت راکت ها
paddle_speed = 10

def move_paddles():
    keys = pygame.key.get_pressed()
    if keys[pygame.K_w] and left_paddle.top > 0:
        left_paddle.y -= paddle_speed
    if keys[pygame.K_s] and left_paddle.bottom < height:
        left_paddle.y += paddle_speed
    if keys[pygame.K_UP] and right_paddle.top > 0:
        right_paddle.y -= paddle_speed
    if keys[pygame.K_DOWN] and right_paddle.bottom < height:
        right_paddle.y += paddle_speed

# حرکت توپ
def move_ball():
    global left_score, right_score

    ball.x += ball_speed[0]
    ball.y += ball_speed[1]

    # برخورد توپ با راکت چپ
    if ball.colliderect(left_paddle):
        ball_speed[0] = abs(ball_speed[0])

    # برخورد توپ با راکت راست
    if ball.colliderect(right_paddle):
        ball_speed[0] = -abs(ball_speed[0])

    # برخورد توپ با دیوار بالا یا پایین
    if ball.top <= 0 or ball.bottom >= height:
        ball_speed[1] = -ball_speed[1]

    # توپ از یک طرف صفحه عبور کرده
    if ball.left <= 0:
        right_score += 1
        reset_ball()
    elif ball.right >= width:
        left_score += 1
        reset_ball()

def reset_ball():
    global ball_speed
    ball.center = (width // 2, height // 2)
    ball_speed = [random.choice((7, -7)), random.choice((7, -7))]

# تنظیمات
# ...
paddle_color_left = (255, 0, 0)  # رنگ راکت چپ
paddle_color_right = (0, 0, 255)  # رنگ راکت راست
# ...

# اجرای بازی
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    move_paddles()
    move_ball()

    # بررسی برنده شدن
    if left_score >= winning_score or right_score >= winning_score:
        if left_score > right_score:
            print("بازیکن چپ برنده شد!")
        else:
            print("بازیکن راست برنده شد!")
        pygame.quit()
        sys.exit()

    # پاک کردن صفحه
    screen.fill(background_color)

    # رسم راکت ها و توپ با رنگ‌های مختلف
    pygame.draw.rect(screen, paddle_color_left, left_paddle)
    pygame.draw.rect(screen, paddle_color_right, right_paddle)
    pygame.draw.ellipse(screen, ball_color, ball)

    # نمایش امتیازات
    font = pygame.font.Font(None, 36)
    left_score_text  = font.render(f"Player 1: {left_score}", True, (255, 255, 255))
    right_score_text = font.render(f"Player 2: {right_score}", True, (255, 255, 255))
    screen.blit(left_score_text, (20, 20))
    screen.blit(right_score_text, (width - 200, 20))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

1402/08/08 7101 1332
رمز عبور : tahlildadeh.com یا www.tahlildade.com
نظرات شما

نظرات خود را ثبت کنید...