Eksamensopgave: Hangman 2006.
Programmering i C

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 og hvert ord, som skal gættes. Hvert bogstav præsenteres af et tal, svarende til bogstavets tal 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 det alfabet, hvoraf ordgåden er opbygget.

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.

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 gætte forkert N gang vindes spillet. Uanset om man taber eller vinder spillet tildeles spilleren et antal point, som vises efter afslutningen af et spil. 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 man får et negativt antal point i spillet.

Vi beskriver envidere følgende aspekter af spillet:

  1. Ordgådefilen. Ordgådefilen skal have følgende format:
    "Kategori1" "Ord1"
    "Kategori2" "Ord2"
    ...
    "KategoriJ" "OrdJ" 
    Her er et konkret eksempel på en ordgådefil, som kan benyttes sammen med det programmerede spil.
  2. Highscore. En samling af spillernavne og opnåede pointantal gemmes fra spil til spil på en highscorefil. Et pointantal skal, sammen med spillerens navn, gemmes på highscorefilen hvis pointantallet er blandt de 10 højeste, som er opnået hidtil.
  3. Hangman grafik. Den oprindelige ide i hangman er gradvis at vise en mand, som nærmer sig galgen i takt med at antallet af forkerte gæt nærmer sig N. Det er helt frivilligt, om man ønsker at visualisere dette aspekt af spillet. Der forventes under ingen omstændigheder avancerede grafiske illustrationer.
  4. Præsentation af alfabetet. Alfabetet kan præsenteres som en simpel liste af tilbageværende tegn, eller som en nummer-kategoriseret liste af tilbageværende tegn, f.eks.:
    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 ordgådefil og highscorefilen.

Grupper med færre end fire studerende skal programmere spillet som beskrevet ovenfor, dog ikke nødvendigvis highscorefaciliteten.

 

Der findes flere udgaver af Hangman spillet på Internettet, hvorfra man kan hente inspiration, f.eks.

 

Der er følgende forventninger til den programmerede løsning:

 

Kurt Nørmark
Lone Leth Thomsen