Začněte nyníZačněte zdarma

Přiřaď třídu (1)

Funkce class() neslouží jen k získání třídy objektu – lze ji použít i k jejímu přepsání. Syntaxe vypadá takto:

class(x) <- "some_class"

Obzvlášť užitečné je to u seznamů, protože seznamy umožňují kombinovat různé proměnné do složitějších struktur. (Vzpomínáš na analogii s Legem? Jednotlivé proměnné jsou jako kostičky Lega a ze seznamů si postavíš, co chceš.)

V tomto cvičení se podíváš na objekt, který ukládá stav šachové partie, a přepíšeš jeho třídu.

Aby ti cvičení dávalo smysl, potřebuješ znát základy šachu.

  • Šachová partie má dva hráče: „bílý" a „černý".
  • Každý hráč má šest typů figurek: krále, dámu, střelce, koně, věže a pěšce.
  • Pozici každé figurky lze zapsat pomocí řádku ("a" až "h") a sloupce (1 až 8).

Toto cvičení je součástí kurzu

Objektově orientované programování s S3 a R6 v R

Zobrazit kurz

Pokyny k cvičení

Proměnná chess je v tvém pracovním prostoru předem definovaná.

  • Prozkoumej chess a pochop jeho strukturu.
  • Přepiš třídu objektu chess na "chess_game".
  • Zkontroluj, zda je chess stále seznam – použij funkci is.list() (docs).
  • Zjisti, kolik figurek ještě zbývá na šachovnici.
    • Dobrý přístup je zploštit objekt pomocí unlist() (docs) a vrátit jeho length() (docs).

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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?
___
Upravit a spustit kód