1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

연습 문제

클래스로 만들기 (1)

class() 함수는 클래스를 확인하는 것뿐만 아니라, 재지정(override)하는 데에도 사용할 수 있어요. 문법은 다음과 같습니다.

class(x) <- "some_class"

이는 특히 리스트에 유용한데, 리스트를 사용하면 다른 변수를 결합해 더 복잡한 변수를 만들 수 있기 때문이에요. (레고 비유를 떠올려 보세요. 개별 변수는 레고 조각과 같고, 리스트를 이용하면 원하는 구조물을 만들 수 있어요.)

이번 연습 문제에서는 체스 경기의 상태를 저장하는 객체를 살펴보고, 그 클래스(형식)를 재지정해 보겠습니다.

이 연습을 이해하려면 체스에 대해 간단히 알아야 해요.

  • 체스에는 "white"와 "black" 두 명의 플레이어가 있습니다.
  • 각 플레이어는 킹(king), 퀸(queen), 비숍(bishop), 나이트(knight), 룩(rook), 폰(pawn) 여섯 종류의 말을 가집니다.
  • 각 말의 위치는 행("a"부터 "h")과 열(1부터 8)로 기록할 수 있습니다.

지침

100 XP

작업 공간에 리스트 변수 chess가 미리 정의되어 있습니다.

  • chess의 구조를 파악하기 위해 탐색해 보세요.
  • chess의 클래스를 "chess_game"으로 재지정하세요.
  • is.list()(docs)로 chess가 여전히 리스트인지 확인하세요.
  • 보드에 아직 남아 있는 말의 개수를 구하세요.
    • 좋은 방법은 unlist()(docs)로 객체를 평탄화한 뒤, 그 length()(docs)를 반환하는 것입니다.