ПочатиПочніть безкоштовно

Надайте класу стиль (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).
  • Визначте кількість фігур, що залишилися на дошці.
    • Гарний підхід — «сплющити» об'єкт за допомогою unlist() (docs) і повернути його length() (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?
___
Редагувати та запускати код