Viết code rắn python
Ôi, việc tạo một trò chơi rắn là một cách thú vị để tổ chức cuộc đua giữa các con rắn... code của chúng ta! Và nếu bạn thích những thử thách lập trình cộng thêm một chút niềm vui của video game cổ điển, bạn đang ở đúng nơi. Hãy nhớ, những con rắn này không cần chuột để sống sót, chúng cần code thức ăn!
Dưới đây là một ví dụ về cách bạn có thể viết một trò chơi Rắn (Snake) đơn giản bằng Python với thư viện pygame
.
Chú ý, bạn cần cài đặt pygame
trước tiên bằng lệnh pip install pygame
trong terminal, nếu bạn chưa có nó.
import pygame
import time
import random
pygame.init()
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
dis_width = 600
dis_height = 400
dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('Snake Game by <a href='https://trituenhantao.io'>trituenhantao.io</a>')
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15
font_style = pygame.font.SysFont(None, 50)
def our_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])
def message(msg, color):
mesg = font_style.render(msg, True, color)
dis.blit(mesg, [dis_width / 6, dis_height / 3])
def gameLoop():
game_over = False
game_close = False
x1 = dis_width / 2
y1 = dis_height / 2
x1_change = 0
y1_change = 0
snake_List = []
Length_of_snake = 1
foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close == True:
dis.fill(blue)
message("You Lost! Press Q-Quit or C-Play Again", red)
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:
gameLoop()
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:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
dis.fill(blue)
pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])
snake_Head = []
snake_Head.append(x1)
snake_Head.append(y1)
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
our_snake(snake_block, snake_List)
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
Length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
gameLoop()
Trước khi chạy code, hãy nhớ đảm bảo bạn đã có Python và Pygame được cài đặt trên máy của mình.
Nếu bạn muốn biết thêm về AI, lập trình, hoặc muốn tìm hiểu về các con rắn thông minh hơn nhiều (nói cách khác, các mô hình machine learning), hãy truy cập trituenhantao.io - nơi tất cả những sự tò mò của bạn sẽ được giải tỏa, và bạn chẳng bao giờ biết đấy, có thể bạn sẽ trở thành người giúp đỡ các con rắn AI của chúng ta thay đổi hướng di chuyển mà không cần đến bàn phím!
Hãy nhớ, dù bạn code rắn hay làm bất cứ điều gì khác, có trituenhantao.io ở bên cạnh, bạn không bao giờ đi lập trình một mình!