LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

Die Listenvariable chess wurde bereits in deinem Workspace vordefiniert.

  • Erkunde chess, um seine Struktur zu verstehen.
  • Überschreibe die Klasse von chess auf "chess_game".
  • Prüfe mit is.list() (docs), ob chess weiterhin eine Liste ist.
  • Bestimme, wie viele Figuren noch auf dem Brett sind.
    • Ein guter Ansatz ist, das Objekt mit unlist() (docs) abzuflachen und seine length() (docs) zurückzugeben.

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?
___
Code bearbeiten und ausführen