Надайте класу стиль (1)
Окрім простого отримання класу, функцію class() можна використовувати, щоб перевизначити його. Синтаксис:
class(x) <- "some_class"
Це особливо корисно для списків, адже списки дають змогу об'єднувати інші змінні у складніші об'єкти. (Згадайте аналогію з Lego: окремі змінні — це як деталі Lego, а за допомогою списків ви можете зібрати що завгодно.)
У цій вправі ви розглянете об'єкт для зберігання стану партії в шахи і перевизначите його клас.
Щоб упоратися з вправою, потрібно трохи знати правила шахів.
- У шаховій партії є двоє гравців: «white» і «black».
- У кожного гравця є шість типів фігур: король, ферзь, слони, коні, тури та пішаки.
- Позицію кожної фігури можна фіксувати за рядком («a» до «h») і стовпцем (від 1 до 8).
Ця вправа є частиною курсу
Об'єктно-орієнтоване програмування з S3 та R6 в R
Інструкції до вправи
Змінна-список chess уже визначена у вашому робочому середовищі.
- Дослідіть
chess, щоб зрозуміти його структуру. - Перевизначте клас
chessяк"chess_game". - Перевірте, чи
chessдосі є списком, скориставшисьis.list()(docs). - Визначте кількість фігур, що залишилися на дошці.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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?
___