Excerpt |
---|
Oppgaven handler om å utvide et allerede eksisterende spill (en av TicTacToe, Sokoban, Sudoku, eller selvvalgt spill)fra øving 4 med nye funksjoner. |
I denne oppgaven vil vi gå ut ifra allerede implementerte spill. Vi vil bygge på tidligere implementerte rutenettbaserte spill og legge til nye kommandoer.
...
- finne en måte å representere brukerhandlinger, dvs. lage en klasse som kan lagre informasjon om handlinger
- implementere logikk for å reversere og gjenta handlingen som slike objekter representerer
- administrere angre- og gjenta-stack'er som forklart over (eller tilsvarende logikk)
Obs! For slagskip-spillet skal man ikke implementere angre og gjenta. Se egen artikkel for slagskip.
Del 2 (50%)
I denne delen skal du implementere lagring av spill og innlesing av tidligere lagrede spill, slik at en kan fortsette der en slapp, f.eks. med et vanskelig Sokoban-brett. Du må altså definere et egnet filformat, og støtte dette formatet både ved skriving til fil og lesing fra fil. Merk at det kun er nødvendig å lagre nå-tilstanden til spillet, en trenger ikke lagre tilstand knyttet til angring (undo). Det naturlige vil være å ha et tekstlig (i motsetning til binært) format, med én linje pr. rad i spillet og én eller flere tegn pr. rute i raden. Sokoban har forøvrig et definert standardformat (se http://sokobano.de/wiki/index.php?title=Level_format), som det kan være lurt å støtte for å forenkle bruk av eksisterende brett.
...
Før du går i gang med denne delen kan det være lurt å ta en titt på wikisiden for Lesing fra og skriving til fil.
JavaFX-apper for spillene (morsomt, men ikke obligatorisk)
Som for første trinn av spillene, som det er lenket til over, så har vi laget JavaFX-apper for spillene. I tillegg til grafisk visning av rutenettet, er det nå støtte for å
...
Så kan du starte app-en ved å høyreklikke på java-fila med samme navn som fxml-fila og (som vanlig) velge Run As->Java Application.
Nedlastingspakker
...
Fellespakke (brukes av alle)
Code Block |
---|
emfs /games/ #java #package FxmlApp.java @ git@github.com:hallvard/javafx/games/src/games/FxmlApp.java; FxmlBuilderFactory.java @ git@github.com:hallvard/javafx/games/src/games/FxmlBuilderFactory.java; FxmlGame.java @ git@github.com:hallvard/javafx/games/src/games/FxmlGame.java; IPersistable.java @ git@github.com:hallvard/javafx/games/src/games/IPersistable.java; IUndoable.java @ git@github.com:hallvard/javafx/games/src/games/IUndoable.java; IUpdateable.java @ git@github.com:hallvard/javafx/games/src/games/IUpdateable.java; PersistableController.java @ git@github.com:hallvard/javafx/games/src/games/PersistableController.java; UndoableController.java @ git@github.com:hallvard/javafx/games/src/games/UndoableController.java; Persistable.fxml @ git@github.com:hallvard/javafx/games/src/games/Persistable.fxml; Undoable.fxml @ git@github.com:hallvard/javafx/games/src/games/Undoable.fxml; imagegrid/ #java #package ImageGrid.java @ git@github.com:hallvard/javafx/games/src/games/imagegrid/ImageGrid.java; ImageGridGame.java @ git@github.com:hallvard/javafx/games/src/games/imagegrid/ImageGridGame.java; |
Sokoban
Code Block |
---|
emfs /games/ ; #java #package sokoban/ #java #package sokoban2/ #java #package ISokoban.java @ git@github.com:hallvard/javafx/games/src/games/sokoban/sokoban2/ISokoban.java; SokobanFX.java @ git@github.com:hallvard/javafx/games/src/games/sokoban/sokoban2/SokobanFX.java; SokobanFX.fxml @ git@github.com:hallvard/javafx/games/src/games/sokoban/sokoban2/SokobanFX.fxml; ; sample.sok @ git@github.com:hallvard/javafx/games/src/games/sokoban/sample.sok; box_on_target16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/box_on_target16x16.png; box16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/box16x16.png; empty16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/empty16x16.png; player_on_target16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/player_on_target16x16.png; player16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/player16x16.png; target16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/target16x16.png; wall16x16.png @ git@github.com:hallvard/javafx/games/src/games/sokoban/wall16x16.png; |
Sudoku
Code Block |
---|
emfs /games/ #java #package sudoku/ #java #package sudoku2/ #java #package ISudoku.java @ git@github.com:hallvard/javafx/games/src/games/sudoku/sudoku2/ISudoku.java; SudokuFX.java @ git@github.com:hallvard/javafx/games/src/games/sudoku/sudoku2/SudokuFX.java; SudokuFX.fxml @ git@github.com:hallvard/javafx/games/src/games/sudoku/sudoku2/SudokuFX.fxml; |
TicTacToe
Code Block |
---|
emfs /games/ #java #package tictactoe/ #java #package tictactoe2/ #java #package ITicTacToe.java @ git@github.com:hallvard/javafx/games/src/games/tictactoe/tictactoe2/ITicTacToe.java; TicTacToeFX.java @ git@github.com:hallvard/javafx/games/src/games/tictactoe/tictactoe2/TicTacToeFX.java; TicTacToeFX.fxml @ git@github.com:hallvard/javafx/games/src/games/tictactoe/tictactoe2/TicTacToeFX.fxml; |
Slagskip
Se egen artikkel.
Include Page | ||||
---|---|---|---|---|
|
...