Inizia subitoInizia gratis

Rendilo di classe (1)

Oltre a recuperare semplicemente la classe, la funzione class() può essere usata per sovrascriverla. La sintassi è

class(x) <- "some_class"

Questo è particolarmente utile per le liste, dato che le liste possono combinare altre variabili in variabili più complesse. (Ricorda l’analogia con i Lego: le singole variabili sono come i pezzi di Lego, e puoi usare le liste per costruire ciò che vuoi.)

In questo esercizio, osserverai un oggetto per memorizzare lo stato di una partita di scacchi e ne sovrascriverai la classe.

Per dare un senso all’esercizio, ti serve sapere qualcosa sugli scacchi.

  • In una partita di scacchi ci sono due giocatori, chiamati "white" e "black".
  • Ogni giocatore ha sei tipi di pezzi: un re, una regina, gli alfieri, i cavalieri, le torri e i pedoni.
  • La posizione di ciascun pezzo può essere registrata usando la riga (da "a" a "h") e la colonna (da 1 a 8).

Questo esercizio fa parte del corso

Programmazione orientata agli oggetti con S3 e R6 in R

Visualizza corso

Istruzioni dell'esercizio

La variabile lista chess è già stata predefinita nel tuo workspace.

  • Esplora chess per capirne la struttura.
  • Sovrascrivi la classe di chess impostandola a "chess_game".
  • Verifica se chess è ancora una lista usando is.list() (docs).
  • Determina quanti pezzi sono ancora sulla scacchiera.
    • Un buon approccio è appiattire l’oggetto usando unlist() (docs) e restituire la sua length() (docs).

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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?
___
Modifica ed esegui il codice