Hey, ich versuche gerade mir Java beizubringen und möchte dabei ein kleines Spiel, dass ich online als Aufgabe gefunden habe programmieren.
Es ist generell ganz simpel, es gibt ein kleines "Spielfeld" aus Hashtags, und man wandert mit einem Pfeil darin umher.
Ich habe insgesamt 3 Klassen erstellt, Main, Field und Player.
Hier ist der jeweilige Code den ich geschrieben habe:
Main:
Field:
Player:
Ich hoffe mein Code ist soweit verständlich.
Wenn man das Spiel so startet sieht man zwar den Pfeil auf der Startposition, aber er bewegt sich nicht wenn man ihn theoretisch laufen lässt, obwohl die jeweilige x und y Position schon verändert wird (Ich hatte mir da mal ein Zähler dazugeschrieben).
Wenn jemand sieht woran es liegt, währe ich sehr dankbar. Und auch über jegliche sonstige Kritik über meinen Code würde ich mich sehr freuen
PS: Wenn dieses Thema eher in die Kategorie "Spiele" gehört tut es mir leid.
Ich dachte bei so einem einfachem Spiel passt das hier besser hin.
Es ist generell ganz simpel, es gibt ein kleines "Spielfeld" aus Hashtags, und man wandert mit einem Pfeil darin umher.
Ich habe insgesamt 3 Klassen erstellt, Main, Field und Player.
Hier ist der jeweilige Code den ich geschrieben habe:
Main:
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Field spielfeld = new Field();
Player spieler = new Player();
Scanner sc = new Scanner(System.in);
String action;
System.out.println("Willkommen zu meinem Spiel");
do {
spielfeld.playField();
System.out.println("Führen Sie eine Aktion aus (g = vorwärts gehen, l = links drehen, r = rechts drehen, q = beenden)");
action = sc.next();
switch(action){
case "g": spieler.vorwärts(); break;
case "l": spieler.links(); break;
case "r": spieler.rechts(); break;
case "q": break;
}
}
while(!action.equals("q"));
}
}
Field:
Java:
public class Field {
Player playerInfo = new Player();
int x, y;
private String[][] spielfeld = {{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "},
{" "," " ," " ," " ," " ," " ," " ," "}};
public void playField(){
x = playerInfo.getxPosition();
y = playerInfo.getyPosition();
spielfeld[x][y] = playerInfo.getDirection();
System.out.println("##########");
for(int i = 0; i < 8; i++) {
System.out.print("#");
for(int j=0; j < 8; j++){
System.out.print(spielfeld[i][j]);
}
System.out.print("#");
System.out.println();
}
System.out.println("##########");
}
}
Player:
Java:
public class Player {
private int xPosition = 2;
private int yPosition = 3;
private String direction = ">";
public void vorwärts(){
if(direction == "^"){
if(yPosition > 0){
yPosition --;
}
else {
System.out.println("Dieser Zug ist nicht möglich");
}
}
else if(direction == ">"){
if(xPosition < 7){
xPosition ++;
}
else {
System.out.println("Dieser Zug ist nicht möglich");
}
}
else if(direction == "⌄"){
if(yPosition < 7){
yPosition++;
}
else {
System.out.println("Dieser Zug ist nicht möglich");
}
}
else if(direction == "<"){
if(xPosition > 0){
xPosition--;
}
else {
System.out.println("Dieser Zug ist nicht möglich");
}
}
}
public void links(){
switch(direction){
case "^": direction = "<"; break;
case "<": direction = "⌄"; break;
case "⌄": direction = ">"; break;
case ">": direction = "<"; break;
}
}
public void rechts(){
switch(direction){
case "^": direction = ">"; break;
case ">": direction = "⌄"; break;
case "⌄": direction = "<"; break;
case "<": direction = "^"; break;
}
}
public int getxPosition(){
return xPosition;
}
public int getyPosition(){
return yPosition;
}
public String getDirection(){
return direction;
}
}
Ich hoffe mein Code ist soweit verständlich.
Wenn man das Spiel so startet sieht man zwar den Pfeil auf der Startposition, aber er bewegt sich nicht wenn man ihn theoretisch laufen lässt, obwohl die jeweilige x und y Position schon verändert wird (Ich hatte mir da mal ein Zähler dazugeschrieben).
Wenn jemand sieht woran es liegt, währe ich sehr dankbar. Und auch über jegliche sonstige Kritik über meinen Code würde ich mich sehr freuen
PS: Wenn dieses Thema eher in die Kategorie "Spiele" gehört tut es mir leid.
Ich dachte bei so einem einfachem Spiel passt das hier besser hin.