Schach / zweidimensionales Array

fhaslbs

Mitglied
Hallo zusammen

Ich habe den Auftrag ein Schach zu programmieren ;(

nun überlege ich mir ob es möglich wäre das ganze in einem zweidimensionalen Array zu lösen - das würde die Regeln vereinfachen, da man sozusagen mit einer x und einer y-Achse schaffen könnte.

Meine vorstellung: z.B. der König bewegt sich von dem Feld [4][0] auf das Feld [5][1].
Das brauche ich: einen Zähler der mir angibt, um wie viel die x/y Achse sich verändert, in diesem Fall z.B

xzaehler = 1
yzaehler = 1

Weiss jemand ob und wie so etwas in java möglich ist?

Vielen Dank für die Hilfe
 

faetzminator

Gesperrter Benutzer
Natürlich wär das in Java möglich. Allerdings ist es auch immer in einem eindimensionalem Array möglich, in dem man statt [c]field[x][y][/c] einfach [c]field[y * size + x][/c] verwendet - wobei [c]size[/c] natürlich 8 ist.
Aber wenn du hier solche Fragen stellst, würd ich dir überhaupt nicht empfehlen, irgendwas in Richtung Schach oder dergleichen zu implementieren sondern erst ein Mal monatelang die Grundlagen lernen und einfache Dinge programmieren.
 

fhaslbs

Mitglied
Danke für die Antwort

Die eindimensionale Lösung lass ich bewusst aus - das gibt nämlich Ärger mit dem Springer, wenn dieser nicht irgend wo in der Mitte steht...

Java:
Natürlich wär das in Java möglich.
Das denke ich auch - aber wie?

Ich habe bereits Monatelang rumprogrammiert - auch wenn es sich nicht so anhört wenn man meine Frage liest =)
 
S

SlaterB

Gast
ich könnte jetzt auch monatelang rumprobieren auf chinesisch 'Wulff muss weg' zu formulieren und würde doch nie zum Ziel kommen oder das nicht bemerken..,
lerne Java, lerne Dinge gedanklich zu struktieren, dann kommen vielleicht sinnvolle Fragen heraus

du kannst auch anderen Code posten, vom Spielfeld, Darstellung usw. um bisschen zu belegen dass du überhaupt irgendwas hast

die Frage lohnt generell nicht wirklich, hat fast keinen Inhalt, 1+1 kann man auf tausende Weisen darstellen,
in zwei Variablen, in einem Array, in einer Klasse mit zwei Attributen usw.,
ohne Konzept und Gesamtprogramm ist das eigentlich keine Frage
 

faetzminator

Gesperrter Benutzer
Die eindimensionale Lösung lass ich bewusst aus - das gibt nämlich Ärger mit dem Springer, wenn dieser nicht irgend wo in der Mitte steht...

Wieso denn? Egal ob du mit einem ein- oder zweidimensionalen Array arbeitest, kannst du immer alles mit x und y machen. Lediglich die Arrayzugriffe erfolgen dann wie von mir beschrieben über [c]y * size + x[/c].
 

fhaslbs

Mitglied
Hier ein Beispiel:
Das Problem liegt darin, dass so das Feld nicht in Zeilen und Spalten eingeteilt wird: Allgemein gibt es für den Spriner Mathematisch gesehen Acht Regeln, so wie du es ausdrückst würden sie so aussehen:

-(2*size)+1 //15 Felder zurück
-(2*size)-1 //17 Felder zurück
+(2*size)-1 //15 Felder nach vorne
+(2*size)+1 //17 Felder nach vorne
-(1*size)+2 //10 Felder nach hinten
-(1*size)-2 //6 Felder nach hinten
+(1*size)+2 //10 Felder nach vorne
+(1*size)-2 //6 Felder nach vorne

Angenommen wir nummerieren das Feld durch von 0 bis 63, und der Springer steht auf a3 (Feldnummer 16) und wir wenden nun die Regel +(2*size)-1 an, wären wir auf dem Feld H4(Feldnummer 31), oder nicht?
Schachbrett_Nummerierung.png



PS: sollte ich mich irren bekommst du in wacken ein bier :)
 
S

SlaterB

Gast
wie gesagt wurde: ob eindimensional oder zweidimensional sagt nicht unbedingt etwas über die verwendeten Regeln aus,
niemand hat vorgeschlagen +15 zu rechnen,

auch für eindimensionale Position 16 kann man auf höherer Abstraktionsebene x=1,y=3 oder String "a3" oder was auch immer verwenden
und dann prüfen ob man noch weiter nach links kann was bei x am linken Rand schwierig wird,
es muss nur an wenigen zentralen Programmstellen x/y auf eindimensionalen Array-Index umgerechnet werden, dann ist es ganz egal wie gespeichert wird,

freilich schadet es dann auch nicht, gleich ein 2D-Array zu nehmen, nur der Punkt ist dass die Entscheidung darüber nicht alles festlegt,
man kann genauso auch ein 2D-Array nehmen und Index 0-63..
 

faetzminator

Gesperrter Benutzer
Hier ein Beispiel:
Das Problem liegt darin, dass so das Feld nicht in Zeilen und Spalten eingeteilt wird: Allgemein gibt es für den Spriner Mathematisch gesehen Acht Regeln [...]
Natürlich, die gibts so oder so :) Der Springer kann (wenn er sich auf einer geeigneten Position befindet), in 8 Richtungen hüpfen. Kommt aber nicht darauf an, denn du kannst eine Methode [c]Springer.move(...)[/c] machen, welche dann irgendwie auf dem Brett ein [c]move(Point from, Point to)[/c] - oder wie auch immer - aufruft. Ob dahinter nun ein 1- oder 2D Array steckt, ist wirklich egal :)

Angenommen wir nummerieren das Feld durch von 0 bis 63, und der Springer steht auf a3 (Feldnummer 16) und wir wenden nun die Regel +(2*size)-1 an, wären wir auf dem Feld H4(Feldnummer 31), oder nicht?
Da geh ich davon aus, denn 16+2*8-1 gibt 31.

PS: sollte ich mich irren bekommst du in wacken ein bier :)
Diesen Event hab ich schon vor ein paar Jahren aufgegeben...
 

fhaslbs

Mitglied
Natürlich, die gibts so oder so Der Springer kann (wenn er sich auf einer geeigneten Position befindet), in 8 Richtungen hüpfen. Kommt aber nicht darauf an, denn du kannst eine Methode Springer.move(...) machen, welche dann irgendwie auf dem Brett ein move(Point from, Point to) - oder wie auch immer - aufruft. Ob dahinter nun ein 1- oder 2D Array steckt, ist wirklich egal

vielen Dank - genau diese Methode habe ich gesucht. Das nächste mal werde ich ein zweites mal herumsehen, bevor ich versuche ein Rad neu zu erfinden oder das Forum zu belästigen...

Da geh ich davon aus, denn 16+2*8-1 gibt 31.

sind wir ja der gleichen Meinung

Diesen Event hab ich schon vor ein paar Jahren aufgegeben...
Bin auch nicht so der Fan von 888 Kilometern Autobahn, aber wenn man in guter gesellschaft unterwegs ist...
--> egal ist der falsche ort um über wacken zu diskutieren.

Vielen Dank nochmals für den Tipp mit .move
 

faetzminator

Gesperrter Benutzer
Öhm wie meinst du den Tipp mit [c]move()[/c] :) ? Ich hab mich hier nicht auf irgendwelchen existierenden Source code gestützt, sondern einfach meine Gedanken geschildert.

Bin auch nicht so der Fan von 888 Kilometern Autobahn, aber wenn man in guter gesellschaft unterwegs ist...
Ich komm aus der Schweiz und war vier Mal dort, das ist nicht das Problem. Aber es wurde einfach in letzter Zeit zu sehr kommerzialisiert. Und die Ticketpreise zigfach erhöht (nicht, dass ich es nicht zahlen könnte...). Und all die neuen Regeln dort... Wacken war immer geil, weil eine Art friedliche Anarchie herrschte ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Schach programmieren Allgemeine Java-Themen 2
M Schach schnelle Zuggenerierung Allgemeine Java-Themen 3
H Schach Designfehler, Algorithmenproblem Allgemeine Java-Themen 25
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
E Zweidimensionales Array Integer[10 000][10 000] -> out of memory? Allgemeine Java-Themen 4
D Zweidimensionales Array als Matrix ausrpinten lassen Allgemeine Java-Themen 4
S Zweidimensionales Array neue Zeile erzeugen Allgemeine Java-Themen 3
J Zweidimensionales Array durch ZwischenArray ersetzen Allgemeine Java-Themen 3
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben