Maak het Classy (1)
Naast het ophalen van de klasse kun je met de functie class() deze ook overschrijven. De syntax is
class(x) <- "some_class"
Dit is vooral handig voor lijsten, omdat je daarmee andere variabelen kunt combineren tot complexere variabelen. (Denk aan de Lego-analogie: individuele variabelen zijn als Legosteentjes, en met lijsten kun je bouwen wat je maar wilt.)
In deze oefening kijk je naar een object om de staat van een schaakpartij op te slaan en overschrijf je de klasse ervan.
Om de oefening te begrijpen, moet je een beetje schaken kennen.
- Er zijn twee spelers in een schaakpartij, genaamd "wit" en "zwart".
- Elke speler heeft zes soorten stukken: een koning, een dame, lopers, paarden, torens en pionnen.
- De positie van elk stuk kan worden vastgelegd met de rij ("a" tot en met "h") en de kolom (1 tot en met 8).
Deze oefening maakt deel uit van de cursus
Objectgeoriënteerd programmeren met S3 en R6 in R
Oefeninstructies
De lijstvariabele chess is al voor je gedefinieerd in je werkruimte.
- Verken
chessom de structuur te begrijpen. - Overschrijf de klasse van
chessnaar"chess_game". - Controleer of
chessnog steeds een lijst is metis.list()(docs). - Bepaal hoeveel stukken er nog op het bord staan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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?
___