# Sztuczna Inteligencja **Temat projektu:** Inteligenta Śmieciarka **Zespół:** Kacper Borkowski, Adam Borowski, Adam Osiowy --- ## 1. Ogólne działanie: ![gif](resources/screenShots/gifProjektu.gif) --- ## 2. Struktura katalogów: ![katalogi](resources/screenShots/strukturaKatalogu.png) **Resources**: - _plansza_ - folder zawierający zdjęcia niezbędne do generowania planszy - domy, jezioro, pojemniki, wysypisko, - _śmieci_ - zawiera podfoldery z klaysifkacją zdjęć śmieci, - _śmieci w kontenerach_ - folder, który będzie zawierał posegregowane już smieci **Pliki**: **[game.py](game.py)** - plik zawierający całą funkcjonalność projektu: - główna pętla programu, - tworzenie planszy, - tworzenie i usytuowanie obiektów z katalogu [modeli](modele.py), - generowanie tekstowej interpretacji zebranej wiedzy **[main.py](main.py)** - klasa odpowiedzialna za uruchomienie programu **[modele.py](modele.py)** - zawiera klasy aplikacji **[requirements.txt](requirements.txt)** - posiada biblioteki niezbędne do uruchomienia programu, które instalujemy za pomocą poniższego polecenia: ``` pip install -r requirements.txt ``` --- ## 3. Opis funkcjonalności programu: * śmieciarka porusza się w losowy sposób po planszy 15 x 15 (koloruje na niebiesko przebytą trasę) ![ruch śmieciarki](resources/screenShots/randMove.png) * domy generowane są losowo na mapie z pominięciem kolizji z innymi obiektami ![generowanie_domów](resources/screenShots/wspolrzedneDomow.png) * pozycja wysypiska, przeszkody (jeziorko) i kontenerów jest statyczna ![statyczna_pozycja](resources/screenShots/statycznaPozycja.png) * w kontenerach przechowywane będą posegregowane, odpowiednio według kategorii, zdjęcia śmieci * zdjęcia śmieci przydzielane są w sposób losowy do każdego z domów ![losowanie_śmieci](resources/screenShots/wyborSmieci.png) * śmieciarka zbiera śmieci po najechaniu na pozycję danego domu * po każdym uruchomieniu programu tworzona jest struktura katalogów dla posegregowanych śmieci ![tworzenie_struktury](resources/screenShots/tworzenieStrukturyKatalogow.png) * śmieciarka sprawdza w każdym ruchu czy nie dojdzie do kolizji z innym obiektem lub nie wyjedzie poza planszę ![sprawdzanie_kolizcji](resources/screenShots/sprawdzanieKolizji.png) * po prawej stronie wypisywane są aktualne, najważniejsze informacje ![wiedza](resources/screenShots/wiedzaPoPrawejStronie.png) * każdy obiekt na planszy posiada atrybuty odpowiedzalne za przechowywanie wiedzy o danym obiekcie np.: obiekt śmieciarka przechowuje informacje o odwiedzonych domach ![atrybuty](resources/screenShots/atrybutySmieciarki.png)