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
Instructions
La variable liste chess a été prédéfinie dans votre espace de travail.
- Explorez
chesspour comprendre sa structure. - Remplacez la classe de
chesspar"chess_game". - Vérifiez si
chessest toujours une liste avecis.list()(docs). - Déterminez le nombre de pièces encore présentes sur l’échiquier.
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?
___