diff --git a/scripts/SnakeGame/SnakeGame.md b/scripts/SnakeGame/SnakeGame.md new file mode 100644 index 0000000..0f67829 --- /dev/null +++ b/scripts/SnakeGame/SnakeGame.md @@ -0,0 +1,10 @@ +## Snake Game +GUI based Snake game, where you can play it directly without installing any dependencies. + +## How to install? +`1.` Download the file rock_paper_scissor.py +`2.` Open CMD (Command Prompt) +`3.` Run python rock_paper_scissor.py +`4.` Follow the instructions and enjoy! + +Enjoy and play with your friends \ No newline at end of file diff --git a/scripts/SnakeGame/SnakeGame.py b/scripts/SnakeGame/SnakeGame.py new file mode 100644 index 0000000..18825c2 --- /dev/null +++ b/scripts/SnakeGame/SnakeGame.py @@ -0,0 +1,175 @@ +import turtle +import time +import random + +delay = 0.1 +score = 0 +high_score = 0 + +#Window Screen +wn = turtle.Screen() +wn.title("SNAKE GAME") +wn.bgcolor("black") + +wn.setup(width=600,height=600) +wn.tracer(0) + +#Head of Snake +head = turtle.Turtle() +head.shape("square") +head.color("green") +head.penup() +head.goto(0, 0) +head.direction = "stop" + +#Food in the game +food = turtle.Turtle() +food.speed(0) +food.shape("circle") +food.color("red") +food.penup() +food.goto(0, 100) + +#Score +pen = turtle.Turtle() +pen.speed(0) +pen.shape("turtle") +pen.color("white") +pen.penup() +pen.hideturtle() +pen.goto(0, 250) +pen.write("Score : 0 High Score : 0", align="center", + font=("Times New Roman", 24, "bold")) + + +#Assigning key values +def goup(): + if head.direction != "down": + head.direction = "up" + +def godown(): + if head.direction != "up": + head.direction = "down" + +def goright(): + if head.direction != "left": + head.direction = "right" + +def goleft(): + if head.direction != "right": + head.direction = "left" + +def move(): + if head.direction == "up": + y = head.ycor() + head.sety(y+20) + + if head.direction == "down": + y = head.ycor() + head.sety(y-20) + + if head.direction == "right": + x = head.xcor() + head.setx(x+20) + + if head.direction == "left": + x = head.xcor() + head.setx(x-20) + +wn.listen() +wn.onkeypress(goup, "Up") +wn.onkeypress(godown, "Down") +wn.onkeypress(goleft, "Left") +wn.onkeypress(goright, "Right") + + +#Main Loop +segments = [] + +while True: + wn.update() + #for collisions with border + if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290: + time.sleep(1) + head.goto(0, 0) + head.direction = "stop" + + #hiding segments of snake + for segment in segments: + segment.goto(1000,1000) + #clearing the segments + segments.clear() + + #reset score + score = 0 + + #reset delay + delay = 0.1 + + pen.clear() + pen.write("Score : {} High Score : {} ".format( + score, high_score), align="center", font=("Times New Roman", 24, "bold")) + + #checking collision with food + if head.distance(food) < 20: + x = random.randint(-270, 270) + y = random.randint(-270, 270) + food.goto(x, y) + d = ["red","yellow","blue"] + colors = random.choice(d) + food.color(colors) + e = ["circle","square","triangle"] + shapes = random.choice(e) + food.shape(shapes) + + + #adding new segment + new_segment = turtle.Turtle() + new_segment.speed(0) + new_segment.color("green") + new_segment.shape("square") + new_segment.penup() + segments.append(new_segment) + + delay -= 0.001 + score += 10 + + if score>high_score: + high_score = score + pen.clear() + pen.write("Score : {} High Score : {} ".format( + score, high_score), align="center", font=("Times New Roman", 24, "bold")) + + #moving segments in reverse order + for i in range(len(segments)-1,0,-1): + x = segments[i-1].xcor() + y = segments[i-1].ycor() + segments[i].goto(x,y) + if len(segments) > 0: + x = head.xcor() + y = head.ycor() + segments[0].goto(x, y) + + move() + + #Checking collisions with body + for segment in segments: + if segment.distance(head) < 20: + time.sleep(1) + head.goto(0,0) + head.direction = "stop" + + #hide segments + for segment in segments: + segment.goto(1000,1000) + segment.clear() + + score = 0 + delay = 0.1 + pen.clear() + pen.write("Score : {} High Score : {} ".format( + score, high_score), align="center", font=("Times New Roman", 24, "bold")) + time.sleep(delay) + +turtle.done() +