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
Istruzioni dell'esercizio
La variabile lista chess è già stata predefinita nel tuo workspace.
- Esplora
chessper capirne la struttura. - Sovrascrivi la classe di
chessimpostandola a"chess_game". - Verifica se
chessè ancora una lista usandois.list()(docs). - Determina quanti pezzi sono ancora sulla scacchiera.
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?
___