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
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
chessnadal jest listą, używając funkcjiis.list()(docs). - Wyznacz liczbę bierek pozostałych na szachownicy.
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?
___