Comece agoraComece grátis

Deixe com Classe (1)

Além de simplesmente recuperar a classe, a função class() pode ser usada para sobrescrevê-la. A sintaxe é:

class(x) <- "some_class"

Isso é particularmente útil para listas, já que listas podem combinar outras variáveis em variáveis mais complexas. (Lembre-se da analogia com Lego: variáveis individuais são como peças de Lego, e você pode usar listas para construir o que quiser.)

Neste exercício, você vai analisar um objeto para armazenar o estado de uma partida de xadrez e sobrescrever sua classe.

Para fazer sentido do exercício, você precisa saber um pouco sobre xadrez.

  • Há dois jogadores em uma partida de xadrez, chamados de "white" e "black".
  • Cada jogador tem seis tipos de peça: um rei, uma rainha, bispos, cavalos, torres e peões.
  • A posição de cada peça pode ser registrada usando a linha ("a" a "h") e a coluna (1 a 8).

Este exercicio faz parte do curso

Programação Orientada a Objetos com S3 e R6 em R

Ver curso

Instruções do exercicio

A lista chess já foi definida no seu ambiente.

  • Explore chess para entender sua estrutura.
  • Sobrescreva a classe de chess para "chess_game".
  • Verifique se chess ainda é uma lista usando is.list() (docs).
  • Determine quantas peças ainda restam no tabuleiro.
    • Uma boa abordagem é achatar o objeto usando unlist() (docs) e retornar o seu length() (docs).

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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?
___
Editar e Executar Código