Voici votre URL de partage https://sharemycode.io/c/1d9a7ce (Cliquer pour copier) (Copié)

Nom du fichier : Correction.kt

class ArenaGladiator {
    fun deathFight(g1 : Gladiator, g2 : Gladiator){
        var story = "${g1.name} se bat avec ${g2.name}"
        while (g1.isAlive && g2.isAlive){
            g1.attack(g2)
            println("${g1.name} attaque ${g2.name}")
            if (g2.isAlive){
                g2.attack(g1)
                println("${g2.name} attaque ${g1.name}")
            }
        }
            val winner = if(g1.isAlive) g1.name else g2.name
            println ("Et notre vainqueur est $winner")
    }
}

abstract class Weapon(val damagePoint: Int =0,var defensePoint: Int = 0){ // abstract pour interdire
// toute nouvelle instance d'arme

}
//
//abstract class OffensiveWeapon(offensiveForce: Int): Weapon(offensiveForce) possibility
//abstract class DefensiveWeapon(defensiveForce: Int): Weapon(defensiveForce) possibility

class Shield: Weapon(defensePoint = 10)

class Sword(force: Int = 20): Weapon(force)

class Dagger(): Weapon(10)
class HeavyDagger: Weapon(15) // flexibilité possible

class Axe(): Weapon(30)

class Gladiator(val name: String,var hp: Int,val weapon: Weapon,val shield: Shield){
    val isAlive: Boolean
        get() {
            return hp > 0 // = valeur calculée
        }

    var isAlive2 = true
        private set // rends le setter seulement à l'intérieur


    fun attack(foe: Gladiator) : Unit {
        foe.takeDamage(weapon.damagePoint)
        println("${foe.name} ")
    }

    private fun takeDamage(damagePoint: Int) {
        hp -= (damagePoint - (shield?.defensePoint ?: 0))
            if(hp>1)
            isAlive2 = false
//        isAlive2 = hp > 0
    }
}

Informations

Cet extrait a été créé le 23 janv. 2025 à 22:13:05

Cet extrait expire le 22 févr. 2025 à 22:13:05

Langage : kotlin

Logo kotlin

Link

Voici votre URL de partage : https://sharemycode.io/c/1d9a7ce Copié

Ce code a été partagé avec Share on ShareMyCode.io pour Jetbrains