ÎncepețiÎncepe gratuit

Hai să dăm o clasă (1)

Pe lângă simpla obținere a clasei, funcția class() poate fi folosită și pentru a o suprascrie. Sintaxa este

class(x) <- "some_class"

Acest lucru este deosebit de util pentru liste, deoarece listele pot fi folosite pentru a combina alte variabile în structuri mai complexe. (Ține minte analogia cu Lego: variabilele individuale sunt ca piesele Lego, iar listele îți permit să construiești orice dorești.)

În acest exercițiu, vei analiza un obiect care stochează starea unei partide de șah și îi vei suprascrie clasa.

Pentru a înțelege exercițiul, ai nevoie de câteva noțiuni de bază despre șah.

  • Într-o partidă de șah există doi jucători, numiți „alb" și „negru".
  • Fiecare jucător dispune de șase tipuri de piese: un rege, o regină, nebuni, cai, turnuri și pioni.
  • Poziția fiecărei piese poate fi înregistrată folosind rândul (de la „a" la „h") și coloana (de la 1 la 8).

Acest exercițiu face parte din cursul

Programare orientată pe obiecte cu S3 și R6 în R

Vezi cursul

Instrucțiuni pentru exercițiu

Variabila de tip listă chess a fost predefinită în spațiul tău de lucru.

  • Explorează chess pentru a înțelege structura sa.
  • Suprascrie clasa obiectului chess cu valoarea "chess_game".
  • Verifică dacă chess este în continuare o listă, folosind is.list() (docs).
  • Determină numărul de piese rămase pe tablă.
    • O abordare bună este să aplatizezi obiectul cu unlist() (docs) și să returnezi length()-ul rezultatului (docs).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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?
___
Editează și rulează codul