Permalänk

Java, 15 puzzle

Hejsan! Har verkligen kört fast och skulle behöva lite tips/hjälp med hur jag ska ta mig vidare. Detta är en labbuppgift så självklart förväntar jag mig inte att någon gör labben åt mig.

Lite information så att ni förstår uppgiften och vad jag menar.
Spelet ska använda sig utav tre klasser: Game, Board och Tile.

Klassen Tile måste ha dessa med:
privat attribut value:int
getValue():int
setValue(int value):void
isEmpty():boolean

Klassen Board måste ha dessa:
publik enum Direction { UP, LEFT, DOWN, RIGHT }
moveEmptyTile(Direction dir):boolean
moveTile(int row, int column):boolean
getTile(int row, int column): Tile
setTile(int row, int column, Tile tile):void
shuffleBoard():void
isSolved():boolean

I Mainklassen Game ska all utskrift och sådant vara.

Ber om ursäkt för min dåliga terminologi.
Detta är vad jag har kommit på än så länge. Jag får just nu ut en 4x4 utskrift med bara nollor. Jag vill ju att den på något sätt räknar upp 1-15, en ruta ska vara tom. Utskriften vill jag senare ha i en lista så man senare kan köra en shuffle?

public class Board { public enum directions {Up, Down, Left, Right}; private int board[][] = new int[4][4]; private static final int rows = 4; private static final int columns = 4; String output = "";{ for (int row = 0; row < rows; row++) { for (int col = 0; col < columns; col++) { output += " " + board[row][col]; } output += "\n"; } } }

Tacksam för hjälp!

/Henrik

Permalänk
Medlem
Skrivet av henrikelffors:

Hejsan! Har verkligen kört fast och skulle behöva lite tips/hjälp med hur jag ska ta mig vidare. Detta är en labbuppgift så självklart förväntar jag mig inte att någon gör labben åt mig.

Lite information så att ni förstår uppgiften och vad jag menar.
Spelet ska använda sig utav tre klasser: Game, Board och Tile.

Klassen Tile måste ha dessa med:
privat attribut value:int
getValue():int
setValue(int value):void
isEmpty():boolean

Klassen Board måste ha dessa:
publik enum Direction { UP, LEFT, DOWN, RIGHT }
moveEmptyTile(Direction dir):boolean
moveTile(int row, int column):boolean
getTile(int row, int column): Tile
setTile(int row, int column, Tile tile):void
shuffleBoard():void
isSolved():boolean

I Mainklassen Game ska all utskrift och sådant vara.

Ber om ursäkt för min dåliga terminologi.
Detta är vad jag har kommit på än så länge. Jag får just nu ut en 4x4 utskrift med bara nollor. Jag vill ju att den på något sätt räknar upp 1-15, en ruta ska vara tom. Utskriften vill jag senare ha i en lista så man senare kan köra en shuffle?

public class Board { public enum directions {Up, Down, Left, Right}; private int board[][] = new int[4][4]; private static final int rows = 4; private static final int columns = 4; String output = "";{ for (int row = 0; row < rows; row++) { for (int col = 0; col < columns; col++) { output += " " + board[row][col]; } output += "\n"; } } }

Tacksam för hjälp!

/Henrik

Du kan göra på samma sätt som när du bygger din output-sträng fast baklänges, dvs

board[row][col] = cellens nummer

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av henrikelffors:

public class Board { public enum directions {Up, Down, Left, Right}; private int board[][] = new int[4][4]; private static final int rows = 4; private static final int columns = 4; String output = "";{ for (int row = 0; row < rows; row++) { for (int col = 0; col < columns; col++) { output += " " + board[row][col]; } output += "\n"; } } }

Är det här all kod du har skrivit?

Skrivet av henrikelffors:

Jag får just nu ut en 4x4 utskrift med bara nollor.

Var sker utskriften?
Har board ingen konstruktor?

Skrivet av henrikelffors:

private int board[][] = new int[4][4];

Antar att du vill att detta ska va:

private Tile board[][] = new Tile[4][4];

Alltså: Boardet består av Tiles.

Permalänk

Vad för collection är att föredra för att hålla reda på board?

public class Board { public Board(){ HashMap<String, Integer> board = new HashMap<>(); /// } public enum directions {Up, Down, Left, Right}; boolean moveEmptyTile(directions dir) { return false; } boolean moveTile(int row, int column) { return false; } Tile getTile(int row, int column) { return null; } Tile setTile(int row, int column) { return null; } void shuffleBoard() { } boolean isSolved() { return false; } }

Hur går jag vidare härifrån? Vet inte riktigt vad jag ska skriva för att förklara vad en Tile är?

public class Tile { private int value; public Tile(){ } public Tile(int value){ setValue(value); } public int getValue() { return value; } public void setValue(int value) { this.value = value; } }