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
Link
Voici votre URL de partage : https://sharemycode.io/c/1d9a7ce Copié
Ce code a été partagé avec Share on ShareMyCode.io pour Jetbrains