diff --git a/src/de/itstall/GameField.java b/src/de/itstall/GameField.java index 0047745f0fd4195ac72bb90ca928eb81a499a9a0..7baa297d30e2c2e7ae3af9965f8bb7912be1c56c 100644 --- a/src/de/itstall/GameField.java +++ b/src/de/itstall/GameField.java @@ -4,12 +4,13 @@ public class GameField { public int width, height; private GameTile[][] field; - GameField(int width, int height, String stringField) { + GameField(int width, String stringField) { this.width = width; - this.height = height; - field = new GameTile[width][height]; + this.height = stringField.length() /width; - for (int y = 0; y < height; ++y) { + field = new GameTile[width][this.height]; + + for (int y = 0; y < this.height; ++y) { for (int x = 0; x < width; ++x) { switch (stringField.charAt(x + y * width)) { @@ -34,7 +35,6 @@ public class GameField { for (int x = 0; x < this.field.length; x++) { sb.append(this.field[x][y]); } - sb.append("\n"); } return sb.toString(); diff --git a/src/de/itstall/GameMain.java b/src/de/itstall/GameMain.java index 19f1e6bcd90e23b692694a2112cf49647191424e..8684a417ce23101a69a1f9532caa9d2599b469b4 100644 --- a/src/de/itstall/GameMain.java +++ b/src/de/itstall/GameMain.java @@ -3,16 +3,8 @@ package de.itstall; public class GameMain { public static void main(String[] args) { - String field = "########" + - "# #" + - "# #" + - "### #" + - "# #" + - "########"; - - GameField gf = new GameField(8, 6, field); - - System.out.println(gf); + World w = new World(); + System.out.println(w.draw()); } } diff --git a/src/de/itstall/Player.java b/src/de/itstall/Player.java new file mode 100644 index 0000000000000000000000000000000000000000..18002558790d5ec6c06ddd0eae245d945aacb873 --- /dev/null +++ b/src/de/itstall/Player.java @@ -0,0 +1,33 @@ +package de.itstall; + +public class Player extends GameTile { + + Player(Position position) { + this.pos = position; + } + + public String draw(String s, int worldLength) { + int index = pos.toIndex( worldLength ); + char[] chars = s.toCharArray(); + chars[index] = this.toString().charAt(0); + return new String(chars); + } + + public void moveLeft() { + pos.setPosition(pos.getX() - 1, pos.getY()); + } + public void moveRight() { + pos.setPosition(pos.getX() + 1, pos.getY()); + } + public void moveUp() { + pos.setPosition(pos.getX(), pos.getY() - 1); + } + public void moveDown() { + pos.setPosition(pos.getX(), pos.getY() + 1); + } + + @Override + public String toString() { + return "@"; + } +} diff --git a/src/de/itstall/Position.java b/src/de/itstall/Position.java index 9d9413c46fd2ad350d82de493c9acee8ed665ce0..97e43ae6f487c667a285c745c5ce9b29fea7f025 100644 --- a/src/de/itstall/Position.java +++ b/src/de/itstall/Position.java @@ -26,15 +26,11 @@ public class Position { return x; } - public void setX(int x) { - this.x = x; - } - public int getY() { return y; } - public void setY(int y) { - this.y = y; + public int toIndex(int width) { + return x + y * width; } } diff --git a/src/de/itstall/World.java b/src/de/itstall/World.java new file mode 100644 index 0000000000000000000000000000000000000000..57f2ba334590b042c47e08b5a02f9f1e5307b3a0 --- /dev/null +++ b/src/de/itstall/World.java @@ -0,0 +1,25 @@ +package de.itstall; + +public class World { + GameField field; + Player player; + + public World() { + String canvas = "######### ## #### ## #########"; + this.field = new GameField(8, canvas); + this.player = new Player(new Position(1, 1)); + } + + public String draw() { + StringBuilder sb = new StringBuilder(); + String s = this.player.draw(this.field.toString(), this.field.width); + + sb.append("\n\n\n\n\n\n\n"); + for (int y = 0; y < this.field.height; y++) { + sb.append(s.substring(y * this.field.width, (y + 1) * this.field.width)); + sb.append("\n"); + } + + return sb.toString(); + } +}