Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 4.09 KB

README.md

File metadata and controls

56 lines (38 loc) · 4.09 KB

Prosjekt-repo for TDT4100

[[TOC]]

Om prosjektet

Prosjektet, SpellIT, er en Scrabble-applikasjon konfigurert som et multi-modul prosjekt med maven. Applikasjonen består av modulene Core og UI, og er bygget på prinsippinene for Model-view-controller (MVC). Applikasjonen er laget slik at to spillere kan spille mot hverandre på samme datamaskin. Videre støtter applikasjonen persistens/lagring av data ved å serialisere Java-objekter til en JSON-fil. Det spilles på tur, og for hver tur kan spilleren plassere tilgjengelige brikker på brettet for å danne et nytt ord. Ordet som blir lagt verifiseres ved å slå opp i applikasjonens innebygde ordbok - det beregnes også poeng for nye ord som blir dannet med tidligere plasserte brikker.

Spillets ordbok

Spillet benytter en norsk ordbok, og støtter omlag 334 000 varianter av norske ord. Ettersom applikasjonen benytter seg av denne ordboken ofte, er det kritisk med rask oppslagstid. Dette oppnås ved bruk av en datastruktur kalt Trie, illustrert nedenfor.

Trie tree

En trie er en trestruktur hvor hver node representerer en alfabetisk karakter, og har flere forgreninger under seg. Treet som er vist i figur 1 en representerer en ordbok med henholdsvis ordene ab, aba, abc, ab, ba, bad, bag. Disse ordene finner man ved å følge de tilgjengeldige nodene. Om man for eksempel følger høyresiden av treet finner man bokstavene b => a => g som settes sammen til ordet bag. På denne måten kan applikasjonen verifisere ord ved å følge hver bokstav i oppslagsordet, og se om kombinasjonen av bokstaver eksisterer i Trie-strukturen - en slik operasjon vil ta O(n) kjøretid, hvor n er lengden oppslagsordet.

Moduler

Prosjektets moduler tilhører pom-filen spellit, og er ytteligere beskrevet i egne README-filer.

  • spellit.core utgjør domenelaget, og inneholder standardiserte objekter samt. logikk for å fremstille disse objektene.
  • spellit.ui utgjør brukergrensesnittet, og bygget med JavaFx.
  • spellit.report aggregerer resultat for testdekningsgrad i en samlet rapport.

Forhåndsvisning av SpellIT

Application preview

Bygging med Maven

Dependencies

Plugins

Kommandoer

Rydder opp i tidligere kompilerte filer, og installerer avhengigheter. Krever java versjon - JDK 14 og oppover.

mvn clean install

Kjører gjennom enhetstestene

mvn test

Starter applikasjonen

mvn javafx:run -f ui/pom.xml