71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
# 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) |