CommencerCommencer gratuitement

Rendez-le élégant (1)

En plus de simplement récupérer la classe, la fonction class() peut être utilisée pour la remplacer. La syntaxe est la suivante

class(x) <- "some_class"

C’est particulièrement utile pour les listes, car elles permettent de combiner d’autres variables en variables plus complexes. (Rappelez-vous l’analogie avec les Lego : les variables individuelles sont comme des pièces de Lego, et vous pouvez utiliser des listes pour construire ce que vous voulez.)

Dans cet exercice, vous allez examiner un objet qui stocke l’état d’une partie d’échecs, et remplacer sa classe.

Pour que l’exercice ait du sens, vous devez connaître un peu les échecs.

  • Une partie d’échecs oppose deux joueurs, appelés « white » et « black ».
  • Chaque joueur dispose de six types de pièces : un roi, une dame, des fous, des cavaliers, des tours et des pions.
  • La position de chaque pièce peut être notée à l’aide de la ligne (« a » à « h ») et de la colonne (1 à 8).

Cet exercice fait partie du cours

Programmation orientée objet avec S3 et R6 en R

Afficher le cours

Instructions

La variable liste chess a été prédéfinie dans votre espace de travail.

  • Explorez chess pour comprendre sa structure.
  • Remplacez la classe de chess par "chess_game".
  • Vérifiez si chess est toujours une liste avec is.list() (docs).
  • Déterminez le nombre de pièces encore présentes sur l’échiquier.
    • Une bonne approche consiste à aplatir l’objet avec unlist() (docs) et à renvoyer sa length() (docs).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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?
___
Modifier et exécuter le code