File tree 6 files changed +58
-8
lines changed
6 files changed +58
-8
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ class Scoreboard(Turtle):
8
8
def __init__ (self ) -> None :
9
9
super ().__init__ ()
10
10
self .score = 0
11
- self .color ("White " )
11
+ self .color ("white " )
12
12
self .penup ()
13
13
self .goto (0 ,270 )
14
14
self .hideturtle ()
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ class Scoreboard(Turtle):
7
7
8
8
def __init__ (self ) -> None :
9
9
super ().__init__ ()
10
- self .color ("White " )
10
+ self .color ("white " )
11
11
self .penup ()
12
12
self .l_score = 0
13
13
self .r_score = 0
Original file line number Diff line number Diff line change 8
8
class CarManager :
9
9
def __init__ (self ) -> None :
10
10
self .all_cars = []
11
+ self .car_speed = STARTING_MOVE_DISTANCE
11
12
12
13
def create_car (self ):
13
14
random_chance = random .randint (1 , 6 )
14
15
if random_chance == 1 :
15
16
new_car = Turtle ("square" )
16
- new_car .shapesize (stretch_wid = 2 , stretch_len = 1 )
17
+ new_car .shapesize (stretch_wid = 1 , stretch_len = 2 )
17
18
new_car .penup ()
18
19
new_car .color (random .choice (COLORS ))
19
20
random_y = random .randint (- 250 , 250 )
@@ -22,4 +23,7 @@ def create_car(self):
22
23
23
24
def move_car (self ):
24
25
for car in self .all_cars :
25
- car .backward (STARTING_MOVE_DISTANCE )
26
+ car .backward (self .car_speed )
27
+
28
+ def level_up (self ):
29
+ self .car_speed += MOVE_INCREMENT
Original file line number Diff line number Diff line change @@ -9,10 +9,20 @@ def __init__(self) -> None:
9
9
super ().__init__ ()
10
10
self .shape ("turtle" )
11
11
self .penup ()
12
- self .goto ( STARTING_POSITION )
12
+ self .go_starting_position ( )
13
13
self .color ("red" )
14
14
self .setheading (90 )
15
15
16
16
def go_up (self ):
17
17
new_y = self .ycor () + MOVE_DISTANCE
18
- self .goto (self .xcor (), new_y )
18
+ self .goto (self .xcor (), new_y )
19
+
20
+ def is_at_finish_line (self ):
21
+ if self .ycor () > FINISH_LINE_Y :
22
+ self .go_starting_position ()
23
+ return True
24
+ else :
25
+ return False
26
+
27
+ def go_starting_position (self ):
28
+ self .goto (STARTING_POSITION )
Original file line number Diff line number Diff line change 24
24
25
25
car_manager .create_car ()
26
26
car_manager .move_car ()
27
+
28
+ # Detect collision with the car
29
+ for car in car_manager .all_cars :
30
+ if car .distance (player ) < 20 :
31
+ scoreboard .game_over ()
32
+ game_is_on = False
33
+
34
+ # Detect car turtle reaches finished line
35
+ if player .is_at_finish_line ():
36
+ scoreboard .increase_score ()
37
+ scoreboard .update_scoreboard ()
38
+ car_manager .level_up ()
39
+ player .go_starting_position ()
40
+
27
41
28
42
29
43
Original file line number Diff line number Diff line change
1
+ from turtle import Turtle
2
+
1
3
FONT = ("Courier" , 24 , "normal" )
4
+ ALIGNMENT = "center"
2
5
3
- class Scoreboard :
4
- pass
6
+ class Scoreboard (Turtle ):
7
+ def __init__ (self ) -> None :
8
+ super ().__init__ ()
9
+ self .score = 0
10
+ self .color ("black" )
11
+ self .penup ()
12
+ self .goto (0 ,270 )
13
+ self .hideturtle ()
14
+ self .update_scoreboard ()
15
+
16
+ def update_scoreboard (self ):
17
+ self .write (f"Score:{ self .score } " , align = ALIGNMENT , font = FONT )
18
+
19
+ def increase_score (self ):
20
+ self .score += 1
21
+ self .clear ()
22
+ self .update_scoreboard ()
23
+
24
+ def game_over (self ):
25
+ self .goto (0 ,0 )
26
+ self .write (f"GAME OVER" , align = ALIGNMENT , font = FONT )
You can’t perform that action at this time.
0 commit comments