4x4 Tabelle als Bitboard darstellen

TimBone

Mitglied
Moin miteinander,
im Rahmen eines Schulprojekts versuche ich das Spiel 2048 vom Computer lösen zu lassen. Dazu greife ich auf die WebApp über das Chrome Remote Debugging zu und würde die Felder gerne in einer long speichern, um die möglichen Züge möglichst schnell zu berechnen. Bei 16 Feldern, ergeben sich bei 64bit genau 4bit für ein Feld, was sehr gut passt, da ich so mit den zweier Potenzen arbeiten kann (0-f). Allerdings habe ich keinen wirklichen Ansatz, wie ich dieses Bitboard erstellen kann. Auch in Java-Büchern, die sich mit Bitshifting beschäftigen, werde ich nicht wirklich fündig. Habt ihr einen Ansatz für mich, oder vielleicht ein Stichwort, nach dem ich weiter suchen kann?

Da ich nicht ganz sicher bin, ob das verständlich ist, hier mal als Beispiel

Feld:
0 0 0 0
0 2 0 0
2 0 0 0
0 0 0 2

Soll zu 0x0010010000000001 werden.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich persönlich würde den Ansatz nicht benutzen, das macht alles nur komplizierter ;)

---

Wo hakt es denn bei der Lösung?

Feld in index im long und passende Potenz zu überführen?
zahl im long speichern?

Speichern ist im Prinzip die Zahl passend shiften, und mit dem long verodern, und Zahl lesen den long mit passender Bitmaske verunden und wieder zurückshiften
 

TimBone

Mitglied
Hallo, ersteinmal danke für deine Antwort.
Meinst Du es wäre also sinnvoller, beispielsweise einen 2D-Array zu nehmen, oder welche Alternative hättest Du im Kopf?

----
Es hakt bei dem Ansatz das Bitboard zu erstellen, ich habe ein wenig rum probiert, aber bin zu keinem Ergebnis gekommen, das Problem ist scheinbar, dass der Wert rausfliegt, wenn ich ihn nach rechts verschiebe, da ja noch keine freien Nullen da sind.
 

mrBrown

Super-Moderator
Mitarbeiter
Hallo, ersteinmal danke für deine Antwort.
Meinst Du es wäre also sinnvoller, beispielsweise einen 2D-Array zu nehmen, oder welche Alternative hättest Du im Kopf?
Ich würd ein 2D-Array nehmen, reicht ja ein byte[][]. Wenn man den Zugriff darauf hinter nem Interface versteckt, kann man nachher aber immer noch mal die Lösung mit dem Bitboard testen ;)

Es hakt bei dem Ansatz das Bitboard zu erstellen, ich habe ein wenig rum probiert, aber bin zu keinem Ergebnis gekommen, das Problem ist scheinbar, dass der Wert rausfliegt, wenn ich ihn nach rechts verschiebe, da ja noch keine freien Nullen da sind.
Die Einsen werden beim zu weit shiften rausgeschoben, in beide Richtungen, man muss halt jeweils passend weit schieben. Generell funktioniert es aber hierbei schon, das ganze in einem long zu speichern

Zeig mal was du ausprobiert hast, vllt sieht man den Fehler direkt ;)
 

TimBone

Mitglied
Die Idee mit dem 2D Array ist gar nicht schlecht, ich werde sie auch mal probieren und gucken, was mir letztendlich besser gefällt.

Hier einfach mal der Code, es gab zwar auch noch andere Versionen, aber das war letztendlich der Grundgedanke. http://pastebin.com/NKGjv2mW
 

mrBrown

Super-Moderator
Mitarbeiter
Deine Code funktioniert schon mal nicht, weil EMPTY_BOARD & value immer 0 ergibt. Du verundest an der Stelle 0 mit irgendwas, da 0 nur Nullen enthält, kann beim verunden auch nur 0 rauskommen ;)

int value =Integer.valueOf(Integer.toHexString(pow), 16); ist auch ziemlich überflüssig ;) Du machst zu erst aus dem int einen String mit Basis 16, und parsed den String dann wieder mit Basis 16 zurück, kommt also nur wieder pow raus.

Was zum speichern in board ginge wäre: board = board | (pow << position)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
L Hash-Tabelle Allgemeine Java-Themen 2
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
S 2-spaltige Ausgabe als Tabelle ausgeben Allgemeine Java-Themen 12
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
Iron Monkey Spalte der Tabelle abwechselnd färben Allgemeine Java-Themen 8
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
K HTTP Auslesen einer Tabelle Allgemeine Java-Themen 8
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
R Datum in Excel Tabelle eintragen Allgemeine Java-Themen 6
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
K LibreOffice Tabelle Dateien im Format .ods bearbeiten Allgemeine Java-Themen 2
M In einer Tabelle rechnen Allgemeine Java-Themen 12
D Tabelle umwandeln Allgemeine Java-Themen 12
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
nrg JDOM Tabelle lesen Allgemeine Java-Themen 6
S Javascript & MSAccess Tabelle Allgemeine Java-Themen 5
Weiti Programm zum erstellen einer tabelle aus textdateien Allgemeine Java-Themen 24
R Tabelle - Berechnung der "Zeilenart" Allgemeine Java-Themen 2
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
A Text durchgestrichen in einer Tabelle darstellen Allgemeine Java-Themen 2
D Spaltenbereite einer Tabelle Allgemeine Java-Themen 2
J Leerer Spalteninhalt in einer Tabelle in JSP Allgemeine Java-Themen 5
M Datum in Tabelle formatiert ausgeben Allgemeine Java-Themen 3
P Datenbank Tabelle spiegeln Allgemeine Java-Themen 22
G Probleme mit dem erstellen einer Tabelle Allgemeine Java-Themen 6
G Tabelle in ein Array schreiben Allgemeine Java-Themen 3
S Excel Tabelle Allgemeine Java-Themen 8
G HTML Tabelle auslesen Allgemeine Java-Themen 8
J Problem mit dem aktualisieren der Tabelle Allgemeine Java-Themen 8
B Tabelle. bei Wertänderung was bestimmtes machen Allgemeine Java-Themen 3
S Werte in Tabelle einfügen! Allgemeine Java-Themen 9
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
M Daten in Excel Tabelle schreiben? Allgemeine Java-Themen 7
H Hash Tabelle einlesen und die Werte an ein Array übergeben Allgemeine Java-Themen 10
D iText: Tabelle in Footer einfügen Allgemeine Java-Themen 6
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
M Wie könnte man den Codeschnipsel rekursiv darstellen? Allgemeine Java-Themen 1
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Code Page characters darstellen Allgemeine Java-Themen 12
C Symbol für Gaußsche Summenformel in Kommentarzeile darstellen Allgemeine Java-Themen 3
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
A Kalender darstellen Allgemeine Java-Themen 1
D JPanel in Mail darstellen Allgemeine Java-Themen 30
KilledByCheese 2D-Grafik 2D-Array als Gitter darstellen Allgemeine Java-Themen 2
D AWT Tiff-Datei darstellen bzw in darstellbares Format umwandeln Allgemeine Java-Themen 2
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
K AWT Aus einer Datei die Koordinaten Angaben herauslesen und dreidimensional darstellen Allgemeine Java-Themen 2
M DYGraphen darstellen... fehlende Einstellungen Allgemeine Java-Themen 1
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
M Temperaturverlauf in Farbe darstellen Allgemeine Java-Themen 8
J [JPA] Overlaps mit JPQL darstellen Allgemeine Java-Themen 2
R Hierarchie mit HashMap darstellen Allgemeine Java-Themen 19
K Java Operatoren mit Strings darstellen Allgemeine Java-Themen 8
Crashbreaker RCP-View Image öffnen und darstellen Allgemeine Java-Themen 7
K Beziehung darstellen Allgemeine Java-Themen 4
B ASCII als 8-bit Binärstring darstellen Allgemeine Java-Themen 5
J Hex Werte in Bitmap Raster darstellen Allgemeine Java-Themen 16
0 2D-Grafik Wertegruppen darstellen Allgemeine Java-Themen 2
B Excel Datei in einem Java Programm mit GUI darstellen Allgemeine Java-Themen 9
C BigInteger in Exponentialschreibweise darstellen Allgemeine Java-Themen 2
S Java-Klassen Abhaengigkeiten grafisch darstellen? Allgemeine Java-Themen 4
R sHotEqn --> LaTeX-Code darstellen Allgemeine Java-Themen 8
E Wie Hexzahl als String darstellen? Allgemeine Java-Themen 4
S suche library die diagramme darstellen kann Allgemeine Java-Themen 2
G Kommazahlen mit Komma in Textfeld darstellen Allgemeine Java-Themen 11
U PGM darstellen Allgemeine Java-Themen 5
P Chart, Kennlinien darstellen Allgemeine Java-Themen 3
G Diagramm darstellen mit Javascript Allgemeine Java-Themen 41
P Images abwechselnd Darstellen Allgemeine Java-Themen 12
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
G diagramm um Zustände darstellen zu können Allgemeine Java-Themen 5
Y Zeichen verschiedenfarbig in einer JTextPane darstellen Allgemeine Java-Themen 17
E Spezielle Buchstaben darstellen? Allgemeine Java-Themen 7
R Bild downloaden und darstellen lassen Allgemeine Java-Themen 5
D Mathematische Funktion grafisch in Java darstellen Allgemeine Java-Themen 2
L Spielerei: Frame rekursiv darstellen Allgemeine Java-Themen 3
G Mathematische Zeichen darstellen Allgemeine Java-Themen 6
thE_29 Wie hex Zahlen darstellen Allgemeine Java-Themen 3
K Vektoren darstellen. Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben