From f57b7525b9009afeffd2dd2b03d8d0d5d5c09fcb Mon Sep 17 00:00:00 2001 From: Mariana Seidel Date: Wed, 19 Jul 2023 17:47:38 -0300 Subject: [PATCH 1/2] =?UTF-8?q?resolu=C3=A7=C3=A3o=20exerc=C3=ADcio=20de?= =?UTF-8?q?=20casa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Em casa_Mariana Seidel/Exercicios.md | 112 +++++++++++ .../Em casa_Mariana Seidel/exerciciosCasa.js | 182 ++++++++++++++++++ 2 files changed, 294 insertions(+) create mode 100644 Atividades/Em casa_Mariana Seidel/Exercicios.md create mode 100644 Atividades/Em casa_Mariana Seidel/exerciciosCasa.js diff --git a/Atividades/Em casa_Mariana Seidel/Exercicios.md b/Atividades/Em casa_Mariana Seidel/Exercicios.md new file mode 100644 index 0000000..a2abb21 --- /dev/null +++ b/Atividades/Em casa_Mariana Seidel/Exercicios.md @@ -0,0 +1,112 @@ +Nome: Mariana Seidel + +Nossa veterinária agora atende quatro espécies diferentes de animais: dois domésticos (`Gato` e `Cachorro`), e dois exóticos (`Hamster` e `Papagaio`). Usando o que você aprendeu essa semana (classes, herança, sobrescritas, campos privados...) e os exemplos de animais abaixo, escreva um sistema que atenda aos critérios listados: + +1. Gatos +``` +{ + nome: "Nina", + idade: 1.5 + cor: "frajola", + castrado: true, + externo: false, + vacinas: ["raiva], + consultas: [], + social: true, + + miar(), + vacinar(), + consultar(), + castrar(), + brincar(), + acariciar(), + alimentar(), +} +``` + - Gatos sociáveis ronronam ao serem acariciados. Se um gato não for sociável, ele deve silvar. + - Você pode tornar um gato sociável alimentando ele com uma das comidas favoritas dos gatos: frango, sachê ou peixe. + + 2. Cachorro + ``` + { + nome: "Zeus", + idade: 3.5 + cor: "preto", + castrado: false, + raça: "labrador", + vacinas: [], + consultas: [], + ferido: false, + + latir(), + vacinar(), + consultar(), + castrar(), + brincar(), + acariciar(), + alimentar(), +} + ``` + - Cachorros costumam esconder quando estão feridos. Use um campo privado para essa informação, e só a exiba ao tentar `brincar()` com um cãozinho que está ferido. + +3. Hamster +``` +{ + nome: "Iogurte", + idade: 1.5, + cor: "branco e laranja", + tipo: "sírio", + consultas: [], + + consultar(), + brincar(), + acariciar(), + alimentar(), +} +``` + - Ao consultar um hamster, você deve brincar com ele para que ele não fique estressado e tente fugir. + +4. Papagaio +``` +{ + nome: "José", + idade: 13, + cor: "verde" + consultas: [], + + falar(), + consultar(), + brincar(), + acariciar(), + alimentar(), +} +``` + - Ao brincar com ou alimentar um papagaio, ele deve falar com você. + +5. Outros + - Sempre que vacinar um paciente, você deve adicionar uma nova consulta na lista. O mesmo vale para castrar um animal. + - Você deve ter uma função `chamar()`, que recebe uma lista de animais e retorna quais dos animais da lista responderam e vieram brincar. Todos os cachorros respondem quando chamados, assim como os gatos que são sociais. Hamsters, papagaios e gatos não sociais não virão. + - Tentar castrar um animal que já está castrado deve retornar um erro. + +**Dica:** assinaturas possíveis para as funções: +``` +function acariciar() { ... } + +function alimentar(comida) { ... } + +function brincar() { ... } + +function castrar() { ... } + +function chamar([listaAnimais]) { ... return [listaAnimaisQueResponderam] } + +function consultar(dataConsulta) { ... } + +function falar() { ... } + +function latir() { ... } + +function miar() { ... } + +function vacinar(vacina) { ... } +``` diff --git a/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js b/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js new file mode 100644 index 0000000..c63e308 --- /dev/null +++ b/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js @@ -0,0 +1,182 @@ + +class Animal{ + constructor(nome, idade, cor) { + this.nome = nome + this.idade = idade + this.cor = cor + this.consultas = [] + } + + consultar(dataConsulta) { + this.consultas.unshift(dataConsulta) + } + + brincar() { + console.log(`Vamos brincar ${this.brincadeira}`) + } + + acariciar(){ + console.log('hmmm recebendo um carinho') + } + + alimentar(comida){ + console.log(`Seu bichinho está sendo alimentado com ${comida}.`) + } +} + + +class AnimalDomestico extends Animal{ + constructor(nome, idade, cor, castrado) { + super(nome, idade, cor) + this.castrado = castrado + this.vacinas = [] + } + + vacinar(vacinas) { + this.vacinas.push(vacinas) + this.consultar(new Date()) + } + + castrar(){ + if (this.castrado === false) { + this.castrado = true, + this.consultar(new Date()) + console.log('Seu bichinho acaba de ser castrado!') + } else { + console.log('Ops, ocorreu um erro! Esse animal já é castrado.') + } + } +} + + +class Gato extends AnimalDomestico { + constructor(nome, idade, cor, castrado, externo, social){ + super(nome, idade, cor, castrado) + this.externo = externo + this.social = social + this.brincadeira = 'usando uma cordinha!' + } + + miar() { + if(this.social == true){ + console.log('ron ron ron') + } else { + console.log('Parece que seu gatinho não é sociável, ele está silvando. Teste dar a comida preferida dele!') + } + } + + alimentar(comida) { + super.alimentar(comida) + if(comida === 'frango'|| comida === 'sachê'||comida === 'peixe') { + return this.social = true + } else { + return this.social = false + } + } +} + +class Cachorro extends AnimalDomestico { + #ferido + constructor(nome, idade, cor, castrado, ferido, raca){ + super(nome, idade, cor, castrado) + this.#ferido = ferido + this.raca = raca + this.brincadeira = 'de se esconder!' + } + + latir() { + console.log('au au') + } + + brincar(){ + if(this.#ferido == true){ + console.log('O cãozinho está ferido, não podemos brincar') + } else { + super.brincar() + } + } +} + +class Hamster extends Animal { + constructor(nome, idade, cor, tipo){ + super(nome, idade, cor) + this.tipo = tipo + this.brincadeira = 'de girar no carrosel!' + } + + consultar(data){ + super.consultar(data) + this.brincar() + console.log('Brincando eu fico menos estressado!') + } +} + +class Papagaio extends Animal { + constructor(nome, idade, cor){ + super(nome, idade, cor) + this.brincadeira = 'de cantar!' + } + + falar(){ + console.log('curupaco paco curupaco paco') + } + + brincar(){ + super.brincar() + this.falar() + } + + alimentar(comida){ + super.alimentar(comida) + this.falar() + } +} + + +function chamar(listaAnimais) { + let listaAnimaisQueResponderam = [] + listaAnimais.filter(animal => { + if (animal instanceof Cachorro || (animal instanceof Gato && animal.social == true)){ + listaAnimaisQueResponderam.push(animal.nome) + } + }) + return listaAnimaisQueResponderam +} + + +let nina = new Gato ('Nina', 2, 'frajola', false, false, false) +nina.miar() +nina.alimentar('peixe') +nina.miar() +nina.consultar('15/08/2023') +nina.vacinar('raiva') +nina.castrar() +nina.consultas +nina.acariciar() +let pepo = new Gato ('Pepo', 4, 'frajola', true, false, true) +pepo.miar() +pepo.castrar() + +let zeus = new Cachorro ('Zeus', 3, 'preto', false, true, 'bacê') +zeus.latir() +zeus.brincar() // AQUI +zeus.castrar() +let lilo = new Cachorro ('Lilo', 1, 'preto', true, false, 'bacê') +lilo.brincar() +lilo.castrar() + +let hamtaro = new Hamster ('Hamtaro', 2, 'marrom', 'chinês') +hamtaro.brincar() +hamtaro.consultar('12/10/2023') +hamtaro.consultas + +let papa = new Papagaio ('Papa', 10, 'verde') +papa.falar() +papa.brincar() +papa.alimentar('Semente de Girassol') + +chamar([nina, pepo, zeus, lilo, hamtaro, papa]) + + + + \ No newline at end of file From 21c9244f57fea1d561a0985c7d581d7e1fdc673e Mon Sep 17 00:00:00 2001 From: Mariana Seidel Date: Wed, 19 Jul 2023 18:23:22 -0300 Subject: [PATCH 2/2] =?UTF-8?q?ajuste=20exerc=C3=ADcio=20casa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Atividades/Em casa_Mariana Seidel/exerciciosCasa.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js b/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js index c63e308..722e448 100644 --- a/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js +++ b/Atividades/Em casa_Mariana Seidel/exerciciosCasa.js @@ -159,7 +159,7 @@ pepo.castrar() let zeus = new Cachorro ('Zeus', 3, 'preto', false, true, 'bacê') zeus.latir() -zeus.brincar() // AQUI +zeus.brincar() zeus.castrar() let lilo = new Cachorro ('Lilo', 1, 'preto', true, false, 'bacê') lilo.brincar()