EmpezarEmpieza gratis

Ponle clase (1)

Además de obtener la clase, la función class() también puede usarse para sobrescribirla. La sintaxis es:

class(x) <- "some_class"

Esto es especialmente útil para las listas, ya que permiten combinar otras variables en objetos más complejos. (Recuerda la analogía de Lego: las variables individuales son como piezas de Lego, y con las listas puedes construir lo que quieras.)

En este ejercicio, vas a mirar un objeto que almacena el estado de una partida de ajedrez y a sobrescribir su clase.

Para que el ejercicio tenga sentido, necesitas saber un poco de ajedrez.

  • En una partida de ajedrez hay dos jugadores, llamados "white" y "black".
  • Cada jugador tiene seis tipos de piezas: rey, reina, alfiles, caballos, torres y peones.
  • La posición de cada pieza puede registrarse usando la fila ("a" a "h") y la columna (1 a 8).

Este ejercicio forma parte del curso

Programación orientada a objetos con S3 y R6 en R

Ver curso

Instrucciones del ejercicio

La lista chess se ha predefinido en tu espacio de trabajo.

  • Explora chess para entender su estructura.
  • Sobrescribe la clase de chess a "chess_game".
  • Comprueba si chess sigue siendo una lista usando is.list() (docs).
  • Determina cuántas piezas quedan en el tablero.
    • Una buena estrategia es aplanar el objeto con unlist() (docs) y devolver su length() (docs).

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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?
___
Editar y ejecutar código