Skip to content
jt222ii edited this page Oct 28, 2015 · 10 revisions

1dv608-Projekt

Projekt i PHP

##Vision Projektet ska vara ett ganska simpelt sten sax påse spel. Till att börja med ska det att bara simpelt gå att köra mot datorn i tre eller fem rundor. Från början var det tänkt att man skulle kunna spela mot varandra över nätet men efter en diskussion med Andreas så kändes det bättre att först göra så man först bara kan spela mot datorn för lättare kunna få något fungerande innan man lägger till mer funktionalitet.

Efter det så ska det implementeras andra svårighetsgrader där datorn inte längre bara slumpar vad de väljer utan kollar på chanser vad som väljs beroende på statistik som fåtts.

Om även detta gick att implementera snabbt så ska man kunna logga in och därmed se hur många man förlorat och hur många man vunnit. Nyregistrerade ska få en standard-avatar som visningsbild. Denna ska kunna bytas ut om användaren vill.

##Krav Först och främst ska man överhuvud taget kunna spela sten sax påse mot datorn utan några restriktioner. -> Klart

Efter det så ska man kunna spela försten till 3 och försten till 5. -> klart

Sedan ska man kunna logga in där man kan se hur många vinster och hur många förluster man har. Denna funktionalitet tar jag från assignment 4 men ändrar hur det ser ut när man är inloggad och behöver även ändra databasen att innehålla mer information. -> klart

Andra krav:

  • spela mot en smartare bot -> Klart(boten känner nu igen vissa mönster och kontrar dem korrekt. Går alltid lägga till så den ser fler och mer komplexa mönster om man vill)

Om tid finns:

  • Spela mot en annan spelare. -> hinner ej

##Manuella tester

  • Väljer man först till 3 eller 5 så ska detta visas på spelplanen
  • När man loggat in ser man vem man är inloggad som samt hur många vinster och förluster man har
  • Man ska kunna trycka på knappen "infinite vs smarter bot" för att köra med oändligt antal rundor.
  • Trycker man alla valen klockvis (sten->sax->påse->sten->sax->påse...) så ska datorn till slut kontra det.
  • Trycker man samma val hela tiden ska datorn kontra det.
  • Trycker man alternativt mellan två ska datorn kontra det.
  • Trycker man på alla tre men varannan gång väljer man alltid samma så ska datorn kontra det.
  • När man är inloggad så ska man kunna byta ut en visningsbild som man har med en url.

##Resultat Jag fick som jag ville ett fungerande sten sax påse spel där man kan möta datorn i en först till 3, 5 eller oändligt med rundor. När man spelar mot datorn i en försten till så är det helt och hållet bara slumpat i vad datorn väljer för drag. Det är därför en 50% chans att man vinner ett set.

Spelar man mot datorn utan bestämt antal rundor så har jag gjort en liten lätt AI på datorn som upptäcker ett antal olika mönster som spelaren gör. Just nu kan man självklart lista ut dessa och undvika dem men nu är det inte helt på slump.

##Problem Hade ett ganska stort problem med 000webhost då det inte stödde "curl" som jag använde för att kolla att den URL man skickar in när man byter bild är en bild. Jag fick därför istället bara kolla så att man skickar in en url och sätta det till visningsbild oavsett om det leder till en bild eller ej. Det kan därför bara bli en broken link som bild. Detta var ett tråkigt problem men jag fann inte någon annan lösning till det som stöddes av 000webhost.

Att testa AI'n jag gjorde krävde en hel del testningar för att finna buggar. Jag fann ett par som man kunde utnyttja för att vinna 75-90% av rundorna man körde men tog bort dessa och har sedan dess inte funnit några. Inga klasskamrater har heller funnit någon sådan exploit.

Clone this wiki locally