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
<Kurs>Objektorientierte Programmierung mit S3 und R6 in R</Kurs>Übungsanweisungen
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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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?
___