Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

EksempelbrettSer slik ut
SAMPLE_LEVEL1"...XX.....\n...XX..XXX\n...XX.....\n..........\n..........\n.X........\n.X...XXX..\n.X........\n.X..XX....\n.........."
SAMPLE_LEVEL2".XXX......\n.XXX....X.\n........X.\n........X.\n...XX...X.\n..........\n..X..XXX..\n..X.......\n..X.......\n.........."
SAMPLE_LEVEL3"..........\n..........\n..........\n..XX......\n...XXX....\n....XXXX..\n...XXX....\n.XXX......\n.XXX......\n.........."

Tips: Lag en egen klasse Levels.java som har disse eksempelbrettene som felt (tilstand). De kan være public static final. final betyr at verdien til variabelen ikke kan endres etter den er initialisert. Se /sokoban/SampleLevels.java for inspirasjon.

...

Code Block
themeEclipse
Player 1's turn:
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |

2 2
That's a miss...
Player Two's turn:
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |


5 6
That's a hit!
Player One's turn:
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ . ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |


2 5
That's a miss...
Player Two's turn:
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ X ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ |

JavaFX-app

Konsollbasert IO er greit for å teste spillet, men det er kanskje artigere å lage en ordentlig app, med grafisk visning av rutenettet og bruk av musa for å klikke på ruter du vil skyte. Vi har laget en JavaFX-basert app, som du kan laste ned og koble til din Battleship-klasse. App-koden forutsetter at spill-logikken er implementert i en klasse Battleship som implementerer IBattleship-grensesnittet (i pakken games.battleship). Med bruk av grensesnitt, så gjøres det klart hvilke metoder appen trenger og som du må implementere.

Last først ned ISudoku-grensesnittet fra /games/sudoku/sudoku1/ISudoku.java, og programmer din spill-klasse slik at den implementerer dette grensesnittet. Så laster du ned app-klassene (og filene), så du kan prøve om det virker. Husk at du må endre en linje i BattleshipFX.fxml slik at den peker på klassen din som implementerer IBattleship-grensesnittet.  

Fil-tre som må lastes ned evt. importeres med Digital Compendium-panelet 

Code Block
titlebattleship.emfs
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;
	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;
		;
	battleship/ #java #
		IBattleship.java		@ git@github.com:hallvard/javafx/games/src/games/battleship/IBattleship.
		BattleshipFX.java		@ git@github.com:hallvard/javafx/games/src/games/battleship/BattleshipFX.
		BattleshipFX.fxml		@ git@github.com:hallvard/javafx/games/src/games/battleship/BattleshipFX.
		;
	battleship/res
		hit64x64.png			@ git@github.com:hallvard/javafx/games/src/games/battleship/res/hit64x64.
		miss64x64.png                   @ git@github.com:hallvard/javafx/games/src/games/battleship/res/miss64x64.png
		ocean64x64.png                  @ git@github.com:hallvard/javafx/games/src/games/battleship/res/ocean64x64.png


Merk at du godt kan la være bruke å ISudoku-grensesnittet, men da må du omprogrammere appen, så den bruker andre metoder enn vi har forutsatt. Det er nok mer arbeid, men kanskje enda mer lærerikt?