Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

De lijstvariabele chess is al voor je gedefinieerd in je werkruimte.

  • Verken chess om de structuur te begrijpen.
  • Overschrijf de klasse van chess naar "chess_game".
  • Controleer of chess nog steeds een lijst is met is.list() (docs).
  • Bepaal hoeveel stukken er nog op het bord staan.
    • Een goede aanpak is om het object te flatten met unlist() (docs) en de length() terug te geven (docs).

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?
___
Code bewerken en uitvoeren