Ett Monty Hall-problem för Com Hem
Ladda ner den färdiga JAR-filen, nessie-comhem-1.0.jar. Ställ dig i mappen med JAR-filen och skriv: java -jar nessie-comhem-1.0.jar
För att testa att programmet kör, gå till denna adress http://localhost:8080/nessie . Programmet kör nu 100 simuleringar av båda strategierna med tre sjöar och visar resultatet. Du kan även prova följande adresser:
http://localhost:8080/nessie/switch - 100 simuleringar av byta-sjö-strategin med tre sjöar
http://localhost:8080/nessie/stay - 100 simuleringar av stanna-strategin med tre sjöar
http://localhost:8080/nessie/both - 100 simuleringar av båda strategier med tre sjöar
http://localhost:8080/nessie/both?simulations=500 - 500 simuleringar av båda strategier med tre sjöar
http://localhost:8080/nessie/both?simulations=500&numberOfLakes=4 - 500 simuleringar av båda strategier med fyra sjöar
http://localhost:8080/nessie/switch?numberOfLakes=4 - 100 simuleringar av byta-sjö-strategin med fyra sjöar
För mer avancerade interaktioner, använd en REST-klient, exempelvis POSTMAN för Chrome
Ladda ner hela projektet och skriv följande i konsolen, stående i projektets rot: mvn package
Kör sedan programmet genom att skriva: mvn spring-boot:run
Kör tester genom att skriva: mvn verify
I längden hade jag även velat göra vissa vidareutvecklingar så som:
- Implementera concurrency, både för de olika strategierna då båda körs samtidigt och för flera användare.
- Ersätta viss logik med lambdas, särskilt då jag manipulerar enstaka element i en lista.
- Använda Mockito eller dylikt i unit-tester för att mocka bort slumpmässigheten och testa mer precist. Har dock förberett för detta genom att göra random-funktioner spy-vänliga.