کد آماده بازی مار (snake) در پایتون
کد آماده بازی مار (snake) در پایتون
پایتون یکی از بهترین زبانهای برنامه نویسی حال حاضر به حساب میآید و محبوبیت زیادی دارد و افراد بسیاری به دنبال یادگیری پایتون هستند. یکی از مهمترین مراحل در مسیر یادگیری برنامه نویسی ، خصوصاً مسیر یادگیری پایتون، انجام پروژههای عملی است. یادگیری واقعی با تمرین حاصل میشود و مهارت برنامه نویسی را تنها میتوان با انجام پروژه تقویت کرد. یکی از پروژههای رایجی که در آموزش پایتون و به ویژه در حوزه بازیسازی و آن هم در حیطه ساخت بازی با پایتون بسیار رایج است و محبوبیت دارد، ساخت بازی مار با پایتون به حساب میآید. در این مقاله از آموزش های آموزشگاه راهکار به ساخت بازی مار با پایتون پرداخته شده است.
۱. نصب Pygame
باید به این نکته توجه داشت که پیش از هر چیز باید نصب پایتون در ویندوز، مک یا لینوکس انجام شود. نصب PIP پایتون نیز در صورت نصب نبودن آن، پیش از نصب Pygame ضروری است. برای انجام این کار میتوان به سادگی از دستور زیر در خط فرمان استفاده کرد:
pip install pygame
پس از نصب مجموعه ماژولهای Pygame با استفاده از PIP، فقط باید آن را ایمپورت کرد و به این ترتیب کار توسعه و ساخت بازی مار با پایتون شروع میشود. پیش از ادامه آموزش ساخت بازی مار با پایتون ، بهتر است به بررسی اجمالی آن دسته از توابع Pygame پرداخته شود که در این مقاله از آنها استفاده شده است. این توابع Pygame به همراه شرح هر کدام در جدول زیر فهرست شدهاند:
| تابع | شرح تابع |
| init() | راهاندازی اولیه تمام ماژولهای ایمپورت شده پایگیم را انجام میدهد (تاپلی را بازمیگرداند که مشخص کننده موفقیت یا عدم موفقیت راهاندازی اولیه هر یکی از ماژولها است). |
| display.set_mode() | برای ایجاد سطح (Surface)، یک تاپل یا لیست (با ترجیح تاپل) را به عنوان پارامتر خود دریافت میکند. |
| update() | صفحه را بهروزرسانی میکند. |
| quit() | برای قطع راهاندازی همه چیز استفاده میشود. |
| set_caption() | متن عنوان در بالای صفحه نمایش را تنظیم میکند. |
| event.get() | لیستی از تمام رویدادها (Eventها) را بازمیگرداند. |
| Surface.fill() | سطح را با رنگی یکنواخت پُر میکند. |
| time.Clock() | به ردیابی زمان کمک میکند. |
| font.SysFont() | یک فونت Pygame را با استفاده از منابع فونت سیستم ایجاد خواهد کرد. |
پس از نصب Pygame در گام بعدی ساخت بازی مار با پایتون باید صفحه بازی را ایجاد کرد. این کار در بخش بعد انجام شده است.
import pygame
import random
pygame.init()
white = (255, 255, 255)
red = (255, 0, 0)
black = (0, 0, 0)
screen_width = 900
screen_height = 600
gameWindow = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Snake (آموزشگاه راهکار - 04135574231)")
pygame.display.update()
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 55)
def text_screen(text, color, x, y):
screen_text = font.render(text, True, color)
gameWindow.blit(screen_text, [x,y])
def plot_snake(gameWindow, color, snk_list, snake_size):
for x,y in snk_list:
pygame.draw.rect(gameWindow, color, [x, y, snake_size, snake_size])
def gameloop():
exit_game = False
game_over = False
snake_x = 45
snake_y = 55
velocity_x = 0
velocity_y = 0
snk_list = []
snk_length = 1
food_x = random.randint(20, screen_width-20)
food_y = random.randint(60, screen_height -20)
score = 0
init_velocity = 4
snake_size = 30
fps = 60
while not exit_game:
if game_over:
gameWindow.fill(white)
text_screen("Game Over! Press Enter To Continue", red, 100, 250)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
gameloop()
else:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
velocity_x = init_velocity
velocity_y = 0
if event.key == pygame.K_LEFT:
velocity_x = - init_velocity
velocity_y = 0
if event.key == pygame.K_UP:
velocity_y = - init_velocity
velocity_x = 0
if event.key == pygame.K_DOWN:
velocity_y = init_velocity
velocity_x = 0
snake_x = snake_x + velocity_x
snake_y = snake_y + velocity_y
if abs(snake_x - food_x)<10 and abs(snake_y - food_y)<10:
score +=1
food_x = random.randint(20, screen_width - 30)
food_y = random.randint(60, screen_height - 30)
snk_length +=5
gameWindow.fill(white)
text_screen("Score: " + str(score * 10), red, 5, 5)
pygame.draw.rect(gameWindow, red, [food_x, food_y, snake_size, snake_size])
pygame.draw.line(gameWindow, red, (0,40), (900,40),5)
head = []
head.append(snake_x)
head.append(snake_y)
snk_list.append(head)
if len(snk_list)>snk_length:
del snk_list[0]
if head in snk_list[:-1]:
game_over = True
if snake_x<0 or snake_x>screen_width-20 or snake_y<50 or snake_y>screen_height-20:
game_over = True
plot_snake(gameWindow, black, snk_list, snake_size)
pygame.display.update()
clock.tick(fps)
pygame.quit()
quit()
gameloop()
جمعبندی
در یادگیری پایتون باید اطمینان حاصل کرد که تا جای امکان تمرینها و پروژههای عملی انجام شوند تا بتوان تجربه لازم را کسب کرد و مهارت برنامه نویسی پایتون را در سطح یک فرد حرفهای و متخصص به دست آورد. به همین دلیل در این مقاله از آموزشگاه راهکار آموزش ساخت بازی مار با پایتون ارائه شده است. استفاده از این مقاله خصوصاً برای افرادی مناسب است که قصد فعالیت در زمینه ساخت بازی با پایتون را دارند. در صورتی که سوالی پیرامون این مقاله وجود دارد، مخاطبان میتوانند آن را از طریق بخش نظرها درمیان بگذارند.
کد آماده بازی مار (snake) در پایتون کد آماده بازی مار (snake) در پایتون کد آماده بازی مار (snake) در پایتون
