CD5250 - Objektorienterad programutveckling med C++, 5p


Projektuppgift – Schackprogrammet allan.

Varför projektupgift?

Projektuppgiften är ett gyllene tillfälle att kolla att man fattat allting innan tentan. Det skall också vara en lite kul avslutning på kursen och ge en känsla av att ha producerat något vettigt. Tidigare har man haft andra uppgifter på denna kurs, men eftersom det börjar finnas många lösningar på dessa lite slitna övningar, har vi beslutat att försöka köra med denna uppgift istället.

Varför förstår jag inte uppgiften?

Förmodligen för att någon information saknas. Skriv till dfm@mdh.se och fråga. Ange CPP-FAQ i rubriken så kommer det i rätt låda (Thrash). Jag skall försöka samla ihop vettiga frågor och svar i FAQen så att de kommer alla till nytta. Det är dock meningen att ni skall försöka tänka lite själva och vara kreativa.


 

Själva uppgiften:

Uppgiften består av att designa och implementera ett ’fullt fungerande’ schackspel med hjälp av Windows ramverk för Windowsapplikationer, MFC. 

Dock är det viktigaste i uppgiften designen och implementationen av datamodellen.

Datamodellen skall vara fristående från grafik. Grafiken är frivillig och skall implementerassenare.
Väljer du att inte implementera grafik ställs naturligtvis ännu lite högre krav på funktionaliteten hos de olika klasserna.
Men målet är att alla skall ha möjlighet att genomföra en meningsfull projektuppgift utan att bli sittande till midsommar.

Pjäserna skall till exempel:

·Kunna veta vilken färg de har.

·Avgöra om ett drag är giltigt.
(En bonde får tex ta ett steg framåt, om ingen står på den platsen osv osv.)regler

·(extrauppgift) Kunna returnera en lista över giltiga drag.

·Hur mycket festliga grejer du vill, men tänk på att du skall bli klar i tid (börja enkelt).

Designkrav

För att det skall vara någon mening med uppgiften måste designen innehålla vissa moment som vi borde ha lärt oss ikursen. Speciellt bör du 

·Använda dig av:arv, virtuella funktioner.

·Spelarna skall kunna spara aktuell ställning och kunna fortsätta därifrån närsom helst.

Vettiga debug-utskrifter skall kunna genereras på ett designmässigt snyggt sätt.

När du funnit en vettig design(vilka klasser du skall ha, vad de skall lagra, vem skall ärva vem, vilka metoder behövs)
skall du verifiera denna med ett antal scenarios, dvs. stega igenom din design för att säkerställa att den tar hänsyn till allt.
Du skall alltså rita upp anropen i den ordning de bör komma.
OBS att du bör inte börja koda alltförmycket innan du har en vettig design (om du inte gillar att skriva om). Diskutera med andra grupper om ni är o-överens.

Nedan ser du ett exempel på hur du kan rita.

Kom ihåg att hålla utkik för klasser som delar attribut, beteenden eller interface och samla detta i en gemensam överklass.
Försök att undvika onödiga switch-satser genom att utnyttja polymorfism och virtuella metoder.
Visa upp din design och diskutera igenom den med din laborationsassistent 
innan du börjar koda. 

·Här är en introduktion till windowsprogrammering(mer info hittar du i online hjälpen).

·Ett exempel på ett Windowsprogram skrivet mha. Visual Studio och MFC.

Daniels lilla exempel demo_ICONS.zip
Daniels lilla exempel clientClikDemo
Daniels lilla drag and dropdemp
Här är några elevprojekt som kan vara värda att undersöka

Henrik Och Magnus projekt HorsePower.zip
 

·En liten FAQ som jag ämnar uppdatera efterhand.

 

För att slippa sitta och rita så finns det även lite ikoner och bitmappar som du kan sno HÄR!

Rapportskrivning

Innan du skriver ditt program skall du ha designdelen av rapporten är klar. Rapporten skall vara snygg och prydlig och lämnas in till kursansvarig.

Om du känner dig osäker på hur en teknisk rapport bör se ut så läs igenom följande dokument: 
rapport.pdf