Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe!

rudinew

Neues Mitglied
Hallo Com,

ich soll für die Uni ein Spiel programmieren bis Morgen!! :-(.
Ich habe die Voraussetzungen soweit erfüllt.
Allerdings verstehe ich noch nicht, wie ich meinem Spielfeld eine Grenze verpassen soll.
Wenn ich es ausführen möchte, passiert nämlich gar nichts...
Könnt ihr mir dabei helfen? (Im Anhang ist ein Bild, wie es aussehen soll.)
Mein Code:

public class AlienGame { //Folgendes sind Attribute, also Merkmale des Spiels

public static void main(String[] args){ //Main Methode erstellt

if (args.length != 3) { //Es müssen mindestens 3 Parameter eingegeben werden: SpielfeldmaßeXY und Alienanzahl.
System.out.println ("Sie müssen mindestens 3 Paramater eingeben.");
System.out.println ("Programm wird jetzt geschlossen.");
System.exit(0);
}

int x = Integer.parseInt (args[0]);
int y = Integer.parseInt (args[1]);

int playerPosX= (int) (Math.random() * x); //Spieler (P) wird zufällig platziert.
int playerPosY= (int) (Math.random() * y); // Spieler wird zufällig platziert.
int alienAnzahl = Integer.parseInt(args[2]); //Alienanzahl wird vom User bestimmt.
char[][] map = new char[x][y];

if ((x * y) < (alienAnzahl + 1)) { //+1 da Spieler (P) dazu kommt.
System.out.println("Es gibt nicht genügend Platz für Aliens und Spieler auf dem Spielfeld.");
System.exit(0);
}

if ((alienAnzahl < 1)) { //Falls Alienzahl unter 1 liegt, schließt das Programm.
System.out.println("Sie brauchen mindestens ein Alien, gegen das Sie spielen.");
System.out.println("Das Programm schließt sich nun");
System.exit(0);
}


//for (int i=0; i<maph; i++){
//for (int j=0; j<mapw; j++){
//map[j]=' ';

//}
//}

for (int i = 0; i < map.length; i++) {

for (int j = 0; j < map.length; j++) {
map[j] = ' ';
}
}



if (map[playerPosX][playerPosY] == ' ') { //Wenn die Koordinate PosXY ' ' ist, wird ein P gesetzt.
map[playerPosX][playerPosY] = 'P'; //Spieler wird auf Spielfeld platziert.
}

while (alienAnzahl > 0) { //Solange es noch Aliens gibt, tue folgendes :

int alienPosX = (int) (Math.random() * x); //Generiere Koordinate für Alien.
int alienPosY = (int) (Math.random() * y); // ''

if (map[alienPosX][alienPosY] == ' ') { //Falls Koordniate ' ' ist, //Ein Feld soll mindestens ein Feld besitzen.
map[alienPosX][alienPosX] = 'A'; // platziere Alien.
alienAnzahl -= 1; //Reduziere Alienanzahl um 1 und setze
}
}
}
}
 

Anhänge

  • Foto 17.11.17, 18 37 53.png
    Foto 17.11.17, 18 37 53.png
    1,8 MB · Aufrufe: 49

krgewb

Top Contributor
Das ist dein Programm:
Java:
public class AlienGame { // Folgendes sind Attribute, also Merkmale des Spiels

    public static void main(String[] args) { // Main Methode erstellt

        if (args.length != 3) { // Es müssen mindestens 3 Parameter eingegeben
                                // werden: SpielfeldmaßeXY und Alienanzahl.
            System.out.println("Sie müssen mindestens 3 Paramater eingeben.");
            System.out.println("Programm wird jetzt geschlossen.");
            System.exit(0);
        }

        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);

        int playerPosX = (int) (Math.random() * x); // Spieler (P) wird zufällig
                                                    // platziert.
        int playerPosY = (int) (Math.random() * y); // Spieler wird zufällig
                                                    // platziert.
        int alienAnzahl = Integer.parseInt(args[2]); // Alienanzahl wird vom
                                                        // User bestimmt.
        char[][] map = new char[x][y];

        if ((x * y) < (alienAnzahl + 1)) { // +1 da Spieler (P) dazu kommt.
            System.out.println("Es gibt nicht genügend Platz für Aliens und Spieler auf dem Spielfeld.");
            System.exit(0);
        }

        if ((alienAnzahl < 1)) { // Falls Alienzahl unter 1 liegt, schließt das
                                    // Programm.
            System.out.println("Sie brauchen mindestens ein Alien, gegen das Sie spielen.");
            System.out.println("Das Programm schließt sich nun");
            System.exit(0);
        }

        // for (int i=0; i<maph; i++){
        // for (int j=0; j<mapw; j++){
        // map[j]=' ';

        // }
        // }

        for (int i = 0; i < map.length; i++) {

            for (int j = 0; j < map.length; j++) {
                map[j] = ' ';
            }
        }

        if (map[playerPosX][playerPosY] == ' ') { // Wenn die Koordinate PosXY '
                                                    // ' ist, wird ein P
                                                    // gesetzt.
            map[playerPosX][playerPosY] = 'P'; // Spieler wird auf Spielfeld
                                                // platziert.
        }

        while (alienAnzahl > 0) { // Solange es noch Aliens gibt, tue folgendes
                                    // :

            int alienPosX = (int) (Math.random() * x); // Generiere Koordinate
                                                        // für Alien.
            int alienPosY = (int) (Math.random() * y); // ''

            if (map[alienPosX][alienPosY] == ' ') { // Falls Koordniate ' ' ist,
                                                    // //Ein Feld soll
                                                    // mindestens ein Feld
                                                    // besitzen.
                map[alienPosX][alienPosX] = 'A'; // platziere Alien.
                alienAnzahl -= 1; // Reduziere Alienanzahl um 1 und setze
            }
        }
    }
}
In folgender Zeile ist ein Fehler:
Java:
                map[j] = ' ';
"Type mismatch: cannot convert from char to char[]"
 
habt ihr vieleicht die loesung zur naechste alienaufgabe
Die AlienGame-Klasse: Die AlienGame-Klasse soll weiterhin die main-Methode enthalten
um das Spiel zu starten. Die Generierung des Spielfelds jedoch soll in den Konstruktor
der Map-Klasse ausgelagert werden. Außerdem soll in der main-Methode die Interaktion
mit dem Nutzer gesteuert werden. Der Nutzer soll in jeder Spielrunde über Eingaben auf
der Konsole ein Feld auswählen, das angegriffen werden soll. Felder, die nicht im Spielfeld
liegen oder auf denen kein lebendes Alien steht, sollen nicht angegriffen werden können
und der Spieler soll die Möglichkeit erhalten ein neues Feld anzugreifen. Genauso sollen
andere ungültige Eingaben behandelt werden und nicht zum Absturz des Spiels führen.
Hat der Spieler seinen Zug also aufgeführt, sind die Aliens an der Reihe. Jedes noch existierende
Alien soll einen Angriff ausführen. Das Spiel soll genau dann beendet werden,
sobald entweder alle Aliens getroffen wurden oder der Spieler besiegt ist.
Die Map-Klasse: Erstellen Sie die Klasse Map. Diese repräsentiert das Spielfeld und sollte
wenigstens die folgenden Objektvariablen enthalten:
• char[][] map: das Spielfeld dieser Map-Instanz
• Player player: den Player um dessen Status und Aktionen zu steuern
• Alien[] aliens: ein Array das die Aliens verwaltet
Desweiteren soll die Map-Klasse die toString()-Methode implementieren um nach jeder
Spielrunde die aktuelle Karte ausgeben zu können. Dabei sollte das Spielfeld nun zu allen
Seiten begrenzt ausgegeben und mit einer Orientierung für Koordinaten versehen werden.
Orientieren sie sich am unten aufgeführten Beispiel.
Die Alien-Klasse: Erstellen Sie die Klasse Alien. Eine Instanz dieser Klasse soll ein
einzelnes Alien auf dem Spielfeld repräsentieren. Die Klasse sollte Objektvariablen für
die Position auf dem Spielbrett enthalten. Eine Möglichkeit den Status des Aliens (lebendig/tot)
zu speichern kann ebenfalls nützlich sein. Desweiteren soll hier eine Methode enthalten sein um das Player-Objekt anzugreifen. Ob ein Angriff eines Aliens gelingt,
soll zufallsabhängig sein. Dabei soll die Wahrscheinlichkeit, ob der Spieler getroffen wird,
von der Distanz der Figuren abhängen. Berechnen Sie die Distanz zum Spieler, indem
Sie die absoluten Beträge der Differenzen der Koordinaten berechnen.
Die Player-Klasse: Erstellen Sie die Klasse Player. Eine Instanz dieser Klasse soll den
Spieler repräsentieren. Die Klasse sollte Objektvariablen für die Position auf dem Spielbrett,
sowie eine Anzahl an Trefferpunkten enthalten. Die Trefferpunkte entsprechen dem
Leben des Spielers. Gelingt ein Angriff eines Aliens, so soll der Player einen Trefferpunkt
verlieren. Desweiteren soll auch hier eine Methode enthalten sein um ein Alien-Objekt
anzugreifen. Für die Angriffswahrscheinlichkeit des Players gilt das gleiche wie für die
Aliens.
 
Java:
public class Spiel {


    public static void main(String[] args) {
 
       
     int hpspieler = Integer.parseInt(args[0]);
     int atkspieler = Integer.parseInt(args[1]);
     int hitspieler = Integer.parseInt(args[2]);
    
            qqqqqQQQQQ@
            
      int hpmonster = hpspieler   * 2 ;
      int atkmonster = (atkspieler / 2) ;
      int hitmonster = 50;
     
    
  
     int zufall;
  
    while(hpmonster > 0 && hpspieler > 0 ) {
       
      
         //spieler ist dran  
       zufall = (int) ( 100 * Math.random());
       System.out.println("Spieler hat " + hpspieler + " Punkte" );
        if  ( zufall <= hitspieler ){
            hpmonster = hpmonster - atkspieler ;
            System.out.println("Spieler hat das Monster fuer " + atkspieler + " Punkte geschlagen");
        } else {
         
               System.out.println("spieler missed");
        }
   
        if (hpmonster <= 0) {
            System.out.println("____________________________");
            System.out.println("Monster hat " + hpmonster + " Punkte");
            System.out.println("monster hat verloren");
            break ;
        }
      
         //Monster ist dran
         zufall = (int) ( 100 * Math.random());
         System.out.println("Monster hat " + hpmonster + " Punkte" );
         if  ( zufall <= hitmonster ){
           hpspieler = hpspieler - atkmonster ;
           System.out.println("Monster hat das Spieler fuer " + atkmonster + " Punkte geschlagen");          
         }
           
           
        else {
         
               System.out.println("Monster missed");
        }         
           
         if (hpspieler <= 0) {
            System.out.println("____________________________");
            System.out.println("Spieler hat " + hpspieler + " Punkte");
            System.out.println("Spieler hat verloren");
            break ;
        }
                System.out.println("____________________________");

    }
    
    }
}
 
Java:
   puplic class Map (int a , int b , int alienzahl){
    this.a = a;
    this.b = b;
    this.alienzahl = alienzahl;
   
     char map = new char [a][b]; 
     int pa = (int)(Math.random()*a);     
     int pb = (int)(Math.random()*b);
     map[pa][pb]= 'p';
    
       while(alienzahl>0){         
           int xa= (int)(Math.random()*a);
           int xb = (int)(Math.random()*b);     
   if( map [xa][xb]!='A' && map[xa][xb]!='p') {
       map[xa][xb]='A'; alienzahl--;
}
  
}        
puplic String toString(string str,string sterne, string xcoordinar){
string str = " "; string sterne = "**"; string xcoordinat"  ";     
for(int i = 0, i<a , i++){
  for(int j = 0, j<b , j++){
    if(i==0){sterne += "*";xcoordinat += Integer.toString(j);
} 
    if(j==0){string xstr = Integer.toString(i);
    str += xstr+"*";
    }
    str += map [i][j];
    if(j==b-1){str +="*";
}
   
}
  str += "ln";
}
return xcoordinat+"ln"+sterne+"ln"+str+"ln"+sterne;
}
}
 
Java:
public class Spielfeld { 

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        player player = new player();
        map map = new map ();
       
        alien alien = new alien ();
        if (args.length !=3){
            System.out.println("sie müssen unbedingt drei zahlen angeben ");
            System.exit(0);
        }


        // TODO code application logic here
        int a = Integer.parseInt(args[0]);     
        int b = Integer.parseInt(args[1]);     
        int alienzahl = Integer.parseInt(args[2]); //anzahl von alienzahl
      
          
        if ( alienzahl >= a*b ){
       System.out.println("fehler");
         System.exit(0);
        
      }
       
       
     
        Scanner n = new Scanner (System.in);
        int m = n .nextInt();
       
       
       
       
       
   }
   
       }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
T Variablen “ in String einfügen Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Tausende Wörter in Arrays automatisch einfügen Java Basics - Anfänger-Themen 10
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
J Scroll-Leiste einfügen Java Basics - Anfänger-Themen 12
U Sound einfügen Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
S Bild einfügen Java Basics - Anfänger-Themen 16
D Taschenrechnerereignisse einfügen Java Basics - Anfänger-Themen 18
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
W Listenelement einfügen Java Basics - Anfänger-Themen 9
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
A Objekte in eine Liste einfügen Java Basics - Anfänger-Themen 7
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
F Collections Sortierung und Einfügen von Elementen Java Basics - Anfänger-Themen 1
K Erste Schritte Classe in andere Einfügen?? Java Basics - Anfänger-Themen 12
P Klasse in Klasse einfügen (arrayliste) Java Basics - Anfänger-Themen 7
F Bibliotheken einfügen ??? Java Basics - Anfänger-Themen 2
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
N JTable - Zellfarben ändern, GUI-Komponenten in Zellen einfügen Java Basics - Anfänger-Themen 5
B Ordner in jar dateien einfügen Java Basics - Anfänger-Themen 4
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
J Bild einfügen Java Basics - Anfänger-Themen 3
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
K paint() mit einfügen Java Basics - Anfänger-Themen 14
A Sortiertes Einfügen in Liste Java Basics - Anfänger-Themen 2
B org.apache.commons.... Folder in Projekt einfügen Java Basics - Anfänger-Themen 6
Kenan89 String in ObjectList einfügen Java Basics - Anfänger-Themen 2
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
A SwingX in Eclipse einfügen Java Basics - Anfänger-Themen 5
B Einfügen von Dateien Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
M Video in ClassLoader einfügen Java Basics - Anfänger-Themen 7
S Itext und eine neue Zeile einfügen Java Basics - Anfänger-Themen 2
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
K Fehler beim Einfügen eines Programm Icons Java Basics - Anfänger-Themen 6
Binary.Coder Vor und nach jeder Codezeile etwas einfügen Java Basics - Anfänger-Themen 3
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
D Input/Output Zeilen aus txt-datei in Java-Liste einfügen Java Basics - Anfänger-Themen 9
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
T Bild in JFrame einfügen Java Basics - Anfänger-Themen 2
L Element in Mitten eines Arrays einfügen Java Basics - Anfänger-Themen 3
S an bestimmter stelle löschen / einfügen Java Basics - Anfänger-Themen 5
K Bild einfügen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben