traktor porusza sie po scieszce bfs i nawadnia na sztywno pole
This commit is contained in:
parent
eb5556e514
commit
1578dd28f9
9
App.py
9
App.py
@ -21,7 +21,7 @@ pole.draw_grid() #musi byc tutaj wywołane ponieważ inicjalizuje sloty do slown
|
|||||||
ui=Ui.Ui(screen)
|
ui=Ui.Ui(screen)
|
||||||
#Tractor creation
|
#Tractor creation
|
||||||
traktor_slot = pole.get_slot_from_cord((0, 0))
|
traktor_slot = pole.get_slot_from_cord((0, 0))
|
||||||
traktor = Tractor.Tractor(traktor_slot, screen, Osprzet.plug,clock)
|
traktor = Tractor.Tractor(traktor_slot, screen, Osprzet.opryskiwacz,clock)
|
||||||
|
|
||||||
|
|
||||||
def init_demo(): #Demo purpose
|
def init_demo(): #Demo purpose
|
||||||
@ -37,8 +37,13 @@ def init_demo(): #Demo purpose
|
|||||||
ui.render_text_to_console(string_to_print="Przejazd inicjalizujacy- traktor sprawdza poziom nawodnienia")
|
ui.render_text_to_console(string_to_print="Przejazd inicjalizujacy- traktor sprawdza poziom nawodnienia")
|
||||||
traktor.initial_move(pole)
|
traktor.initial_move(pole)
|
||||||
traktor.reset_pos(pole)
|
traktor.reset_pos(pole)
|
||||||
|
bfsRoot = Tractor.BFS({"x": 0, "y": 0, "direction": "E", "hydradeIndex": traktor.slot_hydrate_dict})
|
||||||
|
bfsRoot.reverse()
|
||||||
|
print(bfsRoot)
|
||||||
|
# ui.render_text(string_to_print="traktor porusza się ścieżką bfs")
|
||||||
|
traktor.move_by_root(bfsRoot, pole, traktor.irrigateSlot)
|
||||||
start_flag=False
|
start_flag=False
|
||||||
demo_move()
|
# demo_move()
|
||||||
old_info=get_info(old_info)
|
old_info=get_info(old_info)
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
|
2
Slot.py
2
Slot.py
@ -51,4 +51,6 @@ class Slot:
|
|||||||
|
|
||||||
def print_status(self):
|
def print_status(self):
|
||||||
return f"wspolrzedne: (X:{self.x_axis} Y:{self.y_axis}) "+self.plant.report_status()
|
return f"wspolrzedne: (X:{self.x_axis} Y:{self.y_axis}) "+self.plant.report_status()
|
||||||
|
def irrigatePlant(self):
|
||||||
|
self.plant.stan.nawodnienie = 100
|
||||||
|
|
19
Tractor.py
19
Tractor.py
@ -72,7 +72,12 @@ def BFS(istate):
|
|||||||
elem = fringe.pop(0)
|
elem = fringe.pop(0)
|
||||||
|
|
||||||
if goalTest(elem.state["hydradeIndex"]):
|
if goalTest(elem.state["hydradeIndex"]):
|
||||||
return elem #TODO ciąg akcji zbudowany z wykorzystaniem pól parent i action
|
x = elem
|
||||||
|
tab = []
|
||||||
|
while x.parent != None:
|
||||||
|
tab.append(x.action)
|
||||||
|
x = x.parent
|
||||||
|
return tab
|
||||||
|
|
||||||
explored.append(elem)
|
explored.append(elem)
|
||||||
|
|
||||||
@ -202,6 +207,16 @@ class Tractor:
|
|||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
quit()
|
quit()
|
||||||
|
def move_by_root(self, root, pole, action):
|
||||||
|
for move in root:
|
||||||
|
if move == 'forward':
|
||||||
|
self.move_forward(pole)
|
||||||
|
if move == 'right':
|
||||||
|
self.turn_right()
|
||||||
|
if move == 'left':
|
||||||
|
self.turn_left()
|
||||||
|
action()
|
||||||
|
self.clock.tick(3)
|
||||||
|
|
||||||
#to tak zrobiłam już na później, może się przyda
|
#to tak zrobiłam już na później, może się przyda
|
||||||
def change_osprzet(self, new_osprzet):
|
def change_osprzet(self, new_osprzet):
|
||||||
@ -217,4 +232,6 @@ class Tractor:
|
|||||||
print("- Typ:", akcja.typ)
|
print("- Typ:", akcja.typ)
|
||||||
else:
|
else:
|
||||||
print("Brak akcji przypisanych do tego sprzętu.")
|
print("Brak akcji przypisanych do tego sprzętu.")
|
||||||
|
def irrigateSlot(self):
|
||||||
|
self.slot.irrigatePlant()
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
CUBE_SIZE = 64
|
CUBE_SIZE = 64
|
||||||
NUM_X = 20
|
NUM_X = 5
|
||||||
NUM_Y = 12
|
NUM_Y = 3
|
||||||
|
|
||||||
#returns true if tractor can move to specified slot
|
#returns true if tractor can move to specified slot
|
||||||
def isValidMove(x, y):
|
def isValidMove(x, y):
|
||||||
|
Loading…
Reference in New Issue
Block a user