diff --git a/DataModels/Container.py b/DataModels/Container.py index d95d344..772706b 100644 --- a/DataModels/Container.py +++ b/DataModels/Container.py @@ -21,6 +21,10 @@ class Container(): def status(self): return [self.yellow, self.green, self.blue] + def is_full(self): + if self.yellow>0 or self.green>0 or self.blue>0: + return 1 + return 0 def add(self, trash): my_trash = [self.yellow, self.green, self.blue] diff --git a/DataModels/GC.py b/DataModels/GC.py index 2685f45..b9984bd 100644 --- a/DataModels/GC.py +++ b/DataModels/GC.py @@ -2,37 +2,28 @@ from DataModels.Cell import Cell from DataModels.Road import Road from DataModels.House import House from DataModels.Dump import Dump -from config import GRID_WIDTH, GRID_HEIGHT - -# PODAC TUTAJ X I Y DO MOVEMENT (ZAIMPORTOWAC TO NAJPIERW) - +from config import GRID_WIDTH, GRID_HEIGHT, DELAY +from utilities import movement, check_moves +from Traversal.DFS import DFS +import pygame class GC(Cell): moves_made = 0 def __init__(self, x, y, max_rubbish, yellow=0, green=0, blue=0): Cell.__init__(self, x, y, max_rubbish, yellow, green, blue) - - def check_moves(self, direction, environment, x = None, y = None): - if((x,y) == (None, None)): - x = self.x - y = self.y - - print(environment) - - return ([dir for dir in self.movement(environment)[0] if self.movement(environment)[0][dir] != (x,y) and dir != self.movement(environment)[1][direction]]) - + self.moves = [] + self.old_time = pygame.time.get_ticks() def move(self, direction, environment): - self.x, self.y = self.movement(environment)[0][direction] + self.x, self.y = movement(environment, self.x, self.y)[0][direction] self.update_rect(self.x, self.y) self.moves_made = self.moves_made + 1 - print(self.check_moves(direction, environment)) + print(check_moves(environment, self.x, self.y,direction)) def collect(self, enviromnent): x, y = [self.x, self.y] coordinates = [(x, y - 1), (x, y + 1), (x - 1, y), (x + 1, y)] - for coordinate in coordinates: if coordinate[0]<0 or coordinate[1]<0: continue @@ -43,8 +34,29 @@ class GC(Cell): if(type(item) == House or type(item) == Dump): item.return_trash(self) - self.update_image() def get_moves_made(self): - return self.moves_made \ No newline at end of file + return self.moves_made + def find_houses(self,enviromnent, house_count): + x = self.x + y = self.y + result = [] + for home in range(house_count): + avalible_moves = check_moves(enviromnent, x,y) + [x,y],result = DFS(enviromnent,avalible_moves,[[x,y]]) + self.moves.extend(result) + self.moves.reverse() + + + def make_actions_from_list(self,environment): + now = pygame.time.get_ticks() + if len(self.moves)==0 or now - self.old_time <= DELAY: + return + self.old_time = pygame.time.get_ticks() + if self.moves[-1] == "pick_garbage": + self.collect(environment) + self.moves.pop() + return + self.x, self.y = self.moves.pop() + self.update_rect(self.x,self.y) diff --git a/DataModels/House.py b/DataModels/House.py index 64dae2a..316e768 100644 --- a/DataModels/House.py +++ b/DataModels/House.py @@ -4,6 +4,7 @@ from DataModels.Cell import Cell class House(Cell): def __init__(self, x, y, max_rubbish, yellow=0, green=0, blue=0): Cell.__init__(self, x, y, max_rubbish, yellow, green, blue) + self.unvisited = True def return_trash(self, collector): self.container.yellow, self.container.green, self.container.blue = collector.container.add( diff --git a/Raports/SI_Raport_2.md b/Raports/SI_Raport_2.md new file mode 100644 index 0000000..6ee5132 --- /dev/null +++ b/Raports/SI_Raport_2.md @@ -0,0 +1,74 @@ +# Sztuczna inteligencja 2019 - Raport 2 + +**Czas trwania opisywanych prac:** 06.03.2018 - 26.03.2018 + +**Członkowie zespołu:** Anna Nowak, Magdalena Wilczyńska, Konrad Pierzyński, Michał Starski + +**Wybrany temat:** Inteligentna śmieciarka + +**Link do repozytorium projektu:** https://git.wmi.amu.edu.pl/s440556/SZI2019SmieciarzWmi + +## Pierwszy algorytm przeszukiwania mapy - DFS + +#### Implementacja + +Pierwszym podejściem naszej grupy do rozwiązania problemu była implementacja +algorytmu przeszukiwania drzewa w głąb - DFS (Wersja iteracyjna). +Aby zaimplementować ten algorytm, niezbędne było przygotowanie dla niego kilku +struktur pomocniczych dzięki którym będziemy mogli jasno zdefiniować warunki stopu i uzyskać satysfakcjonujące nas rozwiązanie. + +Do użytych struktur należą: + +- **Lista dwuwymiarowa przedstawiająca mapę w formie siatki po której można łatwo iterować** - Jeden stan takiej listy traktowaliśmy jako wierzchołek grafu +- **Stos wykonanych przez algorytm ruchów** - Używany do przechodzenia do kolejnych możliwych stanów jak i zapamiętania rozwiązania problemu. +- **Lista możliwych ruchów do wykonania przez agenta przy konkretnym stanie mapy** +- **Licznik głębokości na którą zszedł algorytm** - Zapobiega zajściu za głęboko w przypadku braku rozwiązania + +**Przebieg algorytmu**: + +- Dodaj do stosu pierwszy krok +- Dopóki stos nie jest pusty: + 1. Weź stan mapy ze stosu (operacja stack.pop()) + 2. Sprawdź warunek końca (Czy problem został rozwiązany ?) + - Jeżeli tak, zakończ algorytm + - Jeżeli nie, sprawdź czy głębokość przekroczyła 30 + 1. Jeżeli tak, zakończ algorytm informacją o braku rozwiązania + 2. Jeżeli nie, kontynuuj algorytm + +Rozwiązanie następuje wtedy, gdy wszystkie śmieci zostaną zebrane przez agenta. + +#### Obserwacje + +Przede wszystkim, algorytm przeszukiwania w głąb działa dla tego problemu +**zdecydowanie wolniej niż powinien**, przy jego działaniu łatwo wchodzić w głąb złej ścieżki, która nie doprowadzi nas do rozwiązania. Co prawda przy małej mapie algorytm radzi sobie z problemem, jednak z każdą kolejną większą +jest co raz gorzej. + +Problem można pokazać na przykładzie: + +Załóżmy, że hipotetyczne drzewo T wygląda w taki sposób: + +``` +a -- e +| +b +| +c +| +d +. +. - 100 wierzchołków +. +x +``` + +Naszym rozwiązaniem będzie doprowadzenie agenta z wierzchołka startowego **a** do wierzchołka końcowego **b**. DFS odwiedzi najpierw wierzchołki po kolei od a aż do x i dopiero później przyjdzie do e. Naturalnie można stwierdzić, że to nie jest sposób którego szukamy. Oczywiście 100 wierzchołków to mała liczba dla komputera, ale co jak będzie ich 1000, 10 000, lub 1 000 000 ? + +#### Podsumowanie + +Szukanie w głąb miałoby sens w innych przypadkach, na przykład gdybyśmy chcieli znaleźć możliwe wyniki w grze gdzie każda akcja pociąga za sobą kolejną, tworząc dość głęboki graf. + +Do szukania ścieżki po której ma poruszać się agent lepiej byłoby jednak przeszukiwać graf wszerz. + +#### Uruchamianie + +Aby uruchomić DFS na mapie Śmieciarza WMI, należy kliknąć **0**. diff --git a/Traversal/DFS.py b/Traversal/DFS.py index e54b09a..2efa0fd 100644 --- a/Traversal/DFS.py +++ b/Traversal/DFS.py @@ -1,9 +1,38 @@ -def DFS(grid, avaliable_movement, gc_moveset): - if(moveset[-1] == (1,4) or len(avaliable_movement) == 0): - return gc_moveset +from utilities import movement,check_moves +from DataModels.House import House +from DataModels.Container import Container +def DFS(grid, available_movement, gc_moveset, depth=0): + possible_goals = [] + a = gc_moveset[-1][0] + b = gc_moveset[-1][1] + possible_goals.append([a+1,b]) + possible_goals.append([a-1,b]) + possible_goals.append([a,b+1]) + possible_goals.append([a,b-1]) + house_in_area = False + for location in possible_goals: + try: + cell = grid[location[0]][location[1]] + if(type(cell) == House and cell.container.is_full and cell.unvisited): + cell.unvisited = False + house_in_area = True + break + except: + continue + if(house_in_area): + xy = gc_moveset[-1] + gc_moveset.append("pick_garbage") + return (xy, gc_moveset) + + if len(available_movement) == 0 or depth>30: + return x,y = gc_moveset[-1] - move = avaliable_movement.pop() - - ## TUTAJ ZAIMPORTOWAC MOVEMENT - \ No newline at end of file + for direction in available_movement: + x_next, y_next = movement(grid,x,y)[0][direction] + available_movement_next = check_moves(grid, x_next,y_next,direction) + gc_moveset_next = gc_moveset.copy() + gc_moveset_next.append([x_next,y_next]) + result = DFS(grid, available_movement_next, gc_moveset_next, depth+1) + if result!= None: + return result diff --git a/config.py b/config.py index 0b315ab..f41f6c1 100644 --- a/config.py +++ b/config.py @@ -2,6 +2,7 @@ import sys, random CELL_SIZE = 64 FPS = 60 +DELAY = 500 map = open( sys.argv[1], 'r' ) @@ -11,4 +12,4 @@ GC_X, GC_Y = [int(x) for x in map.readline().split()] WINDOW_HEIGHT = GRID_HEIGHT * CELL_SIZE WINDOW_WIDTH = GRID_WIDTH * CELL_SIZE -HOUSE_CAPACITY = random.randint(1, 11) \ No newline at end of file +HOUSE_CAPACITY = random.randint(1, 11) diff --git a/logs/houses_stats_20190327103421.csv b/logs/houses_stats_20190327103421.csv new file mode 100644 index 0000000..d3fadb6 --- /dev/null +++ b/logs/houses_stats_20190327103421.csv @@ -0,0 +1,63 @@ +House 1 plastic,House 1 glass,House 1 metal,House 2 plastic,House 2 glass,House 2 metal,House 3 plastic,House 3 glass,House 3 metal,House 4 plastic,House 4 glass,House 4 metal,House 5 plastic,House 5 glass,House 5 metal,House 6 plastic,House 6 glass,House 6 metal +8,4,10,0,0,1,8,9,10,1,7,7,8,5,7,8,2,1 +10,4,10,0,2,1,8,10,10,1,8,7,8,6,7,8,2,2 +10,4,10,0,3,2,10,10,10,1,9,8,10,6,7,9,3,4 +10,5,10,0,4,2,10,10,10,2,9,8,10,7,7,9,3,4 +10,5,10,0,4,3,10,10,10,2,10,8,10,7,9,9,3,4 +10,5,10,0,4,3,10,10,10,2,10,9,10,7,9,9,3,4 +10,5,10,0,4,4,10,10,10,2,10,9,10,7,10,9,4,5 +10,5,10,0,4,4,10,10,10,2,10,9,10,7,10,10,5,5 +10,5,10,2,5,4,10,10,10,3,10,9,10,7,10,10,5,6 +10,5,10,3,5,4,10,10,10,4,10,9,10,7,10,10,5,7 +10,5,10,3,6,4,10,10,10,6,10,9,10,10,10,10,6,7 +10,6,10,3,6,4,10,10,10,7,10,9,10,10,10,10,8,8 +10,7,10,3,8,5,10,10,10,8,10,10,10,10,10,10,8,9 +10,7,10,5,9,6,10,10,10,8,10,10,10,10,10,10,8,10 +10,7,10,6,9,6,10,10,10,9,10,10,10,10,10,10,8,10 +10,8,10,7,9,8,10,10,10,10,10,10,10,10,10,10,8,10 +10,9,10,8,9,10,10,10,10,10,10,10,10,10,10,10,8,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 +10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 diff --git a/logs/stats_20190327084138.csv b/logs/stats_20190327084138.csv new file mode 100644 index 0000000..135f53b --- /dev/null +++ b/logs/stats_20190327084138.csv @@ -0,0 +1,28 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +18,27,26,0/10,0/10,0/10,0 +22,28,29,0/10,0/10,0/10,0 +23,33,33,0/10,0/10,0/10,0 +25,36,36,0/10,0/10,0/10,0 +27,39,37,0/10,0/10,0/10,0 +31,41,41,0/10,0/10,0/10,0 +36,43,41,0/10,0/10,0/10,0 +40,47,45,0/10,0/10,0/10,0 +41,51,45,0/10,0/10,0/10,0 +41,52,46,0/10,0/10,0/10,0 +43,54,48,0/10,0/10,0/10,0 +45,54,49,0/10,0/10,0/10,0 +48,57,50,0/10,0/10,0/10,0 +49,58,54,0/10,0/10,0/10,0 +51,59,54,0/10,0/10,0/10,0 +52,59,54,0/10,0/10,0/10,0 +54,59,55,0/10,0/10,0/10,0 +56,60,57,0/10,0/10,0/10,0 +57,60,58,0/10,0/10,0/10,0 +57,60,58,0/10,0/10,0/10,0 +57,60,58,0/10,0/10,0/10,0 +57,60,58,0/10,0/10,0/10,0 +57,60,59,0/10,0/10,0/10,0 +59,60,59,0/10,0/10,0/10,0 +59,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327084420.csv b/logs/stats_20190327084420.csv new file mode 100644 index 0000000..2825482 --- /dev/null +++ b/logs/stats_20190327084420.csv @@ -0,0 +1,13 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +20,33,20,0/10,0/10,0/10,0 +26,34,22,0/10,0/10,0/10,0 +27,37,27,0/10,0/10,0/10,0 +28,37,30,0/10,0/10,0/10,0 +30,40,33,0/10,0/10,0/10,0 +32,41,36,0/10,0/10,0/10,0 +35,42,38,0/10,0/10,0/10,0 +37,44,40,0/10,0/10,0/10,0 +39,45,41,0/10,0/10,0/10,0 +40,47,43,0/10,0/10,0/10,0 +42,47,45,0/10,0/10,0/10,0 +48,48,47,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327085441.csv b/logs/stats_20190327085441.csv new file mode 100644 index 0000000..7ad6cbb --- /dev/null +++ b/logs/stats_20190327085441.csv @@ -0,0 +1,9 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +30,37,26,0/10,0/10,0/10,0 +34,39,27,0/10,0/10,0/10,0 +36,41,27,0/10,0/10,0/10,0 +40,43,29,0/10,0/10,0/10,0 +40,44,33,0/10,0/10,0/10,0 +40,45,34,0/10,0/10,0/10,0 +42,45,36,0/10,0/10,0/10,0 +43,46,38,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327085731.csv b/logs/stats_20190327085731.csv new file mode 100644 index 0000000..914c12c --- /dev/null +++ b/logs/stats_20190327085731.csv @@ -0,0 +1,4 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +21,37,28,0/10,0/10,0/10,0 +23,39,30,0/10,0/10,0/10,0 +25,40,30,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327085741.csv b/logs/stats_20190327085741.csv new file mode 100644 index 0000000..82e1890 --- /dev/null +++ b/logs/stats_20190327085741.csv @@ -0,0 +1,5 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +32,32,30,0/10,0/10,0/10,0 +33,34,33,0/10,0/10,0/10,0 +34,36,34,0/10,0/10,0/10,0 +37,39,35,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327085758.csv b/logs/stats_20190327085758.csv new file mode 100644 index 0000000..aa0aa79 --- /dev/null +++ b/logs/stats_20190327085758.csv @@ -0,0 +1,144 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +30,22,27,0/10,0/10,0/10,0 +33,27,29,0/10,0/10,0/10,0 +35,29,30,0/10,0/10,0/10,0 +35,34,32,0/10,0/10,0/10,0 +38,38,33,0/10,0/10,0/10,0 +40,41,33,0/10,0/10,0/10,0 +41,41,34,0/10,0/10,0/10,0 +43,43,36,0/10,0/10,0/10,0 +44,44,39,0/10,0/10,0/10,0 +47,45,41,0/10,0/10,0/10,0 +47,48,42,0/10,0/10,0/10,0 +47,48,45,0/10,0/10,0/10,0 +48,49,46,0/10,0/10,0/10,0 +49,49,46,0/10,0/10,0/10,0 +50,49,47,0/10,0/10,0/10,0 +50,49,47,0/10,0/10,0/10,0 +50,49,47,0/10,0/10,0/10,0 +50,50,48,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327090250.csv b/logs/stats_20190327090250.csv new file mode 100644 index 0000000..f7d7b9d --- /dev/null +++ b/logs/stats_20190327090250.csv @@ -0,0 +1,51 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +34,35,27,0/10,0/10,0/10,0 +36,37,27,0/10,0/10,0/10,0 +36,39,31,0/10,0/10,0/10,0 +38,41,31,0/10,0/10,0/10,0 +41,42,33,0/10,0/10,0/10,0 +44,42,33,0/10,0/10,0/10,0 +46,45,34,0/10,0/10,0/10,0 +46,47,36,0/10,0/10,0/10,0 +49,47,36,0/10,0/10,0/10,0 +49,47,38,0/10,0/10,0/10,0 +49,48,40,0/10,0/10,0/10,0 +50,49,40,0/10,0/10,0/10,0 +50,49,41,0/10,0/10,0/10,0 +50,49,41,0/10,0/10,0/10,0 +50,49,41,0/10,0/10,0/10,0 +50,50,41,0/10,0/10,0/10,0 +50,50,41,0/10,0/10,0/10,0 +50,50,44,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,47,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327090518.csv b/logs/stats_20190327090518.csv new file mode 100644 index 0000000..4a7187a --- /dev/null +++ b/logs/stats_20190327090518.csv @@ -0,0 +1,26 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +15,31,36,0/10,0/10,0/10,0 +19,36,39,0/10,0/10,0/10,0 +20,36,40,0/10,0/10,0/10,0 +24,38,40,0/10,0/10,0/10,0 +29,38,42,0/10,0/10,0/10,0 +32,38,45,0/10,0/10,0/10,0 +33,38,45,0/10,0/10,0/10,0 +33,39,46,0/10,0/10,0/10,0 +36,40,46,0/10,0/10,0/10,0 +38,40,46,0/10,0/10,0/10,0 +38,42,47,0/10,0/10,0/10,0 +39,44,49,0/10,0/10,0/10,0 +42,44,50,0/10,0/10,0/10,0 +42,45,50,0/10,0/10,0/10,0 +43,45,50,0/10,0/10,0/10,0 +43,46,50,0/10,0/10,0/10,0 +44,46,50,0/10,0/10,0/10,0 +44,46,50,0/10,0/10,0/10,0 +45,47,50,0/10,0/10,0/10,0 +45,49,50,0/10,0/10,0/10,0 +46,49,50,0/10,0/10,0/10,0 +47,50,50,0/10,0/10,0/10,0 +47,50,50,0/10,0/10,0/10,0 +48,50,50,0/10,0/10,0/10,0 +48,50,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327090823.csv b/logs/stats_20190327090823.csv new file mode 100644 index 0000000..d4709ad --- /dev/null +++ b/logs/stats_20190327090823.csv @@ -0,0 +1,9 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +35,27,43,0/10,0/10,0/10,0 +37,28,45,0/10,0/10,0/10,0 +37,32,45,0/10,0/10,0/10,0 +39,35,46,0/10,0/10,0/10,0 +39,37,46,0/10,0/10,0/10,0 +40,37,46,0/10,0/10,0/10,0 +42,39,46,0/10,0/10,0/10,0 +44,39,46,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327094837.csv b/logs/stats_20190327094837.csv new file mode 100644 index 0000000..4105401 --- /dev/null +++ b/logs/stats_20190327094837.csv @@ -0,0 +1,35 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +25,15,21,0/10,0/10,0/10,0 +27,19,23,0/10,0/10,0/10,0 +29,22,28,0/10,0/10,0/10,0 +29,25,28,0/10,0/10,0/10,0 +36,29,30,0/10,0/10,0/10,0 +37,35,31,0/10,0/10,0/10,0 +38,38,33,0/10,0/10,0/10,0 +38,38,34,0/10,0/10,0/10,0 +38,39,36,0/10,0/10,0/10,0 +41,43,36,0/10,0/10,0/10,0 +43,44,37,0/10,0/10,0/10,0 +45,46,39,0/10,0/10,0/10,0 +45,48,39,0/10,0/10,0/10,0 +46,49,42,0/10,0/10,0/10,0 +47,49,45,0/10,0/10,0/10,0 +48,49,45,0/10,0/10,0/10,0 +49,50,46,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,46,0/10,0/10,0/10,0 +50,50,47,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,49,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327095148.csv b/logs/stats_20190327095148.csv new file mode 100644 index 0000000..f9fbc88 --- /dev/null +++ b/logs/stats_20190327095148.csv @@ -0,0 +1,17 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +35,23,40,0/10,0/10,0/10,0 +36,28,40,0/10,0/10,0/10,0 +41,30,40,0/10,0/10,0/10,0 +43,31,42,0/10,0/10,0/10,0 +44,34,42,0/10,0/10,0/10,0 +45,36,46,0/10,0/10,0/10,0 +48,36,47,0/10,0/10,0/10,0 +48,38,47,0/10,0/10,0/10,0 +48,39,49,0/10,0/10,0/10,0 +48,42,49,0/10,0/10,0/10,0 +49,44,49,0/10,0/10,0/10,0 +50,46,49,0/10,0/10,0/10,0 +50,47,49,0/10,0/10,0/10,0 +50,48,50,0/10,0/10,0/10,0 +50,49,50,0/10,0/10,0/10,0 +50,49,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327095339.csv b/logs/stats_20190327095339.csv new file mode 100644 index 0000000..aa5def1 --- /dev/null +++ b/logs/stats_20190327095339.csv @@ -0,0 +1,10 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +27,34,21,0/10,0/10,0/10,0 +29,35,21,0/10,0/10,0/10,0 +31,36,22,0/10,0/10,0/10,0 +33,39,22,0/10,0/10,0/10,0 +34,44,23,0/10,0/10,0/10,0 +37,45,26,0/10,0/10,0/10,0 +38,45,27,0/10,0/10,0/10,0 +42,46,30,0/10,0/10,0/10,0 +42,47,33,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327095536.csv b/logs/stats_20190327095536.csv new file mode 100644 index 0000000..3f0f967 --- /dev/null +++ b/logs/stats_20190327095536.csv @@ -0,0 +1,8 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +13,25,23,0/10,0/10,0/10,0 +17,28,27,0/10,0/10,0/10,0 +20,33,30,0/10,0/10,0/10,0 +23,37,32,0/10,0/10,0/10,0 +25,38,35,0/10,0/10,0/10,0 +27,41,35,0/10,0/10,0/10,0 +28,42,37,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327095703.csv b/logs/stats_20190327095703.csv new file mode 100644 index 0000000..d483343 --- /dev/null +++ b/logs/stats_20190327095703.csv @@ -0,0 +1,8 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +25,8,17,0/10,0/10,0/10,0 +28,9,18,0/10,0/10,0/10,0 +32,10,18,0/10,0/10,0/10,0 +35,12,21,0/10,0/10,0/10,0 +37,13,23,0/10,0/10,0/10,0 +39,16,24,0/10,0/10,0/10,0 +40,20,26,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327095726.csv b/logs/stats_20190327095726.csv new file mode 100644 index 0000000..3929bf9 --- /dev/null +++ b/logs/stats_20190327095726.csv @@ -0,0 +1,7 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +21,18,22,0/10,0/10,0/10,0 +22,20,25,0/10,0/10,0/10,0 +25,22,31,0/10,0/10,0/10,0 +25,27,35,0/10,0/10,0/10,0 +28,29,36,0/10,0/10,0/10,0 +31,32,39,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327100036.csv b/logs/stats_20190327100036.csv new file mode 100644 index 0000000..913e169 --- /dev/null +++ b/logs/stats_20190327100036.csv @@ -0,0 +1,6 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +39,20,30,0/10,0/10,0/10,0 +41,21,30,0/10,0/10,0/10,0 +42,22,32,0/10,0/10,0/10,0 +43,23,35,0/10,0/10,0/10,0 +45,25,37,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327100109.csv b/logs/stats_20190327100109.csv new file mode 100644 index 0000000..115f4c3 --- /dev/null +++ b/logs/stats_20190327100109.csv @@ -0,0 +1,3 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +21,23,5,0/10,0/10,0/10,0 +21,24,5,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327100350.csv b/logs/stats_20190327100350.csv new file mode 100644 index 0000000..32c18d4 --- /dev/null +++ b/logs/stats_20190327100350.csv @@ -0,0 +1,31 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +33,26,21,0/10,0/10,0/10,0 +35,28,23,0/10,0/10,0/10,0 +39,28,27,0/10,0/10,0/10,0 +40,28,32,0/10,0/10,0/10,0 +41,31,34,0/10,0/10,0/10,0 +42,32,35,0/10,0/10,0/10,0 +45,32,35,0/10,0/10,0/10,0 +47,34,36,0/10,0/10,0/10,0 +47,34,37,0/10,0/10,0/10,0 +47,34,40,0/10,0/10,0/10,0 +48,36,41,0/10,0/10,0/10,0 +48,37,43,0/10,0/10,0/10,0 +49,39,46,0/10,0/10,0/10,0 +49,40,47,0/10,0/10,0/10,0 +49,40,48,0/10,0/10,0/10,0 +50,40,49,0/10,0/10,0/10,0 +50,42,50,0/10,0/10,0/10,0 +50,42,50,0/10,0/10,0/10,0 +50,44,50,0/10,0/10,0/10,0 +50,45,50,0/10,0/10,0/10,0 +50,45,50,0/10,0/10,0/10,0 +50,45,50,0/10,0/10,0/10,0 +50,45,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 +50,46,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327100454.csv b/logs/stats_20190327100454.csv new file mode 100644 index 0000000..9970f6f --- /dev/null +++ b/logs/stats_20190327100454.csv @@ -0,0 +1,14 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +29,15,46,0/10,0/10,0/10,0 +31,20,46,0/10,0/10,0/10,0 +33,20,46,0/10,0/10,0/10,0 +35,23,47,0/10,0/10,0/10,0 +37,25,47,0/10,0/10,0/10,0 +38,27,47,0/10,0/10,0/10,0 +39,31,47,0/10,0/10,0/10,0 +40,31,47,0/10,0/10,0/10,0 +41,32,47,0/10,0/10,0/10,0 +42,34,47,0/10,0/10,0/10,0 +45,38,48,0/10,0/10,0/10,0 +48,41,48,0/10,0/10,0/10,0 +48,42,49,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327100523.csv b/logs/stats_20190327100523.csv new file mode 100644 index 0000000..165c3a5 --- /dev/null +++ b/logs/stats_20190327100523.csv @@ -0,0 +1,692 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +26,15,30,0/10,0/10,0/10,0 +28,19,31,0/10,0/10,0/10,0 +31,24,37,0/10,0/10,0/10,0 +33,27,41,0/10,0/10,0/10,0 +34,29,41,0/10,0/10,0/10,0 +35,31,42,0/10,0/10,0/10,0 +37,34,44,0/10,0/10,0/10,0 +38,36,44,0/10,0/10,0/10,0 +38,38,46,0/10,0/10,0/10,0 +38,38,46,0/10,0/10,0/10,0 +39,40,47,0/10,0/10,0/10,0 +41,41,48,0/10,0/10,0/10,0 +41,45,48,0/10,0/10,0/10,0 +42,46,49,0/10,0/10,0/10,0 +44,49,49,0/10,0/10,0/10,0 +45,49,49,0/10,0/10,0/10,0 +47,49,49,0/10,0/10,0/10,0 +48,49,49,0/10,0/10,0/10,0 +49,49,50,0/10,0/10,0/10,0 +50,49,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 +50,50,50,0/10,0/10,0/10,0 diff --git a/logs/stats_20190327103421.csv b/logs/stats_20190327103421.csv new file mode 100644 index 0000000..0a249aa --- /dev/null +++ b/logs/stats_20190327103421.csv @@ -0,0 +1,63 @@ +Plastic left,Glass left,Metal left,GC plastic,GC glass,GC metal,Total collected +33,27,36,0/10,0/10,0/10,0 +35,32,37,0/10,0/10,0/10,0 +40,35,41,0/10,0/10,0/10,0 +41,38,41,0/10,0/10,0/10,0 +41,39,44,0/10,0/10,0/10,0 +41,39,45,0/10,0/10,0/10,0 +41,40,48,0/10,0/10,0/10,0 +42,41,48,0/10,0/10,0/10,0 +45,42,49,0/10,0/10,0/10,0 +47,42,50,0/10,0/10,0/10,0 +49,47,50,0/10,0/10,0/10,0 +50,50,51,0/10,0/10,0/10,0 +51,53,54,0/10,0/10,0/10,0 +53,54,56,0/10,0/10,0/10,0 +55,54,56,0/10,0/10,0/10,0 +57,55,58,0/10,0/10,0/10,0 +58,56,60,0/10,0/10,0/10,0 +60,58,60,0/10,0/10,0/10,0 +60,58,60,0/10,0/10,0/10,0 +60,59,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 +60,60,60,0/10,0/10,0/10,0 diff --git a/main.py b/main.py index a251a3f..7cb7292 100755 --- a/main.py +++ b/main.py @@ -16,7 +16,7 @@ from DataModels.GC import GC pygame.init() pygame_sprites = pygame.sprite.Group() - +house_count=0 FPS_CLOCK = pygame.time.Clock() GAME_WINDOW = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), 0, 32) @@ -54,6 +54,7 @@ for y in map.readlines(): elif x is 'H': map_objects[x_coord][y_coord] = generate(x)( x_coord, y_coord, HOUSE_CAPACITY, yellow, green, blue) + house_count+=1 elif x is 'B': map_objects[x_coord][y_coord] = generate( x)(x_coord, y_coord, 100, "Dump_Blue") @@ -72,7 +73,7 @@ for line in map_objects: for item in line: pygame_sprites.add(item) -gc = GC(GC_X, GC_Y, 2) +gc = GC(GC_X, GC_Y, 200) print("GC: " + str(GC_X) + str(GC_Y)) pygame_sprites.add(gc) @@ -93,7 +94,10 @@ while True: gc.move("right", map_objects) elif event.key == pygame.K_SPACE: gc.collect(map_objects) + elif event.key == pygame.K_0: + gc.find_houses(map_objects,house_count) + gc.make_actions_from_list(map_objects) pygame_sprites.update() pygame_sprites.draw(GAME_WINDOW) diff --git a/prolog/basic_rules.pl b/prolog/basic_rules.pl new file mode 100644 index 0000000..a59a2d0 --- /dev/null +++ b/prolog/basic_rules.pl @@ -0,0 +1,22 @@ +:- [house_positions]. + +check_position(X, Y):- + collectable_object(Z,X,Y), + write(Z),nl. + +full(Collectable_object, Material) :- + contains(Collectable_object, Material,10). + +contains(Collectable_object, Material):- + contains(Collectable_object,Material,Y), + Y>0. + +contains(Collectable_object) :- + contains(Collectable_object, paper); + contains(Collectable_object, glass); + contains(Collectable_object, metal). + +full(Collectable_object) :- + full(Collectable_object, paper), + full(Collectable_object, metal), + full(Collectable_object, glass). diff --git a/prolog/house_positions.pl b/prolog/house_positions.pl new file mode 100644 index 0000000..f61b83a --- /dev/null +++ b/prolog/house_positions.pl @@ -0,0 +1,9 @@ +collectable_object(landfill, 0, 0). +collectable_object(landfill, 1, 0). +collectable_object(landfill, 2, 0). +collectable_object(house, 8, 6). +collectable_object(house, 6, 8). +collectable_object(house, 2, 6). +collectable_object(house, 8, 8). +collectable_object(house, 9, 2). +collectable_object(house, 5, 3). diff --git a/utilities.py b/utilities.py index d412958..410f34c 100644 --- a/utilities.py +++ b/utilities.py @@ -1,3 +1,5 @@ +from config import GRID_WIDTH, GRID_HEIGHT +from DataModels.Road import Road def movement(environment, x ,y): movement = { "right": (x + 1, y) if x + 1 < GRID_WIDTH and type(environment[x + 1][y]) == Road else (x, y), @@ -13,4 +15,9 @@ def movement(environment, x ,y): "down": "up" } - return (movement, forbidden_movement) \ No newline at end of file + return (movement, forbidden_movement) + +def check_moves(environment, x,y,direction=None): + if direction == None: + return ([dir for dir in movement(environment, x, y)[0] if movement(environment, x,y)[0][dir] != (x,y)]) + return ([dir for dir in movement(environment, x, y)[0] if movement(environment, x,y)[0][dir] != (x,y) and dir != movement(environment,x,y)[1][direction]])