MulaiMulai sekarang secara gratis

Buat Jadi Kelas (1)

Selain untuk sekadar mengambil kelas, fungsi class() juga dapat digunakan untuk menimpanya. Sintaksnya adalah

class(x) <- "some_class"

Ini sangat berguna untuk list, karena list dapat digunakan untuk menggabungkan variabel lain menjadi variabel yang lebih kompleks. (Ingat analogi Lego: variabel individual seperti kepingan Lego, dan Anda dapat menggunakan list untuk membangun apa pun yang Anda inginkan.)

Dalam latihan ini, Anda akan melihat sebuah objek untuk menyimpan keadaan sebuah permainan catur, dan menimpa kelasnya.

Agar latihan ini masuk akal, Anda perlu mengetahui sedikit tentang catur.

  • Ada dua pemain dalam permainan catur, bernama "white" dan "black".
  • Setiap pemain memiliki enam jenis bidak: raja, menteri (queen), gajah (bishop), kuda (knight), benteng (rook), dan pion (pawn).
  • Posisi setiap bidak dapat dicatat menggunakan baris ("a" hingga "h") dan kolom (1 hingga 8).

Latihan ini adalah bagian dari kursus

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Lihat Kursus

Petunjuk latihan

Variabel list chess telah didefinisikan sebelumnya di workspace Anda.

  • Jelajahi chess untuk memahami strukturnya.
  • Timpa kelas chess menjadi "chess_game".
  • Periksa apakah chess masih berupa list, gunakan is.list() (docs).
  • Tentukan jumlah bidak yang masih tersisa di papan.
    • Pendekatan yang baik adalah meratakan objek menggunakan unlist() (docs) dan mengembalikan length()-nya (docs).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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?
___
Edit dan Jalankan Kode