CommencezCommencez gratuitement

Donnez-lui du style (1)

En plus de simplement récupérer la classe, la fonction class() peut servir à la remplacer. La syntaxe est la suivante :

class(x) <- "some_class"

C'est particulièrement utile pour les listes, puisqu'elles permettent de combiner d'autres variables pour créer des variables plus complexes. (Rappelez-vous l'analogie avec les blocs 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 bien suivre l'exercice, il faut connaître un peu les échecs.

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

Cette activité fait partie du cours

Programmation orientée objet avec S3 et R6 en R

Voir le cours

Instructions de l’exercice

La liste chess a été préconfigurée 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 à l'aide de is.list() (docs).
  • Déterminez le nombre de pièces encore sur l'échiquier.
    • Une bonne approche consiste à aplatir l'objet avec unlist() (docs) et à retourner sa length() (docs).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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