Cs Project Snake Game
Cs Project Snake Game
PROJECT
“SNAKE GAME”
IN
PYTHON
ACKNOWLEDGEMENT
CERTIFICATE
LOGIC
PROGRAM CODE
REFERENCES
ACKNOWLEDGEMENT
PRINCIPAL’S SIGNATURE
TEACHER’S SIGNATURE
DATE:
SCHOOL STAMP
LOGIC
Program Code
import turtle
import time
import random
delay = 0.1
score = 0
high_score = 0
wn = turtle.Screen()
wn.title("Snake Game")
wn.bgcolor("blue")
wn.setup(width=600, height=600)
wn.tracer(0)
head = turtle.Turtle()
head.shape("square")
head.color("white")
head.penup()
head.goto(0, 0)
head.direction = "Stop"
food = turtle.Turtle()
food.speed(0)
food.penup()
food.goto(0, 100)
pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()
pen.goto(0, 250)
pen.write("Score : 0 High Score : 0", align="center", font=("candara", 24,
"bold"))
segments = []
def go_up():
if head.direction != "down":
head.direction = "up"
def go_down():
if head.direction != "up":
head.direction = "down"
def go_left():
if head.direction != "right":
head.direction = "left"
def go_right():
if head.direction != "left":
head.direction = "right"
def move():
if head.direction == "up":
head.sety(head.ycor() + 20)
elif head.direction == "down":
head.sety(head.ycor() - 20)
elif head.direction == "left":
head.setx(head.xcor() - 20)
elif head.direction == "right":
head.setx(head.xcor() + 20)
def check_collision():
if (
head.xcor() > 290 or head.xcor() < -290
or head.ycor() > 290 or head.ycor() < -290
):
game_over()
def game_over():
global score, high_score, delay
time.sleep(1)
head.goto(0, 0)
head.direction = "Stop"
score = 0
delay = 0.1
update_score()
def update_score():
pen.clear()
pen.write("Score : {} High Score : {} ".format(score, high_score),
align="center", font=("candara", 24, "bold"))
def spawn_food():
x = random.randint(-270, 270)
y = random.randint(-270, 270)
food.goto(x, y)
def eat_food():
global score, high_score, delay
x, y = head.xcor(), head.ycor()
if head.distance(food) < 20:
spawn_food()
new_segment = turtle.Turtle()
new_segment.speed(0)
new_segment.shape("square")
new_segment.color("orange")
new_segment.penup()
segments.append(new_segment)
delay -= 0.001
score += 10
if score > high_score:
high_score = score
update_score()
def move_segments():
for i in range(len(segments) - 1, 0, -1):
x, y = segments[i - 1].xcor(), segments[i - 1].ycor()
segments[i].goto(x, y)
def update_segments_position():
if len(segments) > 0:
x, y = head.xcor(), head.ycor()
segments[0].goto(x, y)
wn.listen()
wn.onkeypress(go_up, "r")
wn.onkeypress(go_down, "f")
wn.onkeypress(go_left, "d")
wn.onkeypress(go_right, "g")
while True:
wn.update()
move()
check_collision()
eat_food()
move_segments()
update_segments_position()
time.sleep(delay)
wn.mainloop()
FLOWCHART
l