generated from mwc/project_game
This is my fourth commit. I fixed the issue I was having with the cars breaking apart.
I am very happy that I was able to fix this problem. I had to email you about this problem and you showed me how this could be completed by creating another class. This makes so much sense now as you could spawn one part of the car right behind the other to give the illusion that it is one car. I learned the new skill of using 2 different classes together when making the car 2 wide.
This commit is contained in:
BIN
__pycache__/car_back.cpython-312.pyc
Normal file
BIN
__pycache__/car_back.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
5
car_back.py
Normal file
5
car_back.py
Normal file
@@ -0,0 +1,5 @@
|
||||
class CarBack:
|
||||
character = 'O'
|
||||
|
||||
def __init__(self, position):
|
||||
self.position = position
|
||||
36
path.py
36
path.py
@@ -3,51 +3,25 @@ class Car:
|
||||
|
||||
def __init__(self, position):
|
||||
self.position = position
|
||||
self.next = None
|
||||
|
||||
#def play_turn(self, game):
|
||||
# lives = 5
|
||||
# width, height = game.board_size
|
||||
# if game.turn_number % 2 == 0:
|
||||
# x, y = self.position
|
||||
# if y == height - 1:
|
||||
# game.remove_agent(self)
|
||||
# else:
|
||||
# ship = game.get_agent_by_name('ship')
|
||||
# new_position = (x, y + 1)
|
||||
# if new_position == ship.position:
|
||||
# lives = lives-1
|
||||
# game.state["lives"] -=1
|
||||
# if game.state["lives"] == 0:
|
||||
# game.end()
|
||||
#else:
|
||||
# self.position = new_position
|
||||
|
||||
|
||||
def play_turn(self, game):
|
||||
lives = 3
|
||||
width, height = game.board_size
|
||||
if game.turn_number: #% 3 == 0:
|
||||
if game.turn_number % 3 == 0:
|
||||
x, y = self.position
|
||||
if x == width - 1:
|
||||
game.remove_agent(self)
|
||||
game.remove_agent(self.next)
|
||||
else:
|
||||
person = game.get_agent_by_name('person')
|
||||
new_position = (x+1, y)
|
||||
|
||||
# if game.turn_number % 2 == 1:
|
||||
# x, y = self.position
|
||||
#if x == width - 1:
|
||||
# game.remove_agent(self)
|
||||
# else:
|
||||
# person = game.get_agent_by_name('person')
|
||||
# new_position = (x-1, y)
|
||||
|
||||
|
||||
|
||||
|
||||
if new_position == person.position:
|
||||
lives = lives-1
|
||||
game.state["lives"] -=1
|
||||
if game.state["lives"] == 0:
|
||||
game.end()
|
||||
else:
|
||||
self.next.position = self.position
|
||||
self.position = new_position
|
||||
13
spawner.py
13
spawner.py
@@ -1,5 +1,6 @@
|
||||
from random import randint
|
||||
from path import Car
|
||||
from car_back import CarBack
|
||||
|
||||
class CarSpawner:
|
||||
display = False
|
||||
@@ -8,17 +9,11 @@ class CarSpawner:
|
||||
width, height = game.board_size
|
||||
game.state['score'] += 1
|
||||
if self.should_spawn_car(game.turn_number):
|
||||
#car = Car((randint(0, width - 1), 0))
|
||||
|
||||
#car = Car((0, randint(0, height - 1)))
|
||||
#car2 = Car((30,randint(0, height - 1)))
|
||||
#game.add_agent(car)
|
||||
#game.add_agent(car2)
|
||||
y = randint(0, height - 1)
|
||||
y = randint(1, height-1)
|
||||
car3 = Car((0, y))
|
||||
car4 = Car((1,y))
|
||||
car3.next = CarBack((1,y))
|
||||
game.add_agent(car3)
|
||||
game.add_agent(car4)
|
||||
game.add_agent(car3.next)
|
||||
|
||||
def should_spawn_car(self, turn_number):
|
||||
return randint(0, 1000) < turn_number
|
||||
Reference in New Issue
Block a user