Kmom10: Projekt och examination
#Projektidé och upplägg

Du ska skapa sidan “BlackOps”, som är ett högkvarter för superhjälteorganisationen Martel.
På hemsidan tar du på dig rollen som Fick Nury, Martel’s strateg. Ditt jobb är att välja ut vilka hjältar som ska bege sig ut på vilka uppdrag och besegra skurkar.
#Projektspecifikation
Utveckla och leverera projektet enligt följande specifikationen. Saknas info i specen så kan du själv välja väg, dokumentera dina val i redovisningstexten.
De tre första kraven är obligatoriska och måste lösas för att få godkänt på uppgiften. De tre sista kraven är optionella krav. Lös de optionella kraven för att samla poäng och därmed nå högre betyg.
Varje krav ger max 10 poäng, totalt är det 60 poäng.
Placera din kod i katalogen me/kmom10/blackops
. Programmet som startar spelet skall heta app.py
. Du behöver även ha app.cgi
så det funkar på studentservern.
#Krav 1 Innehåll
Det ska finnas två olika typer av karaktärer. Karaktärerna kan skapas och editeras på hemsidan.
Karaktärerna kan skickas ut på uppdrag där deras egenskaper används mot varandra för att utse en vinnare. Du väljer själv vad som ska hända. Skapa en egen algoritm som använder egenskaperna för att utse en vinnare.
Uppdragen skapas på hemsidan. När ett uppdrag skapas ska det slumpas fram vilka karaktärer som ska besegras på uppdraget.
Det ska finnas en klass för resultatet av avklarade uppdrag. Historiken ska presenteras på hemsidan.
app.py
ska jobba mot enhandler/controller
klass som i sin tur styr resten av klasserna.Karaktärerna måste ha minst tre variabler som påverkar vem som vinner. Ex. liv, skydd och skada.
#Krav 2 Verktyg
Hemsidan ska göras med Flask och Jinja2.
Karaktärsklasserna, uppdragsklassen och resultatsklassen ska finnas i en SQLitedatabas. Använd SQLAlchemy för att jobba mot databasen.
Databasfilen ska hetablackops.sqlite
.Använd Bootstrap till hemsidan, men använd inte out-of-the-box temat. Gör ett unikt utseende för din sida.
#Krav 3 Övrigt
Skapa ett klassdiagram över alla klasser. Ska inte automatgenereras utan göras för hand. Döp filen till “uml.png”.
Skriv ett godtyckligt antal enhetstester för karaktärsklassen och uppdragsklassen. Döp testfilerna till “klassens namn-test.py”.
Automatgenerera dokumentation för din kod. Döp filen till “doc.html”.
#Krav 4: Bilder (optionell)
- Varje karaktär ska representeras med en bild.
Tänk på att använda bilder med rätt licens eller skapa egna bilder.
#Krav 5: Extra uppdrag (optionell)
Uppdragen har också attribut som påverkar karaktärerna som används. Ex. Stålmannen är svagare om han används på ett uppdrag där det finns kryptonit.
#Krav 6: Risky business (optionell)
Fick Nury kan använda sina besparingar för att satsa på om hjältarna kommer vinna uppdragen. Martel betalar ut 100% av satsningen om han klarar uppdraget. Om pengarna tar slut går Fick Nury i konkurs.
#Revision history
- 2017-02-27: (B, lew) Removed documentation requirement and edited req 6.
- 2017-02-22: (A, aar) Första versionen.