A mirror of the project we created during system engineering, just in case it ever goes down.
Go to file
EpicKnarvik97 1d2887af28 Gjør en del kodeforbedringer
Genererer liste av repairtiles en gang for å øke effektivitet
Fjerner linjer som ikke gjør noe
Forenkler kode der det er mulig
Legger til kommentarer inne i kodeblokker for å øke leselighet
Forbedrer variabelnavn og metodenavn
2020-04-07 22:37:44 +02:00
.github/ISSUE_TEMPLATE Fjerner problemer i markdown fra issue maler 2020-02-05 06:04:51 +01:00
Deliverables Fjerner mellomrom fra tomme linjer 2020-03-26 13:15:41 +01:00
docs/team Referat fra møte. 2020-04-06 15:23:11 +02:00
src Gjør en del kodeforbedringer 2020-04-07 22:37:44 +02:00
.gitignore Gjør noen små fikser 2020-02-13 09:10:52 +01:00
.travis.yml Legger til travis.yml 2020-02-04 11:09:50 +01:00
CONTRIBUTING.md Legger til og endrer litt prosjektdokumentasjon 2020-02-04 19:14:24 +01:00
pom.xml Legger til en knapp for å kunne bekrefte programmeringskort 2020-03-24 15:15:46 +01:00
README.md Legger til ekstra informasjon om brukertesting 2020-03-26 13:09:08 +01:00

Robo Rally Build Status Codacy Badge

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.

Alle regler er hentet fra 2005 utgaven av spillguiden fra Wizards of the Coast, Inc.

Spillstatus

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.

Manuell testing

Demoen er definert i RoboRallyGame sin metode runGameLoop(). Metodene som kan brukes for testing er:

  • 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

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.

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.

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

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

Bygging og kompilering

Forkrav for å kunne kompilere og kjøre koden

Byggeprosedyre

git clone https://github.com/inf112-v20/Fiasko.git
cd Fiasko
mvn clean install

Dette vil også kjøre alle tester i koden

Kjøreprosedyre

cd target
java -jar roborally-0.2-alpha-jar-with-dependencies.jar

Den produserte .jar filen kan alternativt flyttes til en annen mappe og dobbeltklikkes for å kjøres.