diff --git a/021/ball.py b/022/ball.py similarity index 83% rename from 021/ball.py rename to 022/ball.py index 7f09e45..587197d 100644 --- a/021/ball.py +++ b/022/ball.py @@ -6,10 +6,11 @@ class Ball(Turtle): super().__init__() self.shape("circle") self.color("white") + self.speed("fastest") self.pu() + self.move_speed = 0.1 self.angle = random.randint(0,45) - self.angle = 50 self.setheading(self.angle) print(self.angle) @@ -22,6 +23,6 @@ class Ball(Turtle): self.setheading(self.angle) def bounce_paddle(self): - self.angle = -self.angle + self.angle = 180 - self.angle self.setheading(self.angle) diff --git a/021/game.py b/022/game.py similarity index 62% rename from 021/game.py rename to 022/game.py index 1561fa8..e9b0d4a 100644 --- a/021/game.py +++ b/022/game.py @@ -1,6 +1,8 @@ from turtle import Turtle, Screen from paddle import Paddle from ball import Ball +from score import Score +import time class GameManager(): BOARD_WIDTH=800 @@ -21,6 +23,9 @@ class GameManager(): self.right_paddle = Paddle(350) self.left_paddle = Paddle(-370) + self.right_score = Score(30) + self.left_score = Score(-30) + self.ball = Ball() def draw_delimiter(self): @@ -44,13 +49,31 @@ class GameManager(): self.control_paddle() self.ball.move() - if abs(self.ball.xcor()) >= 400: + if self.ball.xcor() > 400: self.game_on = False + self.left_score.increment() + self.left_score.update() + + if self.ball.xcor() < -400: + self.game_on = False + self.right_score.increment() + self.right_score.update() + + if self.game_on == False: + self.ball.clear() + self.ball = Ball() + self.right_paddle.reset_position(350) + self.left_paddle.reset_position(-370) + self.game_on = True if abs(self.ball.ycor()) > 280: self.ball.bounce_wall() - - print(self.ball.ycor()) + + if (abs(self.ball.xcor() - self.right_paddle.xcor()) <= 20 and abs(self.ball.ycor() - self.right_paddle.ycor()) < 50) or (abs(self.ball.xcor() - self.left_paddle.xcor()) <= 20 and abs(self.ball.ycor() - self.left_paddle.ycor()) < 50): + self.ball.bounce_paddle() + self.ball.move_speed = self.ball.move_speed * 0.1 + + time.sleep(self.ball.move_speed) def control_paddle(self): self.screen.listen() diff --git a/021/main.py b/022/main.py similarity index 70% rename from 021/main.py rename to 022/main.py index 7518736..f111978 100644 --- a/021/main.py +++ b/022/main.py @@ -1,9 +1,7 @@ from game import GameManager from paddle import Paddle -import time game = GameManager() -while game.game_on: +while game.game_on == True: game.game_round() - time.sleep(0.1) game.screen.exitonclick() \ No newline at end of file diff --git a/021/paddle.py b/022/paddle.py similarity index 75% rename from 021/paddle.py rename to 022/paddle.py index b011677..e85853e 100644 --- a/021/paddle.py +++ b/022/paddle.py @@ -8,7 +8,10 @@ class Paddle(Turtle): self.shapesize(stretch_wid=5, stretch_len=1) self.color("white") self.pu() - self.teleport(x=x_pos, y=0) + self.teleport(x=x_pos, y=0) + + def reset_position(self, x_pos): + self.teleport(x=x_pos, y=0) def up(self): self.goto(x=self.xcor(), y=self.ycor()+20) diff --git a/022/score.py b/022/score.py new file mode 100644 index 0000000..b26d4fd --- /dev/null +++ b/022/score.py @@ -0,0 +1,18 @@ +from turtle import Turtle + +class Score(Turtle): + def __init__(self, x_pos): + super().__init__() + self.score = 0 + self.color("white") + self.hideturtle() + self.pu() + self.goto(x=x_pos, y=270) + self.write(self.score, move=False, align='center', font=('Arial', 24, 'normal')) + + def increment(self): + self.score += 1 + + def update(self): + self.clear() + self.write(self.score, move=False, align='center', font=('Arial', 24, 'normal')) \ No newline at end of file