AwesomeSauce
Lt. Junior Grade
- Registriert
- Juli 2009
- Beiträge
- 396
Hallo alle zusammen,
Ohne gross um den Brei herumzureden, komme ich gleich zur Sache:
Unsere Aufgabe ist es, eine KI für das Spiel Reversi (Othello) mittels eines Spielbaums zu schreiben. Dazu brauchen wir eine effiziente Repräsentation des Spielbretts, welches 8x8 Felder gross ist.
Hierzu einfach ein mehrdimensionales Array zu verwenden, wäre zwar die simpleste und komfortabelste Lösung, jedoch sehr ineffizient. Die Maschine, auf der das Spiel dann gegen unsere Gegner antreten soll, stellt uns nur 128MB (die wir jedoch voll verwenden können) Ram zur Verfügung.
Pro Feld können drei Zustände angenommen werden (nicht besetzt, von Spieler 1 besetzt, von Spieler 2 besetzt). Wir haben uns daher überlegt, dass wir hierfür zwei Longs benutzen könnten. Im einen Long wird jeweils gespeichert, ob das Feld besetzt ist oder nicht, im anderen Long wird gespeichert, von welchem Spieler das Feld besetzt ist.
Jedoch ist uns nicht ganz ersichtlich, wie wir die Longs aus dem Spielbrett heraus erstellen sollen, oder bei gegebenen Longs wieder einzelne Felder herauslesen können. Bit-weise wäre es ja kein grosses Problem, jedes Bit entspricht ja dem Zustand eines Feldes.
Vielleicht hat ja jemand von euch die zündende Idee
Ohne gross um den Brei herumzureden, komme ich gleich zur Sache:
Unsere Aufgabe ist es, eine KI für das Spiel Reversi (Othello) mittels eines Spielbaums zu schreiben. Dazu brauchen wir eine effiziente Repräsentation des Spielbretts, welches 8x8 Felder gross ist.
Hierzu einfach ein mehrdimensionales Array zu verwenden, wäre zwar die simpleste und komfortabelste Lösung, jedoch sehr ineffizient. Die Maschine, auf der das Spiel dann gegen unsere Gegner antreten soll, stellt uns nur 128MB (die wir jedoch voll verwenden können) Ram zur Verfügung.
Pro Feld können drei Zustände angenommen werden (nicht besetzt, von Spieler 1 besetzt, von Spieler 2 besetzt). Wir haben uns daher überlegt, dass wir hierfür zwei Longs benutzen könnten. Im einen Long wird jeweils gespeichert, ob das Feld besetzt ist oder nicht, im anderen Long wird gespeichert, von welchem Spieler das Feld besetzt ist.
Jedoch ist uns nicht ganz ersichtlich, wie wir die Longs aus dem Spielbrett heraus erstellen sollen, oder bei gegebenen Longs wieder einzelne Felder herauslesen können. Bit-weise wäre es ja kein grosses Problem, jedes Bit entspricht ja dem Zustand eines Feldes.
Vielleicht hat ja jemand von euch die zündende Idee