1. Learn
  2. /
  3. Courses
  4. /
  5. Lập trình hướng đối tượng với S3 và R6 trong R

Connected

Exercise

Làm cho nó “Classy” (1)

Bên cạnh việc chỉ lấy lớp, hàm class() còn có thể dùng để ghi đè lớp. Cú pháp là

class(x) <- "some_class"

Điều này đặc biệt hữu ích với list, vì list có thể dùng để kết hợp các biến khác thành những biến phức tạp hơn. (Hãy nhớ phép so sánh với Lego: từng biến riêng lẻ giống như các mảnh Lego, và bạn có thể dùng list để lắp ghép bất kỳ thứ gì bạn muốn.)

Trong bài này, bạn sẽ xem một đối tượng lưu trạng thái của một ván cờ vua, và ghi đè lớp của nó.

Để hiểu bài tập, bạn cần biết một chút về cờ vua.

  • Có hai người chơi trong một ván cờ, gọi là "white" và "black".
  • Mỗi người chơi có sáu loại quân: vua (king), hậu (queen), tượng (bishop), mã (knight), xe (rook), và tốt (pawn).
  • Vị trí của mỗi quân có thể được ghi bằng hàng ("a" đến "h") và cột (1 đến 8).

Instructions

100 XP

Biến list chess đã được định nghĩa sẵn trong không gian làm việc của bạn.

  • Khám phá chess để hiểu cấu trúc của nó.
  • Ghi đè lớp của chess thành "chess_game".
  • Kiểm tra chess có vẫn là list hay không bằng is.list() (docs).
  • Xác định số quân cờ còn lại trên bàn.
    • Một cách hay là làm phẳng đối tượng bằng unlist() (docs) và trả về length() của nó (docs).