Mach es classy (1)
Die Funktion class() kann nicht nur die Klasse auslesen, sondern auch überschreiben. Die Syntax lautet:
class(x) <- "some_class"
Das ist besonders für Listen nützlich, da sich mit Listen andere Variablen zu komplexeren Variablen kombinieren lassen. (Erinnere dich an die Lego-Analogie: Einzelne Variablen sind wie Lego-Steine, und mit Listen kannst du daraus bauen, was du willst.)
In dieser Übung schaust du dir ein Objekt an, das den Zustand einer Schachpartie speichert, und überschreibst seine Klasse.
Damit die Übung Sinn ergibt, solltest du ein bisschen über Schach wissen.
- Es gibt zwei Spieler in einer Schachpartie, „weiß“ und „schwarz“.
- Jede Seite hat sechs Figurentypen: König, Dame, Läufer, Springer, Türme und Bauern.
- Die Position jeder Figur wird mit Reihe ("a" bis "h") und Spalte (1 bis 8) erfasst.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung mit S3 und R6 in R
Anleitung zur Übung
Die Listenvariable chess wurde bereits in deinem Workspace vordefiniert.
- Erkunde
chess, um seine Struktur zu verstehen. - Überschreibe die Klasse von
chessauf"chess_game". - Prüfe mit
is.list()(docs), obchessweiterhin eine Liste ist. - Bestimme, wie viele Figuren noch auf dem Brett sind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Explore the structure of chess
str(chess)
# Override the class of chess
___ <- ___
# Is chess still a list?
___
# How many pieces are left on the board?
___