Construtor de Personagens de Jogo
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 53 de 56.
Desafio
Este é um sistema simples de personagens de jogo onde os personagens podem equipar armas e se envolver em combate.
Sua tarefa é adicionar estes dois métodos à classe Character:
Método 1: takeDamage(amount)
- Este método reduz a saúde do personagem pela quantidade (amount)
- Logs:
${this.name} takes ${amount} damage
Método 2: equipWeapon(weapon)
- Este método dá ao personagem uma arma (composição: relacionamento "has-a")
- Logs:
${this.name} equipped ${weapon.name}
Experimente você mesmo
import { Character } from './character.js';
import { Weapon } from './weapon.js';
const hero = new Character('Knight');
const sword = new Weapon('Sword', 10);
hero.equipWeapon(sword); // Deve registrar: "Knight equipped Sword"
hero.takeDamage(20); // Deve registrar: "Knight takes 20 damage"
console.log(hero.health); // Deve mostrar: 80Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação12Getters e Setters
As Palavras-chave get e setPropriedades ComputadasValidação e Efeitos ColateraisDesafio de Revisão15Desafios Finais
Construtor de Personagens de JogoSistema de Produtos de E-commerceSistema de Gestão UniversitáriaSistema de Dispositivos de Casa Inteligente