uwzględnienie pogody + komentarze

This commit is contained in:
xkamikoo 2020-06-04 20:23:05 +02:00
parent d8382f05f6
commit c78b079d89

View File

@ -2,16 +2,23 @@ import time
header = ["hydration", "weeds", "empty", "ready", "TODO"]
work = ["Podlac", "Odchwascic", "Zasadzic", "Zebrac"]
order = [3, 1, 2, 0]
# ustalenie kolejnosci czynnosci
# ustawienie kolejnosci trybow na podstawie pogody
# 3 - zebranie
# 1 - odchwaszczenie
# 2 - zasadzenie
# 0 - podlanie
def set_order(pogoda):
if pogoda == 1:
order = [3, 1, 2]
else:
order = [3, 1, 2, 0]
return order
# przetłumaczenie numerka (0-8)
# nawodnienie, chwasty, puste_pole, gotowe_do_zbioru
def translate(field):
if field == 0:
return [0, 0, 1, 0]
@ -35,6 +42,9 @@ def translate(field):
print("Błąd: Zły numer pola.")
# TWORZENIE DRZEWA
# liczenie ilości prac do wykonania
def class_counts(rows):
counts = {}
@ -179,6 +189,9 @@ def print_leaf(counts):
return probs
class main():
def __init__(self, traktor, field, ui, path):
self.traktor = traktor
@ -188,6 +201,7 @@ class main():
self.best_action = 0
def main(self):
# tworzymy zbior uczacy, w ktorym podajemy wszystkie mozliwe pola i czynnosci
training_data = [[0, 0, 1, 0, "Zasadzic"],
@ -202,27 +216,22 @@ class main():
self.tree = build_tree(training_data)
print_tree(self.tree)
print("------------------")
print("TEST:")
# for i in range(len(training_data)):
# print("Przewidziania czynnosc: %s Czynnosc: %s"
# % (print_leaf(classify(translate(i), self.tree)), training_data[i][-1]))
# if training_data[i][-1] in self.work_field(classify(translate(i), self.tree)):
# continue
# else:
# print("Testowanie zakonczone niepowodzeniem")
# break
print("Przewidziania czynnosc: %s Czynnosc: Zasadzic"
% print_leaf(classify(translate(4), self.tree)))
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
% print_leaf(classify(translate(5), self.tree)))
print("Przewidziania czynnosc: %s Czynnosc: Odchwascic"
% print_leaf(classify(translate(7), self.tree)))
# ustalamy kolejnosc
order = set_order(self.field.get_pogoda_value())
for action in order:
self.traktor.set_mode(action)
self.search_field()
self.traktor.set_mode(action) # ustawiamy tryb traktorowi
self.search_field() # szukamy pól
print("Koniec roboty")
@ -234,14 +243,14 @@ class main():
return works
def search_field(self):
matrix = self.field.get_matrix()
matrix = self.field.get_matrix() # pobieramy pole
for i in range(len(matrix)):
for j in range(len(matrix[i])):
print("Pole (%d,%d) Przewidziania czynnosc: %s"
% (i, j, print_leaf(classify(translate(matrix[i][j]), self.tree))))
if work[self.traktor.get_mode()] in self.work_field(classify(translate(matrix[i][j]), self.tree)):
% (i, j, print_leaf(classify(translate(matrix[i][j]), self.tree)))) # przewidujemy czynność za pomocą drzewa
if work[self.traktor.get_mode()] in self.work_field(classify(translate(matrix[i][j]), self.tree)): # jezeli zgadza sie z aktualnym trybem:
print("Zgodna z aktualnym trybem, czynnosc wykonywana")
self.path.find_path(self.traktor, self.field, self.ui, [j, i])
self.ui.update()
self.path.find_path(self.traktor, self.field, self.ui, [j, i]) # szukamy sciezki
self.ui.update() # update'ujemy UI
time.sleep(0.5)