4

#PlatziCodingChallenge - Hora de aventura!

Siguiendo el reto pasado

Crea un script que se encargue de darle turnos y atacar o defender por turnos para cada personaje

Escribe tu comentario
+ 2
Ordenar por:
2
10710Puntos

Hace tiempo “hice” de un tutorial de youtube algo similar, dejo el codigo por si quieren verlo, esta en Python

CLI Battle Game

1
7689Puntos

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>
1
19943Puntos

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
1

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')