Zacznij terazZacznij za darmo

Nadaj klasę (1)

Funkcja class() nie tylko pozwala odczytać klasę obiektu – można jej też użyć do jej nadpisania. Składnia wygląda następująco:

class(x) <- "some_class"

Jest to szczególnie przydatne w przypadku list, które pozwalają łączyć różne zmienne w bardziej złożone struktury. (Pamiętasz analogię z klockami Lego? Pojedyncze zmienne to osobne klocki, a lista to konstrukcja zbudowana z tych klocków – możesz z niej tworzyć co chcesz.)

W tym ćwiczeniu przeanalizujesz obiekt przechowujący stan partii szachów i nadpiszesz jego klasę.

Aby dobrze zrozumieć ćwiczenie, warto znać kilka podstawowych zasad szachów:

  • W szachach grają dwie strony: "white" (białe) i "black" (czarne).
  • Każda strona dysponuje sześcioma rodzajami bierek: królem, hetmanem, gońcami, skoczkami, wieżami i pionkami.
  • Pozycję każdej bierki można zapisać za pomocą wiersza (od "a" do "h") i kolumny (od 1 do 8).

To ćwiczenie jest częścią kursu

Programowanie obiektowe z S3 i R6 w R

Zobacz kurs

Instrukcje do ćwiczenia

Zmienna listowa chess jest już zdefiniowana w twoim środowisku.

  • Zbadaj obiekt chess, aby zrozumieć jego strukturę.
  • Nadpisz klasę obiektu chess, przypisując jej wartość "chess_game".
  • Sprawdź, czy chess nadal jest listą, używając funkcji is.list() (docs).
  • Wyznacz liczbę bierek pozostałych na szachownicy.
    • Dobrym podejściem jest spłaszczenie obiektu za pomocą unlist() (docs) i zwrócenie jego length() (docs).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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?
___
Edytuj i uruchom kod