Trate de hacerlo un poco más complicado pero fallé, por lo que lo deje simple:
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><script>classPersonaje{
constructor (nombre, ataque, defensa, vida){
this.nombre = nombre
this.ataque = ataque
this.defensa = defensa
this.vida = vida
}
}
let cresques = new Personaje('Cresques', 1, 4, 20)
let catalina = new Personaje('Catalina', 5, 1, 10)
let helena = new Personaje('Helena', 3, 3, 30)
let niccolo = new Personaje('Niccolò', 1, 2, 50)
let ilaria = new Personaje('Ilaria', 1, 4, 25)
let personajes = [cresques, catalina, helena, niccolo, ilaria]
functionjugar() {
let atacante = parseInt(prompt(`Que personaje deseas ser?
creques [0]
catalina [1]
helena [2]
niccolo [3]
ilaria [4]
`))
let defensor = parseInt(prompt(`Que personaje deseas atacar?
creques [0]
catalina [1]
helena [2]
niccolo [3]
ilaria [4]
`))
if (personajes[atacante].ataque > personajes[defensor].defensa){
personajes[defensor].vida = personajes[defensor].vida - personajes[atacante].ataque
alert(`${personajes[defensor].nombre} le queda ${personajes[defensor].vida} puntos de vida`)
} else {
alert(`El ataque es menor a la defensa del contricante, por lo que no sucede nada`)
}
if(prompt('Deseas escoger otro jugador? S=> Si N=> No') === 'S'){
jugar()
} else {
console.log(`Pues los jugadores quedaron con los siguientes puntos de vida
[20] creques: ${personajes[0].vida}
[10] catalina: ${personajes[1].vida}
[30] helena: ${personajes[2].vida}
[50] niccolo: ${personajes[3].vida}
[25] ilaria: ${personajes[4].vida}
`)
}
}
jugar()
</script></body></html>
En Python 😃 De momento se sigue la siguiente secuencia jugador 1 es el que ataca a jugador 2 y ambos personajes se eligen aleatoriamente, se compara el nivel de ataque de jugador 1 con la defensa de jugador 2, en cuanto tenga la mejora del programa subire la corrección
import random
classpersonaje():def__init__(self,nombre,ataque,defensa):
self.nombre=nombre
self.ataque=ataque
self.defensa=defensa
personaje1=personaje("agnor",5,2)
personaje2=personaje("kak",2,4)
personaje3=personaje("polinaf",0,5)
personaje4=personaje("perqui",4,2)
personaje5=personaje("sali",5,3)
personajes=[personaje1,personaje2,personaje3,personaje4,personaje5]
print(f'{personaje1.nombre} tiene {personaje1.ataque} de ataque y {personaje1.defensa} de defensa')
print(f'{personaje2.nombre} tiene {personaje2.ataque} de ataque y {personaje2.defensa} de defensa')
print(f'{personaje3.nombre} tiene {personaje3.ataque} de ataque y {personaje3.defensa} de defensa')
print(f'{personaje4.nombre} tiene {personaje4.ataque} de ataque y {personaje4.defensa} de defensa')
print(f'{personaje5.nombre} tiene {personaje5.ataque} de ataque y {personaje5.defensa} de defensa')
elegido1=random.choice(personajes)
print(f'jugador 1 tu personaje es{elegido1.nombre}')
elegido2=random.choice(personajes)
print(f'jugador 2 tu personaje es{elegido2.nombre}')
if elegido1.ataque>elegido2.defensa:
print(f'jugador 1 gana ya que {elegido1.nombre} tiene mayor ataque a la defensa de {elegido2.nombre}')
elif elegido1.ataque<elegido2.defensa:
print(f'jugador 1 pierde ya que {elegido1.nombre} tiene menor ataque a la defensa de {elegido2.nombre}')
else:
print(f'Empate entre el ataque del jugador 1 y la defensa del jugador 2')
Hace tiempo “hice” de un tutorial de youtube algo similar, dejo el codigo por si quieren verlo, esta en Python
CLI Battle Game
Trate de hacerlo un poco más complicado pero fallé, por lo que lo deje simple:
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><script>classPersonaje{ constructor (nombre, ataque, defensa, vida){ this.nombre = nombre this.ataque = ataque this.defensa = defensa this.vida = vida } } let cresques = new Personaje('Cresques', 1, 4, 20) let catalina = new Personaje('Catalina', 5, 1, 10) let helena = new Personaje('Helena', 3, 3, 30) let niccolo = new Personaje('Niccolò', 1, 2, 50) let ilaria = new Personaje('Ilaria', 1, 4, 25) let personajes = [cresques, catalina, helena, niccolo, ilaria] functionjugar() { let atacante = parseInt(prompt(`Que personaje deseas ser? creques [0] catalina [1] helena [2] niccolo [3] ilaria [4] `)) let defensor = parseInt(prompt(`Que personaje deseas atacar? creques [0] catalina [1] helena [2] niccolo [3] ilaria [4] `)) if (personajes[atacante].ataque > personajes[defensor].defensa){ personajes[defensor].vida = personajes[defensor].vida - personajes[atacante].ataque alert(`${personajes[defensor].nombre} le queda ${personajes[defensor].vida} puntos de vida`) } else { alert(`El ataque es menor a la defensa del contricante, por lo que no sucede nada`) } if(prompt('Deseas escoger otro jugador? S=> Si N=> No') === 'S'){ jugar() } else { console.log(`Pues los jugadores quedaron con los siguientes puntos de vida [20] creques: ${personajes[0].vida} [10] catalina: ${personajes[1].vida} [30] helena: ${personajes[2].vida} [50] niccolo: ${personajes[3].vida} [25] ilaria: ${personajes[4].vida} `) } } jugar() </script></body></html>
Reto 43 en JavaScript
// Hora de Aventura en JavaScriptclassCharacter{ constructor(name, attack, defense) { this.lifePoints = 10this.name = name this.attack = attack this.defense = defense } } classFight{ constructor(player1, player2) { this.player1 = player1 this.player2 = player2 console.log(`Jugador 1: ${this.player1.name} (${this.player1.lifePoints} ptos) VS Jugador 2: ${this.player2.name} (${this.player1.lifePoints} ptos)`) this.turn = 1this.nextTurn() } nextTurn() { if (this.turn === 1) { console.log(`Turno de ${this.player1.name}`) let attack = this.player1.attack - this.player2.defense if (attack > 0) { this.player2.lifePoints -= attack console.log(`${this.player2.name} pierde ${attack} punto(s)`) console.log(`${this.player2.name} ahora tiene ${this.player2.lifePoints} punto(s)`) } else { console.log(`${this.player2.name} no pierde puntos`) } if (this.player2.lifePoints <= 0) { console.log(`Gana ${this.player1.name}`) } else { this.turn = 2this.nextTurn() } } else { console.log(`Turno de ${this.player2.name}`) let attack = this.player2.attack - this.player1.defense if (attack > 0) { this.player1.lifePoints -= attack console.log(`${this.player1.name} pierde ${attack} punto(s)`) console.log(`${this.player1.name} ahora tiene ${this.player1.lifePoints} punto(s)`) } else { console.log(`${this.player1.name} no pierde puntos`) } if (this.player1.lifePoints <= 0) { console.log(`Gana ${this.player2.name}`) } else { this.turn = 1this.nextTurn() } } } } const Avdol = new Character('Avdol, the Magician', 5, 2) const Kakyoin = new Character('Kakyoin, the Hierophant', 4, 3) const Polnareff = new Character('Polnareff, the Chariot', 4, 1) const Joseph = new Character('Joseph, the Hermit', 2, 3) const Jotaro = new Character('Jotaro, the Star', 5, 4) const pelea1 = new Fight(Avdol, Kakyoin) // Gana Avdol, the Magicianconst pelea2 = new Fight(Polnareff, Jotaro) // Gana Jotaro, the Starconst pelea3 = new Fight(Joseph, Avdol) // Gana Avdol, the Magician
En Python 😃 De momento se sigue la siguiente secuencia jugador 1 es el que ataca a jugador 2 y ambos personajes se eligen aleatoriamente, se compara el nivel de ataque de jugador 1 con la defensa de jugador 2, en cuanto tenga la mejora del programa subire la corrección
import random classpersonaje():def__init__(self,nombre,ataque,defensa): self.nombre=nombre self.ataque=ataque self.defensa=defensa personaje1=personaje("agnor",5,2) personaje2=personaje("kak",2,4) personaje3=personaje("polinaf",0,5) personaje4=personaje("perqui",4,2) personaje5=personaje("sali",5,3) personajes=[personaje1,personaje2,personaje3,personaje4,personaje5] print(f'{personaje1.nombre} tiene {personaje1.ataque} de ataque y {personaje1.defensa} de defensa') print(f'{personaje2.nombre} tiene {personaje2.ataque} de ataque y {personaje2.defensa} de defensa') print(f'{personaje3.nombre} tiene {personaje3.ataque} de ataque y {personaje3.defensa} de defensa') print(f'{personaje4.nombre} tiene {personaje4.ataque} de ataque y {personaje4.defensa} de defensa') print(f'{personaje5.nombre} tiene {personaje5.ataque} de ataque y {personaje5.defensa} de defensa') elegido1=random.choice(personajes) print(f'jugador 1 tu personaje es{elegido1.nombre}') elegido2=random.choice(personajes) print(f'jugador 2 tu personaje es{elegido2.nombre}') if elegido1.ataque>elegido2.defensa: print(f'jugador 1 gana ya que {elegido1.nombre} tiene mayor ataque a la defensa de {elegido2.nombre}') elif elegido1.ataque<elegido2.defensa: print(f'jugador 1 pierde ya que {elegido1.nombre} tiene menor ataque a la defensa de {elegido2.nombre}') else: print(f'Empate entre el ataque del jugador 1 y la defensa del jugador 2')