2020-02-04 19:14:24 +01:00
|
|
|
# Robo Rally [![Build Status](https://travis-ci.com/inf112-v20/Fiasko.svg?branch=master)](https://travis-ci.com/inf112-v20/Fiasko) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/51d37dc99db44758944198a59f2d2a4b)](https://www.codacy.com/gh/inf112-v20/Fiasko?utm_source=github.com&utm_medium=referral&utm_content=inf112-v20/Fiasko&utm_campaign=Badge_Grade)
|
|
|
|
Dette prosjektet har som mål å lage en digital kopi av brettspillet Robo Rally. Foreløbig er målet å implementere all
|
|
|
|
nødvendig funksjonalitet for å kunne spille et "spill" Robo Rally over lan med opp til 8 spillere. Om tiden strekker til,
|
|
|
|
vil vi gå over til en fase der målet blir å implementere ting som er gøy, men ikke nødvendig.
|
2020-01-28 14:50:45 +01:00
|
|
|
|
2020-02-04 19:14:24 +01:00
|
|
|
Alle regler er hentet fra 2005 utgaven av spillguiden fra Wizards of the Coast, Inc.
|
2020-01-28 14:50:45 +01:00
|
|
|
|
2020-02-27 12:12:48 +01:00
|
|
|
## Spillstatus
|
2020-03-26 13:09:08 +01:00
|
|
|
Ved kjøring av .jar filen blir det vist en "splash screen" og kjørt en demo når brukeren trykker venstre musetast,
|
|
|
|
uten mulighet for bruker å bevege robot.
|
2020-02-27 12:00:26 +01:00
|
|
|
|
2020-03-24 11:53:41 +01:00
|
|
|
## Manuell testing
|
|
|
|
Demoen er definert i RoboRallyGame sin metode runGameLoop(). Metodene som kan brukes for testing er:
|
2020-03-24 12:08:05 +01:00
|
|
|
- makeMove(Robot id, Korthandling) //Utfører en handling på en robot
|
|
|
|
- fireAllLasers() //Fyrer av alle lasere inkludert robotlasere
|
|
|
|
- moveAllConveyorBelts() //Flytter alle transportbånd
|
|
|
|
- checkAllFlags() //Oppdaterer roboter som besøker flagg
|
|
|
|
- rotateCogwheels() //Roterer tannhjul
|
2020-03-24 11:53:41 +01:00
|
|
|
|
|
|
|
Robot id blir representert ved enumen RobotID
|
|
|
|
Korthandling blir representert ved enumen Action
|
|
|
|
|
|
|
|
Ved å bruke metodene over kan alt i en eller flere faser testes og simuleres. Den store forskjellen fra MVP er at all
|
|
|
|
bruker-input blir hardkodet før programmet kjører.
|
|
|
|
|
2020-03-26 10:47:28 +01:00
|
|
|
Eksempel på makeMove: makeMove(RobotID.ROBOT_1, Action.MOVE_1); //Flytter robot 1 ett steg fremover
|
|
|
|
|
|
|
|
Linjene som inneholder runPhase(n) kjører spesifikke faser som bruker tilfeldig utdelte programmeringskort uten
|
|
|
|
integritetsvalidering. Disse bør kommenteres ut under testing.
|
|
|
|
|
2020-03-26 13:09:08 +01:00
|
|
|
Robotene sin posisjon blir initialisert i RoboRallyGame sin metode initializeGame() og kan endres dersom det er
|
|
|
|
fordelaktig å starte dem på andre posisjoner.
|
|
|
|
|
|
|
|
Brettet blir også lastet inn i RoboRallyGame sin metode initializeGame(). Det er 3 brett som er relevante å teste på:
|
|
|
|
- Checkmate
|
|
|
|
- Dizzy_Dash
|
|
|
|
- Risky_Exchange
|
|
|
|
|
2020-03-02 12:42:39 +01:00
|
|
|
## Knapper og kontrollmekanismer
|
|
|
|
### Knapper
|
|
|
|
- Q: Tilbakestiller kamera og kamerarotasjon
|
|
|
|
- R: Roterer kameraet
|
|
|
|
- HOME: Bytter til en debug instans av spillet som lar en sjekke at alle teksturer vises riktig
|
|
|
|
|
|
|
|
### Andre egenskaper ved brukergrensesnittet
|
|
|
|
- Rullehjulet vil forstørre og forminske spillbrettet
|
|
|
|
- Spillbrettet kan flyttes ved å holde inne venstre musetast og bevege musen i en retning
|
|
|
|
|
2020-02-27 11:23:49 +01:00
|
|
|
## Bygging og kompilering
|
|
|
|
|
|
|
|
### Forkrav for å kunne kompilere og kjøre koden
|
|
|
|
- [java](https://www.java.com/en/download/)
|
2020-02-05 05:19:38 +01:00
|
|
|
- [git](https://git-scm.com/)
|
|
|
|
- [maven](https://maven.apache.org/)
|
2020-02-27 11:23:49 +01:00
|
|
|
|
|
|
|
### Byggeprosedyre
|
2020-02-27 11:39:27 +01:00
|
|
|
```shell script
|
2020-02-27 11:23:49 +01:00
|
|
|
git clone https://github.com/inf112-v20/Fiasko.git
|
|
|
|
cd Fiasko
|
|
|
|
mvn clean install
|
|
|
|
```
|
2020-02-27 11:39:27 +01:00
|
|
|
Dette vil også kjøre alle tester i koden
|
2020-03-02 12:42:39 +01:00
|
|
|
|
2020-02-27 11:23:49 +01:00
|
|
|
### Kjøreprosedyre
|
2020-02-27 11:39:27 +01:00
|
|
|
```shell script
|
2020-02-27 11:23:49 +01:00
|
|
|
cd target
|
2020-02-27 19:02:43 +01:00
|
|
|
java -jar roborally-0.2-alpha-jar-with-dependencies.jar
|
2020-02-27 11:23:49 +01:00
|
|
|
```
|
|
|
|
Den produserte .jar filen kan alternativt flyttes til en annen mappe og dobbeltklikkes for å kjøres.
|