From 2ab97c2072474c4b0fb03e7017ef5b345024d1b1 Mon Sep 17 00:00:00 2001 From: MrityunjayaTripathi <58814328+Error404m@users.noreply.github.com> Date: Sat, 17 Oct 2020 18:20:53 +0530 Subject: [PATCH 1/2] Created Snake, classic arcade game. --- Snake Game/snake.py | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Snake Game/snake.py diff --git a/Snake Game/snake.py b/Snake Game/snake.py new file mode 100644 index 0000000..2b1edc5 --- /dev/null +++ b/Snake Game/snake.py @@ -0,0 +1,57 @@ +"""Snake, classic arcade game.""" + +from turtle import * +from random import randrange +from freegames import square, vector + +food = vector(0, 0) +snake = [vector(10, 0)] +aim = vector(0, -10) + +def change(x, y): + "Change snake direction." + aim.x = x + aim.y = y + +def inside(head): + "Return True if head inside boundaries." + return -200 < head.x < 190 and -200 < head.y < 190 + +def move(): + "Move snake forward one segment." + head = snake[-1].copy() + head.move(aim) + + if not inside(head) or head in snake: + square(head.x, head.y, 9, 'red') + update() + return + + snake.append(head) + + if head == food: + print('Snake:', len(snake)) + food.x = randrange(-15, 15) * 10 + food.y = randrange(-15, 15) * 10 + else: + snake.pop(0) + + clear() + + for body in snake: + square(body.x, body.y, 9, 'black') + + square(food.x, food.y, 9, 'green') + update() + ontimer(move, 100) + +setup(420, 420, 370, 0) +hideturtle() +tracer(False) +listen() +onkey(lambda: change(10, 0), 'Right') +onkey(lambda: change(-10, 0), 'Left') +onkey(lambda: change(0, 10), 'Up') +onkey(lambda: change(0, -10), 'Down') +move() +done() From c8ef945d082401ac870374075331a76c87b7d1f5 Mon Sep 17 00:00:00 2001 From: MrityunjayaTripathi <58814328+Error404m@users.noreply.github.com> Date: Mon, 19 Oct 2020 17:59:12 +0530 Subject: [PATCH 2/2] Added Cannon hitting targets with projectiles. --- Cannon Shoot/cannon.py | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Cannon Shoot/cannon.py diff --git a/Cannon Shoot/cannon.py b/Cannon Shoot/cannon.py new file mode 100644 index 0000000..ec61a65 --- /dev/null +++ b/Cannon Shoot/cannon.py @@ -0,0 +1,70 @@ +from random import randrange +from turtle import * +from freegames import vector + +ball = vector(-200, -200) +speed = vector(0, 0) +targets = [] + +def tap(x, y): + "Respond to screen tap." + if not inside(ball): + ball.x = -199 + ball.y = -199 + speed.x = (x + 200) / 25 + speed.y = (y + 200) / 25 + +def inside(xy): + "Return True if xy within screen." + return -200 < xy.x < 200 and -200 < xy.y < 200 + +def draw(): + "Draw ball and targets." + clear() + + for target in targets: + goto(target.x, target.y) + dot(20, 'blue') + + if inside(ball): + goto(ball.x, ball.y) + dot(6, 'red') + + update() + +def move(): + "Move ball and targets." + if randrange(40) == 0: + y = randrange(-150, 150) + target = vector(200, y) + targets.append(target) + + for target in targets: + target.x -= 0.5 + + if inside(ball): + speed.y -= 0.35 + ball.move(speed) + + dupe = targets.copy() + targets.clear() + + for target in dupe: + if abs(target - ball) > 13: + targets.append(target) + + draw() + + for target in targets: + if not inside(target): + return + + ontimer(move, 50) + +setup(420, 420, 370, 0) +hideturtle() +up() +tracer(False) +onscreenclick(tap) +move() +done()