Merhaba arkadaslar
Kben gebuisd op informatica spijtig genoeg maar ik krijg een tweedekans, probleem is dat ik een taak moet maken maar ik snap er niks van.
Zijn er mensen die mij kunnen helpen, kheb dit echt nodig
GaJa taak 2007-’08
Algemeen
Zoals vermeld in de studiegids, is er voor GaJa een nieuwe taak in 2e zit. Het onderwerp van deze taak is niet
vrij: je bent verplicht om onderstaand spelletje te implementeren. Je oplossing moet natuurlijk voldoen aan de
eisen van Model-View-Controller en als een application geďmplementeerd zijn (dus geen applet).
Net als in eerste zit moet je ook je oplossing mondeling toelichten zodat we kunnen toetsen of je het zelf
gemaakt hebt: op dit punt zijn we minstens even streng als in eerste zit (voor een aantal onder jullie heb ik deze
regel spijtig genoeg ook al moeten toepassen). Je mag weliswaar raad vragen aan meer ervaren ontwikkelaars of
aan fora op het internet, maar raad vragen is niet hetzelfde als je oplossing door een ander laten maken en dan
die oplossing aan mij proberen te verkopen. Ook in zo’n geval verwacht ik bronvermelding.
De regel hieromtrent is duidelijk en streng, maar rechtvaardig: wanneer je stukken code door een ander hebt
laten maken of van het internet geplukt hebt, moet je dat als commentaar bij die stukken code zetten. Ik kan er
begrip voor hebben dat je voor de moeilijkste stukken wat raad kan gebruiken, maar het spreekt voor zich dat
mensen die het zelf gemaakt hebben meer punten krijgen dan mensen die raad gekregen hebben. Langs de
andere kant krijgen mensen die raad gevraagd hebben en het vermelden in hun code, vééél meer punten dan
mensen die raad vragen en het niet vermelden. Wanneer je dit niet vermeldt en je kan niet elke stap logica achter
de code verklaren, dan spreken we over plagiaat, en kan je géén geval nog een voldoende halen op de taak!
De opgave
Gevraagd is om mannetjes op een rooster te kunnen laten rondwandelen. Dit rooster heeft een
bepaalde grootte, bv. 30x40 of 200x150 of datgene wat de gebruiker van je klassen kiest.
Op dit rooster zijn er naast de gewone vakken, vakken waar mannetjes niet kunnen komen
(‘muren’) en vakken waar de mannetjes sterven als ze er op stappen.
Elke mannetje heeft natuurlijk een aantal eigenschappen, zoals de plaats waar hij zich bevindt,
het aantal punten dat hij heeft verzameld en de mannetjes die hij opgegeten heeft. Wanneer twee
mannetjes op dezelfde plaats terecht komen, eet het ene mannetje het andere mannetje op. Het
mannetje met het meeste punten heeft de meeste kans om het mannetje met het minste punten op
te eten: die kans is gelijk aan 50%+(het puntenverschil tussen beide mannetjes) met een
maximum van 80%, maar voor de rest gebruik je dus een random. Wanneer je een ander
mannetje opeet, krijg je de helft van zijn punten.
Een voorbeeld: manA heeft 67 punten en manB heeft 42 punten. Het puntenverschil is dus 25
punten. manA heeft dan 75% kans om te winnen, en manB 25%. Wanneer manA wint, krijgt hij
21 punten extra. Wint manB dan krijgt hij 33,5 punt.
Een mannetje verliest één punt per zet zodra het gedurende 10 zetten niemand opgegeten heeft.
Ten slotte zijn er twee soorten mannetjes: mens-gestuurde en computer-gestuurde. De mens-
gestuurde mannetjes blijven lopen in de laatst gekozen richting (zoals bij snake), maar een mens
kan natuurlijk die richting veranderen (bv. via het toetsenbord of de muis).
De computer-gestuurde mannetjes lopen gedurende 3 zetten in dezelfde richting en kiezen dan
willekeurig een nieuwe richting (dat kan dus dezelfde richting zijn als de vorige).
Wanneer een computer-gestuurd mannetje op een sterf-vakje komt, maakt het spel een nieuwe
computerman aan op een willekeurige positie op het rooster.
Wanneer een speler op zo’n sterf-vakje komt, sterft die speler, maar in de loop van het spel
kunnen er wel voortdurend nieuwe spelers bijkomen (bv. door op enter te drukken). Die
vertrekken ook op een willekeurige positie.
In het totaal kunnen er maximaal 100 spelers deelnemen aan het spel (dode en levende samen).
Om een speler van richting te doen veranderen, heb je het begrip van “actieve speler”. Je moet
dus van actieve speler kunnen wisselen. Hoe je dit doet, mag je zelf kiezen (bv. door aan te
klikken met de muis, of met F1 en F2 naar de volgende/vorige speler, …).
Wanneer je de cursorpijltjes gebruikt, verander je de richting van de actieve speler.
Praktisch
• De taak telt mee voor 30 % van de punten. Het examen staat op de resterende 70 %.
• Stuur een email met de oplossing (als zip) naar
Kris.Aerts@khlim.be, ten laatste de dag voor het examen.
Breng je oplossing ook mee naar het examen (bv. op memorystick).
• De bespreking van de taak is tijdens het examen zelf.
Insallah yardimci olabilirsiniz bana
saygilarimla blaze