Kom igångKom igång gratis

Ge det en klass (1)

Förutom att hämta en klass kan funktionen class() även användas för att ändra den. Syntaxen är

class(x) <- "some_class"

Detta är särskilt användbart för listor, eftersom listor kan kombinera flera variabler till mer komplexa strukturer. (Tänk på Lego-analogin: enskilda variabler är som Lego-bitar, och med listor kan du bygga vad du vill.)

I den här övningen tittar du på ett objekt som lagrar tillståndet i ett schackparti och ändrar dess klass.

För att förstå övningen behöver du känna till grunderna i schack.

  • Det finns två spelare i ett schackparti: "white" och "black".
  • Varje spelare har sex typer av pjäser: kung, drottning, löpare, springare, torn och bönder.
  • Varje pjäss position anges med rad ("a" till "h") och kolumn (1 till 8).

Den här övningen är en del av kursen

Objektorienterad programmering med S3 och R6 i R

Visa kurs

Övningsinstruktioner

Listvariabeln chess är fördefinierad i din arbetsmiljö.

  • Utforska chess för att förstå dess struktur.
  • Ändra klassen för chess till "chess_game".
  • Kontrollera om chess fortfarande är en lista med hjälp av is.list() (docs).
  • Ta reda på hur många pjäser som finns kvar på brädet.
    • Ett bra sätt är att platta ut objektet med unlist() (docs) och returnera dess length() (docs).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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?
___
Redigera och kör kod