[JAVA] Array[] Formatierungsproblem

Defenz0r

BIOS-Overclocker(in)
Hallo, ich habe vor , mein Array:


Code:
    EnemyField    = new EnemyList[39]; // 40 0 wird mitgezählt
    
    for (int i=0; i<39; i++ ) {
      EnemyField[i] = new EnemyList(modul.Chance(1,2));
    
      System.out.print( EnemyField[i].getZufallszahl_feld());
      
    } // end of for



Wiefolgt auszugeben:


1 2 1 2 1 2 1 2 1 2
1 2 1 2 1 2 1 2 1 2
1 2 1 2 1 2 1 2 1 2
1 2 1 2 1 2 1 2 1 2

Achtung, die Zahlen sind Random und können auch anders returnen!
Dient nur zur Veranschaulichung, es ist klar das ned immer 1 und 2 returnt in der Reihenfolge

Die 0 wird bei einem Array mitgezählt also sind es 40 Ausgaben ?

Nunja, es sollen nur eine bestimmte Anzahl pro Zeile Ausgegeben werden, und zwar in dieser geposteten Ansicht, was ist zu tun?



Gruß
 
Moin
Code:
 EnemyField    = new EnemyList[39]; // 40 0 wird mitgezählt
sind 39 keine 40 Elemente man gibt in den Klammern bei der Deklaration die Anzahl und nicht den höhsten Index an.
Die Durchnummerierung erfolgt dann von [0] bis [39].

Richtig wäre
Code:
EnemyField    = new EnemyList[40];
Lg.
 
Achso, ja es sollen aber 39 random Werte zwischen 1 und 2 herauskommen.
Und zwar in der Formatierung die ich geschrieben hatte.
Es geht mir momentan nur darum es so auszugeben :)


Wie macht man das?
 
Ich habe es jetzt nicht selber ausprobiert aber das sollte Funktionieren

Code:
int counter = 0;
for (int i = 0 ; i< 4 ; i ++)
{    
    for(int j = 0; j < 10; j++)
    {
        System.out.print(EnemyField[counter].getZufallszahl_feld());
        counter++;
    }
    System.out.println("");
}
Bei 39 Werten musst du vor der Ausgabe noch überprüfen ob counter < 40 ist, sonst bekommst du beim vierzigsten Element eine "Index Out of Bound Exception"

Lg.
 
Zuletzt bearbeitet:
Nope, funzt nicht.

Hab das EnemyField[counter] = new EnemyList(modul.Chance(1,2));
unter int j gemacht und der spuckt mir alles aus.
Aber nicht , 10 in einer Reihe(hintereinander), nicht mehr und das ganze 4 mal

"Bei 39 Werten musst du vor der Ausgabe noch überprüfen ob counter < 40 ist, sonst bekommst du beim vierzigsten Element eine "Index Out of Bound Exception""

if(counter<40)
{
??
}

Hab aber ne NullPointer Exception^^
 
Zuletzt bearbeitet:
Ich hatte vorhin eine Änderung an dem Programm gemacht. Die Vorgänger Version war fehlerhaft das was jetzt in meine letzten Post steht sollte richtig sein .
 
Zuletzt bearbeitet:
Nabend,
Folgendes sollte Funktionieren (habs nicht getestet ;D)

Code:
int n = 0;
for(int i = 0; i < 39; i++){
n++;
if(n > 10){
system.out.print("\r\n");
n = 0;
}
system.out.print(EnemyField[i].getZufallszahl_feld());
}
 
Code:
    int counter = 0;
    for (int i = 0 ; i< 4 ; i ++)
    {      
      for(int j = 0; j < 10; j++)
      {
        EnemyField[counter] = new EnemyList(modul.Chance(1,2));
        System.out.print(EnemyField[counter].getZufallszahl_feld());
        counter++;
        
      }   
      System.out.println(""); 
    }


Funktioniert, danke :)
 
Die drei Zeilen
Code:
        EnemyField[counter] = new EnemyList(modul.Chance(1,2));         System.out.print(EnemyField[counter].getZufallszahl_feld());         counter++;

kannst du in ein if ( counter < 40 ){} packen falls du immer noch einen Null Pointer bekommst .
 
Ich hatte EnemyField[counter] = new EnemyList(modul.Chance(1,2)); vergessen , siehe Script^^

Sonst werden die ja nicht gefüllt.

Kann man irgendwie noch implementieren das ich bei jedem wechsel mit der Pfeiltaste z.B von Element zu element der Inhalt des Arrays ändert?
Soll eine Art "Wiese" werden, wenn der Wert darin x ist dann spawnt Monster.

Gibt ja da java.awt oder Swing, was sollte ich besser dafür benutzen?

Sonst freezed bestimmt ein Feld, wenn es öfter = 2 ist, spawnt immer ein Gegner?


lg
 
Zuletzt bearbeitet:
awt ist leicht veraltet, Swing ist "neu" und einfach zu bedienen.

How to Make Frames (Main Windows) (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
Using Layout Managers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)
dort solltest du für ne einfache GUI alles finden mit beispielen usw. - super zum nachschlagen :)

Klar kannst du das bei jedem wechsel ändern, einfach den Algorythmus den du gerade geschrieben hast in ne einzelne Methode packen und bei jeder bewegung aufrufen.
 
Zurück