# Slutprojekt programmering 2
Nu är det dags för ett sista projekt i programmeringskursen. Här får ni frihet att utveckla något som ni tycker verkar roligt och spännande, samt visa era kunskaper inom Java och objektorienterad programmering.

### Bedömning
I bedömningen kommer jag titta på:
* planering av projektet med hjälp av UML diagram
* komplexitet
* användning av de verktyg vi har lärt oss i kursen: filhantering, internetkommunikation, generiska klasser
* användning av objekt orienterad programmering
* kodstil
* utformning av interaktion med användaren
* programmets funktion
* felsökning och problemlösning
* utvärdering av programmet
### Idéer
Här är några förslag på olika idéer som kan göras både med grafik (med swing) eller som en ren konsol-applikation. Man får gärna komma med en helt egen idé, men kolla med Johan för att se om den är görbar!
Olika slags spel:
* snake
* memory
* breakout
* variant på RPG-spelet vi arbetade med tidigare
* rougelike med ascii-grafik, till exempel med [detta bibliotek](https://github.com/trystan/AsciiPanel)
Övriga projekt:
* todo-list
* anteckningsapp
* tränings-schema
* betting-system för vänner
* fantasy-football
### Planering
Innan ni börjar koda ska ni planera ert projekt med hjälp av UML-diagram. Planeringen är något ni ska lämna in tillsammans med koden. I planeringen ska det finnas:
* En kort beskrivning av vad projektet innebär
* En lista på features som är *krav* och som är *önskemål*
* Ett översiktligt UML-diagram över klasserna i projektet. Gör diagrammet för hand eller med ett digitalt verktyg, till exempel https://www.drawio.com/
### Tidsplan
| Vecka | Innehåll |
| -------- | -------- |
| 8 | Planering och UML-diagram |
| 9 | Sportlov |
| 10 | Eget arbete |
| 11 | Eget arbete + avstämning |
| 12 | Eget arbete |
| 13 | Deadline och redovisningar |