Programmering02 [prrprr02]

Projekt01 - En spelapplikation

Introduktion

Vi avslutar kursen med ett spelprojekt. Detta spelprojekt är det projekt som är tyngdpunkten i betyget på kursen.

Uppgift

Efter att bokens tutorial och samtliga moment har jobbats igenom samt redovisats är det dags att fundera på vilket betyg du vill sträva mot i kursens slutprojekt.

Betyget E

För betyget E krävs det att du jobbar vidare med spelet SpaceShooter och lägger till minst tre funktioner som tillför någonting till spelet. Exakt vad detta är för funktioner har du stor frihet att bestämma själv. Ett krav är dock att du skapar minst en egen klass inom hierarkien för arvet.

Då flera elever har efterfrågat exakt vad som krävs för betyget E så har jag gjort ett inlägg med bland annat en checklista för att gå vägen till ett E.

Betyget C

För betyget C kräver det att du gör ytterligare utveckling av spelet, exakt vad som kommer krävas för det ena eller det andra betyget är svårt att säga på förhand, det är den totala svårighetsgraden samt kvaliten på utförandet som kommer ligga till grund för betyget.

Bestäm dig för ett betyg som du vill sträva efter, fundera sedan på vilka förändringar du skulle vilja göra i spelet samt snegla på bedömningsmatrisen nedan för att bilda dig en uppfattning om vad som kommer krävas för att nå det betyg du strävar efter. Skriv sedan en plan där du tydligt talar om vilket betyg du strävar efter samt vilka förändringar du vill göra i spelet samt ge en hint om hur du tänker lösa respektive problem. Tänk på att fokuset på kursen är avancerad objektorientering med arvet i centrum. Att skapa nya klasser, med korrekt arv, värderas alltid högre än att bara förändra befintliga klasser.

När du har din plan färdig visa den till läraren så att vi gemensamt kan bedöma om svårigheten är tillräcklig för att nå det betyg du strävar efter.

Vi har vid olika tillfällen under kursens gång bollat lite idéer om funktionalitet som skulle kunna vara rimligt att lägga till vårt spel. En kombination av olika funktionaliteter och kvaliteten på implementationen av dessa ligger till grund för ditt betyg;

  • Lägga till fler Enemies och/eller PowerUps.
  • Ändra poängsättningen, fler poäng för vissa Enemies/PowerUps.
  • Alla objekt dör inte vid en träff, det kan krävas flera skott för att döda en Enemy. Detta ger mer poäng när det lyckas.
  • Andra fiender, kanske en som åker i en viss riktning en viss tid och sedan slumpar om, kanske ändras farten också?
  • Animera objekt som dör!
  • Skapa hinder i banan, tex labyrint eller planeter. Antingen studsar allt på objektet, eller så hindras det bara eller så kan player inte åka igenom men det kan enemy. Risk att bli fångad.
  • En utväg? För att komma vidare till nästa bana skall x antal poäng uppnås sedan skall en dörr öppna sig och det är möjligt att åka ur banan
  • Olika vapen, skott och raketer? Olika kommandon för att skjuta. Skjuta i olika riktning?
  • En större fiende som långsamt söker sig efter mig, denna dödas med mängder av sko.
  • Skjuta ett studsande skott som dör när första träff görs, men som också kan döda mig.
  • Lägga tidsinställda bomber?

Betyget A

Om du vill sträva efter betyg högre än C så gäller det att skapa ett eget spel från grunden. Givetvis skall du använda dig av de kunskaper du har fått under arbetet med tutorial men det är nu du skall visa dig flygfärdig på programmerare och skapa ett helt eget spel, det skall dock bygga på objektorienteringens grundprinciper, inkapsling, arv och polymorfism (precis som tutorialen gjorde).

Gör en projektplan, skissa lite på spelidén och skapa ett UML-diagram över de klasser och arv du kommer jobba med. Gör också en schematisk bild över hur spelet skall se ut, allt för att vi skall kunna se att spelet är avgränsat så att du hinner klart med projektet innan sommaren. Spelet skall givetvis vara grafiskt även om fokus inte är på 3D och grym grafik så skall det se trevligt ut att spela.

Kika sedan i kolumnen längst till höger i bedömningsmatrisen och kolla så att det du håller på med uppnår dessa krav. Sedan är det dags att visa upp din planering för läraren.

Jag hittade en prezipresentation som gav bra information och stöd till utvecklingsprocessen av spel.

Prezi: Att planera sina program av Elisabeth Lindgren Röjler.

Redovisning

När du är klar med ditt spel skall det redovisas. Det gör du genom att dema ditt spel för läraren och lämnar in en enklare rapport med planering och utvärdering av ditt projekt, denna rapport lägger du på den sida som du använder för att redovisa kursens uppgifter (Wordpress?).

Deadline

Redovisning sker genom att du bokar en tid för individuell redovisning under vecka 19-21. Onsdag 24 maj klockan 16.00 kommer jag inte längre tillåta redovisningar och då sätts betygen för elever i åk3. Tänk på att om du vill få chans att komplettera din redovisning så är det lämpligt att inte vänta med redovisning till sista dagen.

Bedömningsmatris

Följande saker bedöms i projektet.

Kunskapskrav

Text

Betyget E

Betyget C

Betyget A

1. Planering

Eleven formulerar och planerar programmeringsuppgifter med enkla klassdiagram. I planeringen väljer eleven [1] standardbibliotek, egna och andras klasser, konstruktorer, objekt och gränssnitt som är adekvata för uppgiften [2].

[1] med viss säkerhet

 

[2] [inget]

[1] med viss säkerhet

 

[2] [inget]

[1] med säkerhet

 

[2] samt motiverar utförligt sina val

2. Kodkvalitet

I sin programmering skriver eleven, med konsekvent kodningsstil och tydlig namngivning, en korrekt, strukturerad och [3] kommenterad källkod med [4] resultat.

[3] enkelt

 

[4] tillfredsställande

[3] noggrant

 

[4] tillfredsställande

[3] noggrant och utförligt

 

[4] gott

3. Interaktion

Dessutom väljer eleven [5] ett uttryckssätt och ett grafiskt gränssnitt som är anpassat för att på ett [6] sätt interagera med den avsedda användaren.

[5] med viss säkerhet

 

[6] tillfredsställande

 

[5] med viss säkerhet

 

[6] tillfredsställande

 

[5] med säkerhet

[6] gott

4. Applikationen

Elevens färdiga program är utförda med [7] resultat i ett eller flera programmeringsspråk och innehåller objektorienterad programmering som är stabil och robust [8].

[7] tillfredsställande

 

[8] i program av enkel karaktär

[7] tillfredsställande

 

[8] [inget]

[7] gott

 

[8] i program av komplex karaktär

5. Felhantering

Eleven anpassar [9] sin planering av programmeringsuppgiften, [10] uppmärksammar problem med typsäkerhet och utför [11] felsökning av syntaxfel [12].

[9] med viss säkerhet

[10] [inget]

[11] enkla

[12] [inget]

[9] med viss säkerhet

[10] [inget]

[11] på ett systematiskt sätt 

[12] , körtidsfel och programmeringslogiska fel

[9] med säkerhet

[10] , anpassar polymorfi

[11] på ett systematiskt och effektivt sätt 

[12] , körtidsfel och programmeringslogiska fel

6. Utvärdering

Innan programmeringsuppgiften avslutas utvärderar eleven med [13] omdömen [14] programmets prestanda och ändamålsenlighet i [15] situationer och [16] sammanhang.

[13] enkla

[14] [inget]

[15] någon

[16] något

[13] nyanserade

[14] [inget]

[15] några

[16] [inget]

[13] nyanserade

[14] och med förslag på förbättringar

[15] flera

[16] [inget]

7. Datalogiska begrepp

Eleven kommunicerar om programmeringsuppgiften och dess utvärdering och använder då [17] datalogiska begrepp.

[17]

med viss säkerhet 

[17]

med viss säkerhet 

[17]

med säkerhet