diff --git a/final_evaluation.md b/final_evaluation.md new file mode 100644 index 0000000..346da29 --- /dev/null +++ b/final_evaluation.md @@ -0,0 +1,89 @@ +##### Raport przygotowały: Sara Kowalska, Marta Roszak, Kinga Molik i Natalia Plitta + +##### Raportowany okres: ? + +##### Niniejszy raport poświęcony jest przekazaniu informacji na temat końcowego stanu projektu grupowego realizowanego na przedmiot Sztuczna Inteligencja w roku akademickim 2019/2020. + +W ramach projektu były realizowane 4 mini projekty: + +- "Rozpoznawanie talerzy" - Sara Kowalska +- "Ocenianie ciężkostrawności potraw" - Marta Roszak +- "Rozpoznawanie banknotów" - Kinga Molik +- "Polecanie dań" - Natalia Plitta + +## Integracja mini projektów w programie głównym ## + +Działanie projektów indywidualnych zostało opisane w odpowiednich osobnych raportach. Wszystkie 4 zostały zintegrowane w głównym programie w ten sam sposób. W oknie programu zostały umieszczone 4 przyciski uruchamiające poszczególne programy: + +![alt text](https://git.wmi.amu.edu.pl/s444412/DSZI_2020_Projekt/raw/master/Restaurant/okno_z_przyciskami.png) + +Naciśnięcie któregoś z nich wywołuje odpowiednią funkcję - *classify() / evaluate() / payment() / Tree_natalia()*, która wykonuje przykładowy ruch agenta prezentujący dane zagadnienie: + +```python + flag = True + clock = pygame.time.Clock() + while flag: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + quit() + button("Rozpoznawanie talerzy", 0, width + 1, 150, 48, light_beige, white, classify) + button("Ciężkostrawność dań", 150, width + 1, 150, 48, light_beige, white, evaluate) + button("Rozpoznawanie banknotów", 300, width + 1, 150, 48, light_beige, white, payment) + button("Polecanie dań", 450, width + 1, 150, 48, light_beige, white, Tree_natalia) + redrawWindow(window) + +``` + +Funkcja *button()* zdefiniowana jest następująco: + +```python +def button(msg, x, y, w, h, ic, ac, action=None): + mouse = pygame.mouse.get_pos() + click = pygame.mouse.get_pressed() + + if x+w > mouse[0] > x and y+h > mouse[1] > y: + pygame.draw.rect(window, ac, (x, y, w, h)) + if click[0] == 1 and action != None: + print("pressed") + action(1) + else: + pygame.draw.rect(window, ic, (x, y, w, h)) + + smallText = pygame.font.Font("freesansbold.ttf", 15) + words = [msg.split(' ')] + textSurf, textRect = text_objects(words[0][0], smallText) + textRect.center = ((x+(w/2)), (y+(h/4))) + window.blit(textSurf, textRect) + + textSurf, textRect = text_objects(words[0][1], smallText) + textRect.center = ((x + (w / 2)), (y + (3*h / 4))) + window.blit(textSurf, textRect) +``` + +Sczytywana jest tutaj pozycja myszki - "sprawdzane jest", na który przycisk kliknął użytkownik (?). Zdefiniowany jest również wygląd tekstu znajdującego się na przyciskach. + +Funkcja *button()* wywoływana jest też w funkcji *redrawWindow()*, która odpowiada za odświeżanie wyświetlanego okna: + +```python +def redrawWindow(surface): + surface.fill(beige) + bot.draw(surface) + kitchen.draw(surface) + for i in range(len(tables)): + tables[i].draw(surface) + for i in range(len(puddles)): + image = pygame.image.load(r'puddle.png') + image = pygame.transform.scale(image, (sizeBetween - 1, sizeBetween - 1)) + surface.blit(image, (puddles[i][0] * sizeBetween + 1, puddles[i][1] * sizeBetween + 1)) + + drawGrid(width, rows, surface) + button("Rozpoznawanie talerzy", 0, width + 1, 150, 48, light_beige, white) + button("Ciężkostrawność dań", 150, width + 1, 150, 48, light_beige, white) + button("Rozpoznawanie banknotów", 300, width + 1, 150, 48, light_beige, white) + button("Polecanie dań", 450, width + 1, 150, 48, light_beige, white) + + pygame.display.update() +``` + +Po bezawaryjnym wykonaniu funkcji - ruchu agenta aplikacja zostaje wyłączona. \ No newline at end of file