Array Füllen

xyZman

Bekanntes Mitglied
Hi.
Ich stehe grad aufm Schlauch. Ich möchte meinem zweidimensionalem Array (Spielfeld) eine Startposition vorgeben.
Das Brett initialisiere ich hier.
Es wird eine 8x8 Matrix erstellt die zu Anfang Leer ist.
Ich möchte Allerdings in Zeile 0 und 1 überall ein '+' haben.
Normalerweise würde ich mein Array so befühlen
Java:
static final char A = '+'; // Figur Spieler FIGUR_A
	static final char B = 'o'; // Figur Spieler Figur_B
	static final char N = '.'; // Feld leer

	public static void main(String[] args) {
		char[][] spielfeld = { { A, A, A, A, A, A, A, A },
				{ A, A, A, A, A, A, A, A }, { N, N, N, N, N, N, N, N },
				{ N, N, N, N, N, N, N, N }, { N, N, N, N, N, N, N, N },
				{ B, B, B, B, B, B, B, B }, { B, B, B, B, B, B, B, B } };

Aber da ich hier nicht imperativ arbeite fällt mir das komplizierter da er immer meckert " cannot convert from char to ..Figur " oder so ähnlich
Wie implementiere ich hier z.b das oben beschriebene Array ?
Java:
class BTSpielbrett{
	final static int n= 8;
	final static BTFigur START = null;
	
	BTFigur[][] brett;
	
	
	BTSpielbrett(){
		this.brett=new BTFigur[n][n];
		for ( int i=0;i<n;i++)
			for ( int j=0;j<n;j++)
				this.brett[i][j]=null;
		
	}



class BTFigur{
final static char KREUZ='x';
final static char KREIS='o';
final static char LEER='.';

boolean aOderB;
int zeile,spalte;
boolean istLeer;
 BTFigur(boolean aOderB, int zeile,int spalte,boolean istLeer){
	 this.aOderB =aOderB;
	 this.zeile= zeile;
	 this.spalte=spalte;
	 this.istLeer=istLeer;
 }
 boolean istAFigur(){
	 return this.aOderB;
 }
 
 boolean istBFigur() {
		return !this.istAFigur();
 }
 int getZeile() {
		return this.zeile;
	}

	int getSpalte() {
		return this.spalte;
	}
	
  public char getAFigur() {
		return KREUZ;
	}

  public char getBFigur() {
		return KREIS;
}
  public char getLeer(){
	   return LEER;
   }
}


lg
Flo
 

njans

Top Contributor
Java:
char[][] spielfeld = { { A, A, A, A, A, A, A, A },
                { A, A, A, A, A, A, A, A }, { N, N, N, N, N, N, N, N },
                { N, N, N, N, N, N, N, N }, { N, N, N, N, N, N, N, N },
                { B, B, B, B, B, B, B, B }, { B, B, B, B, B, B, B, B } };
Da fehlen überall die ' '-Zeichen. So sind das keine Chars.
 

HimBromBeere

Top Contributor
Java:
char[][] spielfeld = { { A, A, A, A, A, A, A, A },
                { A, A, A, A, A, A, A, A }, { N, N, N, N, N, N, N, N },
                { N, N, N, N, N, N, N, N }, { N, N, N, N, N, N, N, N },
                { B, B, B, B, B, B, B, B }, { B, B, B, B, B, B, B, B }
das Array besteht aus einzelnen Characters, also musst du auch Characters reintun, also char[][] spielfeld = {{'A', 'A', ...}}
sprich alle Buchstaben in einfachen Anführungszeichen...

EDIT: Verdammt, zu spät
 

faetzminator

Gesperrter Benutzer
Das Brett initialisiere ich hier.
Es wird eine 8x8 Matrix erstellt die zu Anfang Leer ist.
Ich möchte Allerdings in Zeile 0 und 1 überall ein '+' haben.
Normalerweise würde ich mein Array so befühlen
[...]

Und natürlich musst du dann einfach die Abbruchbedingung einer der beiden Schleifen von [c]i < n[/c] zu [c]i <= 2[/c] ändern ;)

Edit: Natürlich sind es chars! Es sind die Variablen, die oben deklariert wurden ;)
 

xyZman

Bekanntes Mitglied
Ich will ja das Array nicht direkt mit Chars befühlen wie lauter A's oder N's.
Das A soll auf ein '+' verweisen.
wenn ich char[][] Spielfeld = {{ A,A,A...}} dann funktioniert es ja.
Aber wie befülle ich nun BTFigur[][] brett;
Wenn ich
Java:
final static char A='+';

	BTFigur[][] brett={ {A, A, A, A, A, A, A, A },
		{ A, A, A, A, A, A, A, A }, { N, N, N, N, N, N, N, N },
		{ N, N, N, N, N, N, N, N }, { N, N, N, N, N, N, N, N },
		{ B, B, B, B, B, B, B, B }, { B, B, B, B, B, B, B, B } };

Meldet er : Multiple markers at this line
- Type mismatch: cannot convert from char to
BTSpielbrett.BTFigur
 

faetzminator

Gesperrter Benutzer
Wenn du dort eine BTFigur haben willst, musst du diese dort auch erstellen:
Java:
[...] new BTFigur(false, 3, 2, true) [...]
 

njans

Top Contributor
Java:
BTFigur[][] varName = {{new BTFigur(), new BTFigur(), new BTFigur()}}
So in etwa ^^
Wobei eine Schleife da wohl besser wäre ;)
 

jgh

Top Contributor
na ja, du definierst doch deine Klasse
Code:
BTFigur
, die musst du da rein tun....im schlimmsten Fall mit jeweils einem [c]new BTFigur()[/c]
 

HimBromBeere

Top Contributor
ich glaub, so müsste´s gehen:

Java:
BTFigur[][] varName = new MTFigur[][] {
    {new BTFigur(), new BTFigur(), new BTFigur()}
    {...}
};
 

xyZman

Bekanntes Mitglied
autsch..
dann eher so, das erspart etwas Arbeit oder
Java:
  BTFigur A = new BTFigur(false,1,2,'+');
	
	BTFigur[][] brett={ {A, A, A, A, A, A, A, A },
		{ A, A, A, A, A, A, A, A }, { N, N, N, N, N, N, N, N },
		{ N, N, N, N, N, N, N, N }, { N, N, N, N, N, N, N, N },
		{ B, B, B, B, B, B, B, B }, { B, B, B, B, B, B, B, B } };
 

xyZman

Bekanntes Mitglied
Also, es klappt noch nicht.
Hier mal meine ganze Klasse. In den ersten beiden Zeilen der nxn möchte ich '+' haben.

Java:
class Breakthrough {
	public static void main(String[]args){
		BTSpielbrett brett = new BTSpielbrett();
		Breakthrough spiel = new Breakthrough(brett);
		spiel.spielen();
	}
	
	BTSpielbrett brett ;
	Breakthrough(BTSpielbrett brett){
		this.brett = brett;
	}
	void spielen(){
	this.brett.gebeBrettaus();
	}

	
}
class BTSpielbrett{
	final static int n= 8;
	final static BTFigur START = null;
	
	BTFigur[][] brett;
	
	BTSpielbrett(){
		this.brett=new BTFigur[n][n];
		for ( int i=0;i<n;i++)
			for ( int j=0;j<n;j++)
				this.brett[i][j]=null;
		
	}

	
	void gebeBrettaus(){
		IO.print(" ");
		for (int j = 0; j < n; j++) {
			IO.print(j);
			IO.print(" ");
			
			
		}
		
		
		IO.println();
		
		for (int i = 0; i < n; i++) {
			IO.print(i);
			
	
			
			for (int j = 0; j < n; j++) {
				if (this.brett[i][j] == START){
					
					
					
					IO.print(BTFigur.LEER);
					
					IO.print(" ");
					}
					
					
					
				else if (this.brett[i][j].istAFigur())
					IO.print(BTFigur.KREUZ);
				else
					IO.print(BTFigur.KREIS);
				
			}
			IO.println();
		
		}
	}

class BTFigur{
final static char KREUZ='x';
final static char KREIS='o';
final static char LEER='.';

boolean aOderB;
int zeile,spalte;
boolean istLeer;
 BTFigur(boolean aOderB, int zeile,int spalte,boolean istLeer){
	 this.aOderB =aOderB;
	 this.zeile= zeile;
	 this.spalte=spalte;
	 this.istLeer=istLeer;
 }
 boolean istAFigur(){
	 return this.aOderB;
 }
 
 boolean istBFigur() {
		return !this.istAFigur();
 }
 int getZeile() {
		return this.zeile;
	}

	int getSpalte() {
		return this.spalte;
	}
	
  public char getAFigur() {
		return KREUZ;
	}

  public char getBFigur() {
		return KREIS;
}
  public char getLeer(){
	   return LEER;
   }
}
class BTSpieler{
	boolean istSpielerA;
	
	BTSpieler(boolean istA){
		this.istSpielerA=istA;
	}
	boolean istSpielerB() {
		return !this.istSpielerA();
	}
	boolean istSpielerA(){
		return this.istSpielerA();
	}
}
}
 

hdi

Top Contributor
Ohne den Thread komplett durchgelesen zu haben, aber wenn ich mir diese 2D-Array Initialisierung ansehe, kommt folgender Gedanke: Evtl schreibst du dir ne Kleine Hilfsmethode die aus einer Bilddatei einer 2D-Array bastelt? Die Spielfelder malst du dann in ne Datei, zB mit paint. Einfach 1 schwarzes Pixel für X, und nix (weiß) für O. Oder keine Ahnung worum's genau geht, du kannst auch mehrere verschiedene Farben nehmen die jeweils einen bestimmten Typ von Feld repräsentieren. Das geht evtl intuitiver von der Hand als das direkt im Code zu machen, und bläht dir den Code auch nicht mit diesem Monster-Code auf?
 

HimBromBeere

Top Contributor
Hier mal meine ganze Klasse. In den ersten beiden Zeilen der nxn möchte ich '+' haben.
ich hab noch nirgends gefunden, wo du das machst. Am besten wohl in der for-Schleife im Konstruktor:
Java:
this.brett = new BTFigur[n][n];
    for ( int i = 0; i < 2; i++)
            for ( int j = 0; j < n; j++)
                    this.brett[i][j] = '+';

    for ( int i = 2; i < n; i++)
            for ( int j = 0; j < n; j++)
                this.brett[i][j] = null;
 
Zuletzt bearbeitet:

xyZman

Bekanntes Mitglied
Hab ich mir auch schon gedacht, doch dann bekomme ich beim '+' :Type mismatch: cannot convert from char to
BTSpielbrett.BTFigur
 

HimBromBeere

Top Contributor
achja, Tschuldigung, da muss dann natürlich new BTFigur("+") (oder wie auch immer der Konstruktor dafür lautet) hin, alternaitv auch die bereits von dir erwähnte Kürzung "= A"
 

faetzminator

Gesperrter Benutzer
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
T Array füllen Java Basics - Anfänger-Themen 11
A Array richtig füllen Java Basics - Anfänger-Themen 2
krgewb Array später füllen Java Basics - Anfänger-Themen 1
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
B Array via Schleife mit ungeraden bzw geraden Zahlen füllen Java Basics - Anfänger-Themen 7
A Methoden Array mit Methode nacheinander füllen Java Basics - Anfänger-Themen 3
K Array mit for-each Schleife füllen Java Basics - Anfänger-Themen 5
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
Y Erste Schritte Spielfeld, Array füllen mit Treffern...?! Java Basics - Anfänger-Themen 3
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
B Methoden Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
C zwei dimensionales array mit "1 " füllen Java Basics - Anfänger-Themen 8
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
JG12111989 2D Array mit Array[] füllen Java Basics - Anfänger-Themen 21
J Array mit Zahlen füllen Java Basics - Anfänger-Themen 28
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
S Mehrdimensionales Array füllen Java Basics - Anfänger-Themen 1
P Ein Array mit der Eingaber der User füllen und ausgeben Java Basics - Anfänger-Themen 6
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
M char Array füllen Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
T Erste Schritte Int Array zufällig mit Zahlen füllen Java Basics - Anfänger-Themen 7
P Objekt mit Werten aus Array füllen Java Basics - Anfänger-Themen 10
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
E Array mit Zufallswerten von 1 bis 45 ohne Wiederholung füllen Java Basics - Anfänger-Themen 21
R Nächstes leeres Feld im array füllen? Java Basics - Anfänger-Themen 14
B Array füllen Java Basics - Anfänger-Themen 14
S Array Liste füllen Java Basics - Anfänger-Themen 16
J double-Array mit Werten von Methode füllen und an andere Methode übergeben Java Basics - Anfänger-Themen 3
K Int Array mit "Leerzeichen" füllen Java Basics - Anfänger-Themen 2
F Datentypen Zweidimensionales Array füllen Java Basics - Anfänger-Themen 6
D Array zufällig mit 1 oder 0 oder mit true oder false füllen Java Basics - Anfänger-Themen 5
H mit Schleife ein Array mit Objekten füllen Java Basics - Anfänger-Themen 3
S Mehrdimensionales Array füllen und kopieren! Java Basics - Anfänger-Themen 14
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Array mit Stringtokenizer füllen Java Basics - Anfänger-Themen 2
C Array mit int Werten füllen ( von z.B. 1 - x ) Java Basics - Anfänger-Themen 13
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
S Object Array füllen Java Basics - Anfänger-Themen 8
G mit setMethode array füllen Java Basics - Anfänger-Themen 4
0 Array mit unterschiedlichen Objekten füllen? Java Basics - Anfänger-Themen 8
R String Array füllen? Java Basics - Anfänger-Themen 2
O must be an array type (String array füllen) Java Basics - Anfänger-Themen 7
C Array füllen Java Basics - Anfänger-Themen 5
P Array füllen & sortieren Java Basics - Anfänger-Themen 3
M Array mit Werten füllen und sortieren Java Basics - Anfänger-Themen 2
C Byte-Array mit Dateiinhalt füllen Java Basics - Anfänger-Themen 7
M Array mit Alphabet füllen Java Basics - Anfänger-Themen 4
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben