fcamuso

Kotlin video 22

Aug 9th, 2025 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.65 KB | None | 0 0
  1. import java.io.File
  2. import java.io.FileWriter
  3. import kotlin.random.Random
  4.  
  5. //class Arma {
  6. //    var nome = "indefinito"
  7. //    var elemento = "cinetica"
  8. //    val dannoBase = 60
  9.  
  10. //    Arma(ilNome: String, qualeElemento: String, ilDannoBase: Int)
  11. //    {
  12. //        nome = ilNome
  13. //        elemento = qualeElemento
  14. //        dannoBase - ilDannoBase
  15. //    }
  16. //}
  17.  
  18. class Arma(var nome: String = "none", var elemento: String = "none", var dannoBase: Int = 1, donoDivino: Int = 0) {
  19.  
  20.     //inizializzatore per danno base
  21.     init {
  22.         require(dannoBase>=0)
  23.         dannoBase *= 1 + donoDivino/100  //con donoDivino = 10 -> *= (1+0.1) = 1.1
  24.  
  25.         //throw IOException()
  26.     }
  27. }
  28.  
  29. class Personaggio(var nome: String, var classe: String, var salute: Int=0, var scudo: Int=0)
  30.  
  31.  
  32. fun A() : Arma {
  33.  
  34.     //logica di un qualche tipo che decide
  35.     //che é meglio demandare la creazione a B
  36.     return B()
  37. }
  38.  
  39. fun B() : Arma{
  40.  
  41.     //logica di un qualche tipo che decide
  42.     //che é meglio demandare la creazione a C
  43.     var arma: Arma
  44.     try {
  45.         arma = C()
  46.     }
  47.     catch (eccezione: IllegalArgumentException)
  48.     {
  49.         //qui logica di gestione dell'eccezione
  50.         //importante da svolgere e solo al
  51.         //livello di questa funzione si hanno
  52.         //le informazioni necessarie
  53.  
  54.         arma = Arma()
  55.     }
  56.  
  57.     return arma
  58. }
  59.  
  60. fun C() : Arma {
  61.  
  62.     //apriamo un file in scrittura
  63.     val writer = FileWriter(File("Armi.txt"))
  64.     writer.write("Accesso al file armi in data ...")
  65.  
  66.     var armaCreata: Arma
  67.  
  68.     //qui istruzioni varie ...
  69.  
  70.     try {
  71.         armaCreata = Arma("folgorator", elemento = "elettrico", dannoBase = -1, Random.nextInt(0, 20))
  72.     }
  73.     catch (eccezione: IllegalArgumentException)
  74.     {
  75.         //logica di gestione
  76.         throw IllegalArgumentException()
  77.     }
  78.     finally {
  79.         println("Risorsa File Liberata ...")
  80.         writer.close()
  81.     }
  82.  
  83.  
  84.     //qui istruzioni varie ...
  85.  
  86.  
  87.  
  88.     return armaCreata
  89.  
  90. //    println("istruzione 1 ...")
  91. //    println("istruzione 2 ...")
  92. //    println("istruzione 3 ...")
  93. //    println("istruzione 4 ...")
  94. //
  95. //    var armaCreata: Arma
  96. //    try {
  97. //         armaCreata = Arma("folgorator", elemento = "elettrico", dannoBase = -1, Random.nextInt(0, 20))
  98. //    }
  99. //    catch (eccezione : IllegalArgumentException)
  100. //    {
  101. //        println("Eccezione gestita da C")
  102. //        armaCreata = Arma()
  103. //    }
  104. //
  105. //    println("istruzione 5 ...")
  106. //    println("istruzione 6 ...")
  107. //    println("istruzione 7 ...")
  108. //    println("istruzione 8 ...")
  109.  
  110.  
  111.  
  112. //    try {
  113. //        armaCreata =Arma("folgorator", elemento = "elettrico", dannoBase = -1, Random.nextInt(0, 20))
  114. //    }
  115. //    catch (eccezione: IllegalArgumentException) {
  116. //        println("L'arma non può essere creata con questi parametri")
  117. //        armaCreata = Arma()
  118. //    }
  119. //    catch (eccezione: Exception) {
  120. //        armaCreata = Arma()
  121. //    }
  122. //    finally {
  123. //        writer.write("Arma create il ....: e qui i dati dell'arma")
  124. //        println("libero risorsa")
  125. //        writer.close()
  126. //    }
  127. //
  128. //    //altro che usa armaCreata
  129. //    println("Arma create il ....: e qui i dati dell'arma")
  130.  
  131. }
  132.  
  133.  
  134.  
  135. //TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
  136. // click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
  137. fun main() {
  138.     val pers1 = Personaggio("spiritXZZ", classe = "spaccaossa")
  139.     println(pers1.scudo)
  140.  
  141.     var arma1: Arma
  142.  
  143.     arma1 = A()
  144.  
  145.     println(arma1.nome)
  146.  
  147.  
  148.     println("Libero risorse ...")
  149.  
  150.  
  151.  
  152.     //...
  153.  
  154.  
  155.     println(arma1.elemento)
  156.     arma1.elemento="fuoco"
  157.     println(arma1.elemento)
  158.  
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment