I am new to python programming i was writing a code of snake game in which snake moves randomly on x axis. And user have to put input in terminal for the location of food and poison on x axis. And snake must be inside the food and poison.
"The main thing i want to that is while the user input any location of food and Poison the snake must move whole time without stopping"
I will be thankful to you if you provide me something that can help or do make some changes in the code given below
Thanks
import random
import turtle
import time
delay = 0.1
score = 0
s=0
#setting up screen
win = turtle.Screen()
win.title("Snake Game")
win.bgcolor("black")
win.setup(height= 480, width=480)
win.tracer(0)
#----------------------------------------------------------------------------------------------------------------------
#------------------------------------------------SNAKE-----------------------------------------------------------------
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("white")
head.penup()
head.goto(0,0)
head.direction = "stop"
# FOOD
f = int(input("Enter location of food on x-axis :"))
poi = int(input("Enter location of poison on x-axis :"))
if poi == 0 and f == 0 or poi == f:
poi = poi + 40
f = f + 30
if poi <=0 and f <= 0:
poi = -poi
if poi >=0 and f >=0:
f = -f
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("green")
food.penup()
food.goto(int(f),0)
# Poison
Poison = turtle.Turtle()
Poison.speed(0)
Poison.shape("turtle")
Poison.color("red")
Poison.penup()
Poison.goto(int(poi),0)
#------------------------------------------------SNAKE-----------------------------------------------------------------
#list
segments = []
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(-150, 205)
pen.write("Secore: 0", align="center", font=("Courier", 24, "normal"))
pen1 = turtle.Turtle()
pen1.speed(0)
pen1.shape("square")
pen1.color("white")
pen1.penup()
pen1.hideturtle()
pen1.goto(200, -226)
pen1.write("240", align="center", font=("Courier", 14, "normal"))
pen2 = turtle.Turtle()
pen2.speed(0)
pen2.shape("square")
pen2.color("white")
pen2.penup()
pen2.hideturtle()
pen2.goto(0, -226)
pen2.write("0", align="center", font=("Courier", 14, "normal"))
pen2 = turtle.Turtle()
pen2.speed(0)
pen2.shape("square")
pen2.color("white")
pen2.penup()
pen2.hideturtle()
pen2.goto(-200, -226)
pen2.write("-240", align="center", font=("Courier", 14, "normal"))
#function
def move():
if head.direction=="up":
head.sety(head.ycor() + 5)
if head.direction=="down":
head.sety(head.ycor() - 5)
if head.direction=="left":
head.setx(head.xcor() - 5)
if head.direction=="right":
head.setx(head.xcor() + 5)
def go_right():
head.direction = "right"
def go_left():
head.direction = "left"
#----------------------------------------------------------------------------------------------------------------------
c = 0
print("Score: ", score)
while True:
win.update()
l = random.randint(-220, 220)
r = random.randint(-220, 220)
if l>0 and l < 220:
head.direction="right"
if l<0 and l >-220:
head.direction = "left"
#check for collison with border
if head.xcor()>230 or head.xcor()<-230 or head.ycor()>230 or head.ycor()<-230:
time.sleep(1)
head.goto(0,0)
pen.clear()
score=0
#hidr segment
for segment in segments:
segment.goto(1000,1000)
#clear segments
segments.clear()
#check for collision
if head.distance(food) < 20:
x = random.randint(-290,290)
y = random.randint(-290,290)
print("Food: ")
f = int(input("enter the x axis location of food Must be in 230 to -230 "))
if f > 230 or f < -230:
f = input("Invalid, enter the x axis location of food Must be in 230 to -230 ")
p = int(input("enter location of poison on x axis Must be in 230 to -230 "))
if p > 230 or p < -230:
p = int(input("Invalid, enter the x axis location "))
if p == f or p ==0 and f == 0:
p = p + 40
f = f + 30
if p <= 0 and f <= 0:
p = -p
if p >= 0 and f >= 0:
f = -f
if head.distance(head) < p and head.distance(head) < f:
f = int(input("enter the location of food again snake must be inside both "))
if head.distance(head) > f and head.distance(head) > p:
p = int(input("enter the location of poison again snake must be inside both "))
Poison.goto(int(p), 0)
food.goto(int(f), 0)
#head.direction = "stop"
new_segment = turtle.Turtle()
new_segment.speed(0)
new_segment.shape("square")
new_segment.color("grey")
new_segment.penup()
segments.append(new_segment)
#increase score
score += 10
pen.clear()
pen.write("Score: {}".format(score), align="center", font=("Courier", 24, "normal"))
if head.distance(Poison) < 20:
print("Poison: ")
p = int(input("enter location of poison on x axis Must be in -230 to -230 "))
if p > 230 or p < -230:
p = int(input("Invalid, enter the x axis location "))
f = int(input("enter the x axis location of food "))
if head.distance(head) < p and head.distance(head) < f:
f = int(input("enter the location of food again snake must be inside both "))
if head.distance(head) > f and head.distance(head) > p:
p = int(input("enter the location of poison again snake must be inside both "))
if p == f or p == 0 and f == 0:
p = p + 40
f = f + 30
if p <= 0 and f <= 0:
p = -p
if p >= 0 and f >= 0:
f = -f
Poison.goto(int(p), 0)
food.goto(int(f),0)
# head.direction = "stop"
# increase score
score -= 10
print(score)
pen.clear()
pen.write("Score: {}".format(score), align="center", font=("Courier", 24, "normal"))
#move the end segment
for index in range(len(segments)-1,0,-1):
x = segments[index-1].xcor()
y = segments[index-1].ycor()
segments[index].goto(x+5, y-20)
# move seg 0 to where head
if len(segments)>0:
segments[0].goto(head.xcor()+5, head.ycor()-20)
move()
time.sleep(delay)
win.mainloop()