Bonjour,

Je ne comprends pas; en exécutant le code scala suivant; ca ne marche pas...

RETOURNE :

:14: error: not found: type Princesse
def donnerBisou(p: Princesse) = println(nom + " a donné un bisou à " + p.nom)
^
:17: error: not found: type Ennemi
def battre(e: Ennemi) = println(nom + " a battu " + e.nom)

etc...

Quelqu'un peut-il m'aider à comprendre ? MERCI !


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
class Personnage {
  var nom = "personnage"
  var vie = 10
  var argent = 100
  def donnerBisou(p: Princesse) = println(nom + " a donné un bisou à " + p.nom)
  def gagnerArgent(n: Int) = argent += n
  def perdreArgent(n: Int) = argent -= n
  def battre(e: Ennemi) = println(nom + " a battu " + e.nom)
  def battre(b: Boss) = println(nom + " a battu " + b.nom)
  def entrerChateau() = println(nom + " est entré dans le chateau")
  def mourir(s: java.lang.String) = {
    println(s)
    vie -= 1
  }
}
 
class Ennemi {
  var nom = "ennemi"
  def battre(p: Personnage) = {
    println(nom + " a battu " + p.nom)
    p.vie -= 1
  }
}
 
class Boss {
  var nom = "boss"
  def battre(p: Personnage) = {
    println(nom + " a battu " + p.nom)
    p.vie -= 1
  }
  def battre(p: Boss) = println(nom + " a battu " + p.nom)
  def battre(p: Ennemi) = println(nom + " a battu " + p.nom)
}
 
class Princesse {
  var nom = "princesse"
  def donnerBisou(p: Personnage) = println(nom + " a donné un bisou à " + p.nom)
  def donnerGifle(p: Personnage) = println(nom + " a donné une gifle à " + p.nom)
}
 
class Jeu {
  var gameOver = false
  val mario = new Personnage
  val peach = new Princesse
  val goomba = new Ennemi
  val bowser = new Boss
  mario.nom = "mario"
  peach.nom = "peach"
  goomba.nom = "goomba"
  bowser.nom = "bowser"
 
  val rand = new scala.util.Random
  def chance(n: Int, m: Int) = rand.nextInt(m) >= n
 
  def jourDeMalchance {
    for(i <- 1 to 10; if!(gameOver)) {
      if (chance(1, 5)) {
        println(mario.nom + " saute par dessus le premier trou")
        if (chance(1, 3)) {
          println(mario.nom + " saute par dessus le deuxième trou")
          if (chance(3, 4)) {
            mario.battre(goomba)
            if (chance(3, 10) || chance(3,10)) {
              mario.entrerChateau()
              if(chance(1, 2)) {
                mario.battre(bowser)
                if(chance(2, 3)) {
                  peach.donnerBisou(mario)
                  gameOver = true
                } else peach.donnerGifle(mario)
              } else bowser.battre(mario)
            } else mario.mourir(mario.nom + " n'a pas réussi à entrer dans le chateau")
          } else goomba.battre(mario)
        } else mario.mourir(mario.nom + " est tombé dans le deuxième trou")
      } else mario.mourir(mario.nom + " est tombé dans le premier trou")
      if(mario.vie == 0) gameOver = true
    }
    println("*" * 50)
    Thread.sleep(1000)
  }
}