ajaayy6730 / alpha

X_alpha
0 stars 0 forks source link

py Snake game #1

Closed ajaayy6730 closed 3 months ago

ajaayy6730 commented 3 months ago

import pygame import time import random

pygame.init()

Colors

white = (255, 255, 255) yellow = (255, 255, 102) black = (0, 0, 0) red = (213, 50, 80) green = (0, 255, 0) blue = (50, 153, 213)

Display dimensions

dis_width = 600 dis_height = 400

Snake block size

snake_block = 10

Font size

font_style = pygame.font.SysFont(None, 50)

Initialize display

dis = pygame.display.set_mode((dis_width, dis_height)) pygame.display.set_caption('Snake Game')

Clock to control refresh rate

clock = pygame.time.Clock()

Snake speed

snake_speed = 15

Font for displaying score

score_font = pygame.font.SysFont("comicsansms", 35)

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

# Initial position of the snake
x1 = dis_width / 2
y1 = dis_height / 2

# Change in position
x1_change = 0
y1_change = 0

# Snake body
snake_List = []
Length_of_snake = 1

# Initial food position
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()

ajaayy6730 commented 3 months ago

Output python snake_game.py

Game Window: A Pygame window will open titled "Snake Game".

Snake: You'll see a small black square moving on a blue background. This is the snake.

Food: A green square will appear at a random position on the screen. This represents the food.

Gameplay: Use the arrow keys (UP, DOWN, LEFT, RIGHT) to control the movement of the snake.

Objective: Guide the snake to eat the food. Each time the snake eats the food, it grows longer.

Score: The length of the snake (score) is displayed on the top left corner of the window.

Game Over: The game ends if the snake runs into the wall or itself. You can then press 'Q' to quit or 'C' to play again.