Make it Classy (1)
class() 関数はクラスを取得するだけでなく、上書きすることもできます。構文は次のとおりです。
class(x) <- "some_class"
これは特にリストで便利です。リストは他の変数をまとめて、より複雑な変数を作れるからです。(レゴのたとえを思い出してください。個々の変数はレゴのピースのようなもので、リストを使えば好きな形を組み立てられます。)
この演習では、チェスの対局の状態を保存するオブジェクトを見て、そのクラスを上書きします。
演習を理解するために、チェスについて少し知っておく必要があります。
- チェスは「white」と「black」という2人のプレイヤーで行います。
- 各プレイヤーは6種類の駒(king、queen、bishop、knight、rook、pawn)を持ちます。
- 各駒の位置は、行("a" から "h")と列(1 から 8)で記録できます。
この演習はコースの一部です
R における S3 と R6 を使ったオブジェクト指向プログラミング
演習の手順
ワークスペースには、リスト変数 chess があらかじめ用意されています。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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?
___