Creating a complete snake game requires a significant amount of code, but I can provide you with a basic outline in Python using the `pygame` library. You'll need to install `pygame` using `pip install pygame` before running the code. Here's a simplified version:
import pygame
import random
pygame.init()
# Set up display
width, height = 640, 480
display = pygame.display.set_mode((width, height))
pygame.display.set_caption("Snake Game")
# Colors
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
# Snake properties
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_dir = 'RIGHT'
change_to = snake_dir
# Food properties
food_pos = [random.randrange(1, (width//10)) * 10, random.randrange(1, (height//10)) * 10]
food_spawn = True
# Clock to control speed
clock = pygame.time.Clock()
fps = 30
# Main game loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# Arrow keys to control direction
keys = pygame.key.get_pressed()
for key in keys:
if keys[pygame.K_UP]:
change_to = 'UP'
if keys[pygame.K_DOWN]:
change_to = 'DOWN'
if keys[pygame.K_LEFT]:
change_to = 'LEFT'
if keys[pygame.K_RIGHT]:
change_to = 'RIGHT'
# Validate direction
if change_to == 'UP' and not snake_dir == 'DOWN':
snake_dir = 'UP'
if change_to == 'DOWN' and not snake_dir == 'UP':
snake_dir = 'DOWN'
if change_to == 'LEFT' and not snake_dir == 'RIGHT':
snake_dir = 'LEFT'
if change_to == 'RIGHT' and not snake_dir == 'LEFT':
snake_dir = 'RIGHT'
# Moving the snake
if snake_dir == 'UP':
snake_pos[1] -= 10
if snake_dir == 'DOWN':
snake_pos[1] += 10
if snake_dir == 'LEFT':
snake_pos[0] -= 10
if snake_dir == 'RIGHT':
snake_pos[0] += 10
# Snake body growing mechanism
snake_body.insert(0, list(snake_pos))
if snake_pos[0] == food_pos[0] and snake_pos[1] == food_pos[1]:
food_spawn = False
else:
snake_body.pop()
if not food_spawn:
food_pos = [random.randrange(1, (width // 10)) * 10,
random.randrange(1, (height // 10)) * 10]
food_spawn = True
# Draw Snake and Food
display.fill(black)
for pos in snake_body:
pygame.draw.rect(display, green, pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(display, white, pygame.Rect(
food_pos[0], food_pos[1], 10, 10))
pygame.display.update()
clock.tick(fps)
pygame.quit()
quit()
Please note that this is a basic implementation, and a complete game would require additional features, optimizations, and error handling. You can expand upon this code by adding features like collision detection, scoring, game over conditions, and more advanced graphics.
Comments
Post a Comment