prrprr02 – vägen till ett E

Detta inlägg skall hjälpa dig som strävar efter att nå betyget E i kursen Programmering02. Se det som en checklista för vilka uppgifter som skall vara gjorda i kursen. Det finns också en hjälp för vad och hur du kan lösa slutprojektet.

Denna checklista som finns här är den som jag kommer använda mig av när det är dags att redovisa kursen för mig. Denna redovisning sker individuellt där vi sitter ner i 20 minuter och kollar på vad du har gjort under kursen och vilken kvalitet det håller.
Mer info om datum för redovisningen kommer här när det är dags att boka tider.

Eftersom checklistan används under redovisningen är det smidigt att du arbetar mot den innan du kommer till redovisningen. Har du inte uppnått alla delar så kommer du få rest på delar som inte är gjorda, så enkelt är det.

Saker att vara gjorda i kursen vid redovisningen

  • Spelet från boken i grundversion skall vara klart.
  • 4 tutorials om OOP (objektorientering) skall vara klart
    • OOP Grund
    • OOP Samling
    • OOP Arv
    • OOP Generisk klass
  • Tutorial med GUI, moment05, skall vara gjord i grundversion eller utökad variant.
  • Tutorial med databas, moment05, skall vara gjord i grundversion eller utökad variant.
  • Den enkla klient/server-applikationen i moment06 skall vara gjord.
  • Något slutprojekt skall vara gjort.

Checklista för slutprojektet

Hjälp till slutprojektet

Från Projektspresentationen klipper jag följande;

”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.”
”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?).”
Då blir det ju ganska tydligt vad som behöver göras.

Här kommer förslag på tre ändringar som kan göras.

  1. Vi börjar med den nya klassen, här är det nog enklast att skapa en ny fiende. Du har redan skapat två så att det finns bra exempel med kod som går att återanvända. I klassen Enemy, om du inte skapat egna klasser för Mine och Tripod, så skall du nu skapa din nya klass. Hitta på ett bra namn, skapa eller leta upp en sprite som du har rätt att använda och bestäm hur din nya fiende skall röra sig. Skapa klassen i Enemy, eller egen fil, och sedan ser du till att i klassen GameElements skapar den nya fienden på samma sätt som du skapar Mine och Tripod samt lägger de nya fienderna i listan enemies.
  2. I spelet så skapas det slumpmässigt nya guldmynt som ger spelaren möjlighet att samla poäng. Hittills i spelet så skapas det bara fiender när spelet startar men nu vill vi skapa fiender även under spelets gång.I klassen GameElements finns logiken för att slumpa fram ett värde och skapa ett guldmynt om det slumpade värdet är 1. Här kan vi bygga en ny logik som innebär att vi slumpar fram ett värde mellan 1 och någonting (ju högre värde vi sätter, desto mer sällan kommer det inträffa, sätter vi 60 kommer det statistiskt att skapas en ny fiende varje sekund) och sedan så ser vi till att om det slumpade värdet är 1 så skapas en Mine, om det är 2 så skapas en Tripod och om det är 3 så skapas vår nya fiende.OBS! Gör inte denna logiken samtidigt som guldmynten skapas, utan gör det innan eller efter, återanvänd gärna variabeln random för att slumpa fram ett nytt tal.
  3. Låt en kula (bullet) försvinna efter träff mot fiende.
    Koden nedan hittar du i klassen Player och den tar bort de kulor som i medlemsvariabeln IsAlive har värdet false. Det finns alltså redan en logik för att rensa bort dessa kulor, nu blir ditt uppdrag att leta upp kollisionen mellan bullet och enemy och sätta värdet på IsAlive till false på den specifika bullet som har träffat en fiende.
// Flytta på alla skott
foreach(Bullet b in bullets.ToList())
{
    // Flytta på skottet
    b.Update();
    // Kontrollera så att skottet inte är dött
    if (!b.IsAlive)
        // Ta bort skottet ur listan
        bullets.Remove (b);        
}

Checklista för spelet innan redovisning

Kolla att du har gjort följande saker;

  • Tre ändringar i spelet, som kommer anses tillräckligt omfattande, varav minst en egen klass har skapats! Tänk på att den kod du skriver skall vara kommenterad.
  • Är ändringarna tydligt presenterade i ett inlägg på din redovisningssida eller i något annat dokument?
  • Är ändringarna tydligt utvärderade, alltså hur gick det att genomföra ändringen, i ett inlägg på din redovisningssida? Det går att göra dessa två punkter i samma inlägg.
  • Ritat ett UML-diagram för den nya klassen? Dessutom ritat hela UML-strukturen för spelet där vi tydligt ser var den nya klassen befinner sig? I boken på sida 99 hittar du klasshierarkin för spelets objekt.

När du kan bocka av dessa punkter är du redo för redovisning och har goda chanser för att klara den utan rest!

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.