Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1ccfdb7

Browse filesBrowse files
committed
base files
0 parents  commit 1ccfdb7
Copy full SHA for 1ccfdb7

File tree

2 files changed

+186
-0
lines changed
Filter options

2 files changed

+186
-0
lines changed

‎README.md

Copy file name to clipboard
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
## # Simple Snake Game in Python 3 for RANDOM, TIME, turtle themes

‎snake.py

Copy file name to clipboard
+185Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
# Simple Snake Game in Python 3 for RANDOM, TIME, turtle themes
2+
3+
4+
import turtle
5+
import time
6+
import random
7+
8+
delay = 0.1
9+
10+
# Score
11+
score = 0
12+
high_score = 0
13+
14+
# Set up the screen
15+
wn = turtle.Screen()
16+
wn.title("Snake Game by SUBUX")
17+
wn.bgcolor("darkblue")
18+
wn.setup(width=600, height=600)
19+
wn.tracer(0) # Turns off the screen updates
20+
21+
# Snake head
22+
head = turtle.Turtle()
23+
head.speed(0)
24+
head.shape("square")
25+
head.color("black")
26+
head.penup()
27+
head.goto(0,0)
28+
head.direction = "stop"
29+
30+
# Snake food
31+
food = turtle.Turtle()
32+
food.speed(0)
33+
food.shape("circle")
34+
food.color("red")
35+
food.penup()
36+
food.goto(0,100)
37+
38+
segments = []
39+
40+
# Pen
41+
pen = turtle.Turtle()
42+
pen.speed(0)
43+
pen.shape("square")
44+
pen.color("white")
45+
pen.penup()
46+
pen.hideturtle()
47+
pen.goto(0, 260)
48+
pen.write("Score: 0 High Score: 0", align="center", font=("Courier", 24, "normal"))
49+
50+
# Functions
51+
def go_up():
52+
if head.direction != "down":
53+
head.direction = "up"
54+
55+
def go_down():
56+
if head.direction != "up":
57+
head.direction = "down"
58+
59+
def go_left():
60+
if head.direction != "right":
61+
head.direction = "left"
62+
63+
def go_right():
64+
if head.direction != "left":
65+
head.direction = "right"
66+
67+
def move():
68+
if head.direction == "up":
69+
y = head.ycor()
70+
head.sety(y + 20)
71+
72+
if head.direction == "down":
73+
y = head.ycor()
74+
head.sety(y - 20)
75+
76+
if head.direction == "left":
77+
x = head.xcor()
78+
head.setx(x - 20)
79+
80+
if head.direction == "right":
81+
x = head.xcor()
82+
head.setx(x + 20)
83+
84+
# Keyboard bindings
85+
wn.listen()
86+
wn.onkeypress(go_up, "w")
87+
wn.onkeypress(go_down, "s")
88+
wn.onkeypress(go_left, "a")
89+
wn.onkeypress(go_right, "d")
90+
91+
# Main game loop
92+
while True:
93+
wn.update()
94+
95+
# Check for a collision with the border
96+
if head.xcor()>290 or head.xcor()<-290 or head.ycor()>290 or head.ycor()<-290:
97+
time.sleep(1)
98+
head.goto(0,0)
99+
head.direction = "stop"
100+
101+
# Hide the segments
102+
for segment in segments:
103+
segment.goto(1000, 1000)
104+
105+
# Clear the segments list
106+
segments.clear()
107+
108+
# Reset the score
109+
score = 0
110+
111+
# Reset the delay
112+
delay = 0.1
113+
114+
pen.clear()
115+
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
116+
117+
118+
# Check for a collision with the food
119+
if head.distance(food) < 20:
120+
# Move the food to a random spot
121+
x = random.randint(-290, 290)
122+
y = random.randint(-290, 290)
123+
food.goto(x,y)
124+
125+
# Add a segment
126+
new_segment = turtle.Turtle()
127+
new_segment.speed(0)
128+
new_segment.shape("square")
129+
new_segment.color("grey")
130+
new_segment.penup()
131+
segments.append(new_segment)
132+
133+
# Shorten the delay
134+
delay -= 0.001
135+
136+
# Increase the score
137+
score += 10
138+
139+
if score > high_score:
140+
high_score = score
141+
142+
pen.clear()
143+
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
144+
145+
# Move the end segments first in reverse order
146+
for index in range(len(segments)-1, 0, -1):
147+
x = segments[index-1].xcor()
148+
y = segments[index-1].ycor()
149+
segments[index].goto(x, y)
150+
151+
# Move segment 0 to where the head is
152+
if len(segments) > 0:
153+
x = head.xcor()
154+
y = head.ycor()
155+
segments[0].goto(x,y)
156+
157+
move()
158+
159+
# Check for head collision with the body segments
160+
for segment in segments:
161+
if segment.distance(head) < 20:
162+
time.sleep(1)
163+
head.goto(0,0)
164+
head.direction = "stop"
165+
166+
# Hide the segments
167+
for segment in segments:
168+
segment.goto(1000, 1000)
169+
170+
# Clear the segments list
171+
segments.clear()
172+
173+
# Reset the score
174+
score = 0
175+
176+
# Reset the delay
177+
delay = 0.1
178+
179+
# Update the score display
180+
pen.clear()
181+
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
182+
183+
time.sleep(delay)
184+
185+
wn.mainloop()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.