Ads

How to Create Snake Game in Python Turtle graphics | PYTHON PROGRAM TO CREATE SNAKE GAME PROJECTS | SNAKE GAME IN PYTHON TURTLE

 #________________ WELCOME ALL OF YOU ON COMPUTER SOFT SKILLS CHANNEL __________

#........................................... PYTHON PROGRAM TO CREATE SNAKE GAME ....................


import turtle

import random

    

WIDTH = 800

HEIGHT = 760

FOOD_SIZE = 8

DELAY = 165  # snake speed in milliseconds

    

offsets = {

        "up": (0, 20),

        "down": (0, -20),

        "left": (-20, 0),

        "right": (20, 0)

    }

    

def reset():

        global snake, snake_direction, food_pos, pen

        snake = [[0, 0], [0, 20], [0, 40], [0, 50], [0, 60]]

        snake_direction = "up"

        food_pos = get_random_food_pos()

        food.goto(food_pos)

        move_snake()

    

def move_snake():

        global snake_direction

    

        #  Next position for head of snake.

        new_head = snake[-1].copy()

        new_head[0] = snake[-1][0] + offsets[snake_direction][0]

        new_head[1] = snake[-1][1] + offsets[snake_direction][1]

    

        # Check self-collision

        if new_head in snake[:-1]:  # Or collision with walls

            reset()

        else:

            # No self-collision so we can continue moving the snake.

            snake.append(new_head)

    

            # Check food collision

            if not food_collision():

                snake.pop(0)  # Keep the snake the same length unless fed.

    

            #  Allow screen wrapping

            if snake[-1][0] > WIDTH / 2:

                snake[-1][0] -= WIDTH

            elif snake[-1][0] < - WIDTH / 2:

                snake[-1][0] += WIDTH

            elif snake[-1][1] > HEIGHT / 2:

                snake[-1][1] -= HEIGHT

            elif snake[-1][1] < -HEIGHT / 2:

                snake[-1][1] += HEIGHT

    

            # Clear previous snake stamps

            pen.clearstamps()

    

            # Draw snake

            for segment in snake:

                pen.goto(segment[0], segment[1])

                pen.stamp()

    

            # Refresh screen

            screen.update()

    

            # Rinse and repeat

            turtle.ontimer(move_snake, DELAY)

    

def food_collision():

        global food_pos

        if get_distance(snake[-1], food_pos) < 20:

            food_pos = get_random_food_pos()

            food.goto(food_pos)

            return True

        return False

    

def get_random_food_pos():

        x = random.randint(- WIDTH / 2 + FOOD_SIZE, WIDTH / 2 - FOOD_SIZE)

        y = random.randint(- HEIGHT / 2 + FOOD_SIZE, HEIGHT / 2 - FOOD_SIZE)

        return (x, y)

    

def get_distance(pos1, pos2):

        x1, y1 = pos1

        x2, y2 = pos2

        distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5

        return distance

    

def go_up():

        global snake_direction

        if snake_direction != "down":

            snake_direction = "up"

    

def go_right():

        global snake_direction

        if snake_direction != "left":

            snake_direction = "right"

    

def go_down():

        global snake_direction

        if snake_direction != "up":

            snake_direction = "down"

    

def go_left():

        global snake_direction

        if snake_direction != "right":

            snake_direction = "left"

    

# GAME Screen

screen = turtle.Screen()

screen.setup(WIDTH, HEIGHT)

screen.title("Computer Soft Skills- SNAKE GAME")

screen.bgcolor("lime")

screen.setup(800, 760)

screen.tracer(0)

    

# Pen snake color

pen = turtle.Turtle("circle")

pen.color("mediumblue")

pen.penup()

    

# Food

food = turtle.Turtle()

food.shape("turtle")

food.color("darkred")

food.shapesize(FOOD_SIZE / 8)  # food size 8

food.penup()

    

 # Event handlers

screen.listen()

screen.onkey(go_up, "Up")

screen.onkey(go_right, "Right")

screen.onkey(go_down, "Down")

screen.onkey(go_left, "Left")

    

# Let's go

reset()

turtle.done()






    


Post a Comment

0 Comments