Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions Atividades/Em casa/casa.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
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
}