آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت آموزش منطق و مقدمات برنامه نویسی به همراه الگوریتم و فلوچارت
021-88146330
021-88146323
0

سبد خرید شما خالی است!

آموزشگاه برنامه نویسی تحلیل‌داده

با مجوز رسمی از سازمان فنی و حرفه‌ای کشور

ورود / ثبت‌نام

ورود کاربر جدید هستید؟ ثبت نام کنید

بازی عبور از موانع با پایتون

بازی عبور از موانع با پایتون

شرح مختصر پروژه

بازی عبور از موانع یک بازی ساده و در عین حال یک پروژه نسبتا چالش برانگیز برای برنامه نویسان مبتدی پایتون است که در آن از کتابخانه ی pygame استفاده می شود.

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

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

اما جالب‌ترین بخش این بازی این است که سرعت موانع به مرور زمان افزایش می‌یابد و شما باید با توجه به این افزایش سرعت، بازیکن را کنترل کنید تا از برخوردهای با موانع جلوگیری کنید. همچنین، با استفاده از کلیدهای Shift و Ctrl می‌توانید به ترتیب سرعت موانع را افزایش و کاهش دهید تا بازی را برای خودتان چالش‌برانگیز‌تر یا آسان‌تر کنید.

مراحل ساخت بازی با استفاده از پایتون

مرحله اول : نصب کتابخانه های مورد نیاز

برای ایجاد این بازی، از کتابخانه Pygame استفاده شده است که یک کتابخانه‌ی متن باز و رایگان برای توسعه‌ی بازی‌ها و برنامه‌های چندرسانه‌ای در زبان برنامه‌نویسی پایتون است. Pygame امکاناتی را برای رسم شیءها در پنجره، مدیریت ورودی کاربر، صدا و موزیک، تصاویر و انیمیشن فراهم می‌کند که همگی برای ساخت بازی‌های ساده یا پیشرفته کافی هستند.

برای نصب کتابخانه Pygame، می‌توانید از دستور زیر در خط فرمان (CMD) استفاده کنید:

pip install pygame

کد برنامه

import pygame
import sys
import random
import math

# Initialize Pygame
pygame.init()

# Settings
WIDTH, HEIGHT = 500, 500
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("حرکت بين موانع")

# Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 0)
PURPLE = (128, 0, 128)
CYAN = (0, 255, 255)
ORANGE = (255, 165, 0)

# List of colors
COLORS = [RED, GREEN, BLUE, YELLOW, PURPLE, CYAN, ORANGE]



# Player class
class Player:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.radius = 25
        self.color = WHITE
        self.velocity = 5

    def draw(self, win):
        pygame.draw.circle(win, self.color, (self.x, self.y), self.radius)

# Obstacle class
class Obstacle:
    def __init__(self, x, y, radius, velocity, color):
        self.x = x
        self.y = y
        self.radius = radius
        self.color = color
        self.velocity = velocity

    def draw(self, win):
        pygame.draw.circle(win, self.color, (self.x, self.y), self.radius)

    def move(self, speed_change):
        self.x -= self.velocity + speed_change

def create_obstacles():
    obstacles = []
    for _ in range(5):  # Number of obstacles
        obstacle_radius = random.randint(10, 30)
        obstacle_x = random.randint(WIDTH, 2 * WIDTH)
        obstacle_y = random.randint(obstacle_radius, HEIGHT - obstacle_radius)
        obstacle_velocity = random.randint(1, 5)
        obstacle_color = random.choice(COLORS)
        obstacles.append(Obstacle(obstacle_x, obstacle_y, obstacle_radius, obstacle_velocity, obstacle_color))
    return obstacles

# Main function
def main():
    player = Player(50, 50)
    obstacles = create_obstacles()
    clock = pygame.time.Clock()

    # Settings for adjusting obstacle speed
    speed_increase_amount = 1  # Amount to increase speed by
    speed_change = 0

    running = True
    while running:
        clock.tick(60)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            player.x -= player.velocity
        if keys[pygame.K_RIGHT]:
            player.x += player.velocity
        if keys[pygame.K_UP]:
            player.y -= player.velocity
        if keys[pygame.K_DOWN]:
            player.y += player.velocity
        if keys[pygame.K_LSHIFT]:
            speed_change += speed_increase_amount
        if keys[pygame.K_LCTRL]:
            speed_change -= speed_increase_amount
            if speed_change < 0:
                speed_change = 0

        # Move obstacles
        for obstacle in obstacles:
            obstacle.move(speed_change)
            if obstacle.x < -obstacle.radius:
                obstacle.x = WIDTH + random.randint(50, 200)
                obstacle.y = random.randint(obstacle.radius, HEIGHT - obstacle.radius)
                obstacle.velocity = random.randint(1, 5)
                obstacle.color = random.choice(COLORS)

        # Check collision with obstacles
        for obstacle in obstacles:
            distance = math.sqrt((player.x - obstacle.x)**2 + (player.y - obstacle.y)**2)
            if distance < player.radius + obstacle.radius:
                running = False  # End the game if collision occurs

        # Draw everything on the screen
        WIN.fill(BLACK)
        for obstacle in obstacles:
            obstacle.draw(WIN)
        player.draw(WIN)
        pygame.display.update()

    pygame.quit()
    sys.exit()

if __name__ == "__main__":
    main()

1403/02/21 149 16
رمز عبور : tahlildadeh.com یا www.tahlildade.com

نظرات شما

برای ارسال سوال لازم است، ابتدا وارد سایت شوید.