![]() |
Eksamen i kurset er baseret på en opgave. Der afsættes to kursusgange til arbejdet med opgaven. Eksamensopgaven laves i halvgrupper med typisk 3-4 personer pr. halvgruppe. Halvgrupperne laves af sekretariatet, ved at dele en projektgruppe tilfældigt. Der er ikke afsat forberedelsestid forud for eksamen.
Opgaven har følgende formulering:
Som eksamensopgave skal der programmeres et Hangman 2006 spil.
Udfordringen i et Hangman spil er at gætte et ord eller en sætning, herefter kaldet ordgåden. Det er computeren som vælger ordgåden. Hver ordgåde tilhører en bestemt kategori. Computeren beder først om spillerens navn. Dernæst udvælger computeren en tilfældig ordgåde og tilhørende kategori. Computeren præsenterer ordgådens kategori og et omrids af gåden. Omridset består af en markering af hvert tegn som skal gættes. Hvert bogstav præsenteres af et tal, svarende til bogstavets talværdi på et mobiltelefon tastatur. (Brugen af disse cifre kan opfattes som en hjælp til de spillere, som har en stærk erindring af bogstavernes placering på et sådant tastatur). Alle andre tegn vises direkte i ordgådens omrids. Omridset af ordgåden "programmering i c" er således "7764726637464 4 2".
Foruden ordgåden præsenteres spillets alfabet. Ethvert bogstav i ordgåden skal tilhøre spillets alfabet. Alfabetet kan ikke indholde danske tegn eller cifre. Der gøres ikke forskel på store og små bogstaver i alfabetet.
Undervejs i spillet udvælger spilleren et bogstav fra alfabetet. Hvis bogstavet indgår en eller flere gange i ordgåden afsløres det i omridset af ordgåden. Endvidere fjernes bogstavet fra præsentationen af alfabetet, således at det til enhver tid fremgår hvilke bogstaver der kan gættes på i resten af spillet. Efter hvert gæt vises det aktuelle antal point (se nedenfor), som spilleren indtil nu har opnået.
Spilleren har et fast antal mulige forkerte gæt til rådighed, som vi her kalder N. Hvis antallet af forkerte gæt bliver N tabes spillet. Hvis derimod spilleren gætter ordgåden (uden at have gættet forkert N gange) vindes spillet. Uanset om man taber eller vinder spillet tildeles spilleren et antal point, som vises efter afslutningen af spillet. Hvis spilleren vinder spillet kan pointantallet gemmes på highscorelisten (se herunder).
Lad os antage at ordgåden indeholder L bogstaver fra det præsenterede alfabet. Antallet af point i et spil udregnes således:
Det er intensionen at man opnår 100 point hvis man uden fejl gætter ordet. Bemærk at man kan være så uheldig at opnå et negativt antal point i spillet.
Vi beskriver endvidere følgende aspekter af spillet:
"Kategori1" "Ordgåde 1" "Kategori2" "Ordgåde 2" ... "KategoriJ" "Ordgåde J"
Hver linie i filen indeholder netop én kategori og én ordgåde som tilhører kategorien. Hverken kategorier eller ordgåder kan indeholdet doublequote tegnet. Her er et konkret eksempel på en ordgådefil, som kan benyttes sammen med det programmerede spil.
a b c k n p q r w 2 2 2 5 6 7 7 7 9
Grupper med fire studerende skal programmere spillet som beskrevet ovenfor inklusive indlæsing af ordgådefil og highscorefaciliteten.
Grupper med tre studerende skal programmere spillet som beskrevet ovenfor inklusiv indlæsning af ordgådefil, men dog ikke nødvendigvis highscorefaciliteten.
Grupper med to studerende skal programmere spillet som beskrevet ovenfor, dog ikke nødvendigvis indlæsning af ordgåde filen, og ikke nødvendigvis highscorefaciliteten. I sådanne programmer kan ordgåder og deres kategorier angives direkte i programmet som tekstkonstanter.
Der findes flere udgaver af Hangman spillet på Internettet, hvorfra man kan hente inspiration, f.eks.
Der er følgende generelle krav og forventninger til løsningen af opgaven:
Halvgruppen afleverer en forside (i to kopier) med en meget kort beskrivelse af programdesignet, filstruktur, og med status af arbejdet. På forsiden angives også hvilket C system, der er anvendt under udviklingen.
Endvidere afleveres en programudskrift (i to kopier) samt én diskette eller CD med programmet på kildeform og objektform. Programmet skal udskrives med linienumre. Det er meget vigtigt at kildeprogrammet tilpasses til bredden af papiret og den anvendte fontstørrelse, således at programlinierne ikke bliver afkortet eller ombrudt på nogen måde. Overvej om nødvendigt at udskrive programmet i 'landscape mode'. På eksamensdagen skal hver eksaminand medbringe en programudskrift, som er identisk med de afleverede udskrifter.
Eksamensopgaven afleveres senest fredag 5.5 2006 kl. 12.00 til sekretariatet.
Eksamen foregår i halvgrupperne. Eksamen starter med en kort demonstration af programmet (2-3 minutter) på den udleverede ordgådefil. Eksaminationen tager udgangspunkt i det afleverede program. Der vil både blive stillet konkrete spørgsmål om programmet og spørgsmål i det generelle pensum. Vurderingen er et helhedsindtryk, sammensat af kvaliteten af det afleverede program og den enkelte studerendes evne til at diskutere programmet og det generelle pensum. Præstationerne vurderes individuelt med bestået/ikke bestået. Der er afsat 30 minutter til grupper med to studerende, 40 minutter til grupper med tre studerende, og 50 minutter til grupper med fire studerende.
Hvis en gruppe af en eller anden årsag ikke medbringer egen bærbar PC til eksamen skal vi have besked om dette ved sidste kursusgang. Vi vil i så fald sikre, at der er en PC med Windows, GCC og Bloodsheet til rådighed ved eksamen.
Eksaminanderne har selv ansvar for at oversætte og udføre det afleverede program ved eksamen. Hav alt parat forud for eksamen, idet der ikke er tid til andet end programoversættelse og en kort demonstration!
Hvis der har været anvendt andre kilder end lærebogen og undervisernes slides/noter skal dette angives eksplicit på forsiden. Hvis løsningen beror på bidrag, som kommer fra personer uden for halvgruppen, skal dette altid angives eksplicit på forsiden. Uredelighed på dette område opfattes som eksamenssnyd, og det vil blive behandlet ved brug af gældende regler.
Eventuelle opdateringer af, eller yderligere informationer om opgaven vil blive annonceret på denne side (umiddelbart herefter).
Kurt Nørmark
Genereret:
Fredag
23. Juni 2006,
12:52:12
Programmeret af Kurt Nørmark med brug af LAML teknologi |
Programmering i C - Hold 2 Kurt Nørmarks Hjemmeside |