Class Board
In: scrabble.rb
Parent: Object

Das Spielbrett ist das zentralste Element und ist für die Darstellung, das Ausprobieren und Platzieren von Wörtern zuständig.

Methods

Constants

SIZE = 15   Die grösse des Spielfeldes

Attributes

empty_field  [R]  Zeichen um leere Felder darzustellen
points  [R]  Das Total der Punkte

Public Class methods

Initialisiert die Membervariablen und erstellt ein 2-dimensionales Array für das Spielfeld.

Public Instance methods

Gibt die Array-Repräsentation des Bretts zurück.

Gibt ein Array der gesetzten Buchstaben des Spielfeldes zurück.

Das erste Wort im Spiel wird horizontal zentriert in der Mitte des Brettes platziert.

Platziert das übergebene Wort mit dem ersten Buchstaben an der Position (x/y) und den folgenden darunter davon, also vertikal.

Platziert das übergebene Wort mit dem ersten Buchstaben an der Position (x/y) und den folgenden rechts davon, also horizontal.

Gibt eine String-Repräsentation des Spielfeldes zurück.

Um zu entscheiden, ob ein Wort platziert werden kann, wird folgendes geprüft:

  • Das neue Wort muss mindestens einen bereits gesetzten Buchstaben wiederverwenden.
  • Es müssen genügend Buchstaben im Rack vorhanden sein.
  • Es muss mindestens ein leeres Feld besetzt werden.
  • Falls ein Buchstabe auf ein leeres Feld zu liegen kommt, müssen die zur Legerichtung orthogonalen, direkt angrenzenden Felder auch leer sein.
  • Anfang und Ende des neues Wortes dürfen nicht direkt an ein bestehendes Wort anliegen.

Das finden des nächsten Buchstaben, des nächsten Feldes sowie der benachbarten Feldern wird mittels der drei letter_-Funktionen gelöst um die Logik für beide Legerichtungen gleich implementieren zu können.

Versucht, das übergebene Wort im Spielfeld zu platzieren, wobei mit der Suche oben Links begonnen wird. Der zweite Parameter wird benötigt, um zu überprüfen, ob genügend Buchstaben vorhanden sind.

Versucht, das Wort nach unten zu platzieren

Versucht, das Wort nach rechts zu platzieren

Addiert die Punkte für das übergebene Wort zum Total.

[Validate]