Dag 4
25 Jun 2015Op dag 3 is het gelukt om alle objecten te laten bewegen. Ook kan de zombie nu een mens infecteren. Hierdoor verandert de mens in een zombie. Daarnaast is het gelukt om intelligentie te implementeren bij de mens en zombie. Zo zoekt de mens medemensen om te overleven en probeert hij zombies te ontwijken. De zombie daarentegen zoekt de mens en kan deze volgen.
Voor vandaag hebben wij de volgende doelstellingen bepaald:
- Een betere infectie methode creëren
- Een methode implementeren waardoor grotere groepen mensen winnen van een aanvallende zombie. (Dit kan wellicht al opgelost worden met de implementatie van de eerste doelstelling.)
- Meer intelligentie te implementeren in de mens en de zombie
Om een betere infectie methode te creëren hebben we het volgende principe bedacht. Als er twee objecten naast elkaar staan dan moeten deze kijken hoeveel van zijn soort om zich heen staan. Dus beschouw het volgende voorbeeld: stel als er 1 zombie tegenover 1 mens staat dan wint de zombie. Stel er is 1 zombie tegenover 1 mens, maar er staan 3 andere mensen om de ene mens heen dan wint de mens en verdwijnt de zombie van de wereld. Het tegenovergestelde principe geldt dus ook: stel 1 zombie tegen 1 mens maar er staan nog 3 zombies om de ene zombie heen dan wint de zombie. Dit principe hebben wij geïmplementeerd in onze code. Hierdoor ontstaat er een infectie methode die er ook voor zorgt dat groepen bijeengekomen mensen de zombie kunnen doden.
Nu de infectie methode goed is proberen we meer intelligentie te implementeren in zowel de mens als de zombie. Door het meermaals testen van de simulatie zijn we erachter gekomen dat mensen door het zoeken naar andere mensen en hierdoor groepen vormen veel sterker en slimmer zijn dan de zombie. Een eindsituatie die zich vaak voordoet bij het simuleren is het volgende:
Hier zien we dus dat er clusters mensen ontstaan die altijd winnen van de zombie. De mens ontwijkt immers ook de zombie en de zombie heeft nog niet de intelligentie om samen een cluster van mensen te infecteren. Wij proberen dus eerst de zombie slimmer te maken om tegenstand te bieden aan de mens.
Het probleem is dus als de mensen eenmaal een cluster heeft gevormd dat deze niet meer te verslaan is ook als is deze zeer klein. Dit komt omdat het zeer onwaarschijnlijk is dat de zombies met een meerderen om één cluster gaan staan. De intelligentie die wij willen implementeren bij de zombie is dat deze wel de intelligentie moet hebben om samen zo’n cluster mensen aan te vallen.
Ons inspiratie voor een oplossing voor dit probleem hebben wij genomen uit een doorsnee zombiefilm. Als één zombie eenmaal een mens heeft gezien gaan alle andere zombies achter deze zombie aan. Dit verschijnsel wordt ook wel swarming(“zwermen”) genoemd. Dit proberen wij te implementeren in de code. Dit hebben wij als volgt gedaan. Als een zombie een mens ziet dan wordt deze grijs, andere zombies in de buurt zien dat en volgen dan deze grijze zombie. Aangezien er al is geïmplementeerd dat de zombie deze mens volgt ontstaat er een zwerm van zombies die dan naar de gevolgde mens gaan. Hierdoor wordt de kans groter dat er meer zombies om één cluster mensen gaan staan en hierdoor wint, doordat de aantallen zombies in de radius groter is dan het aantal mensen. Zie hieronder een voorbeeld van een zwerm zombies die ontstaat.
Het idee om het obstakel zee erbij te implementeren is voor ons nu geen prioriteit meer. Wellicht laten wij dit idee dan ook los. Wij willen ons meer bezig om de intelligentie van beide groepen te verbeteren. Hier zullen wij ons op de laatste dag vooral nog op richten.