# =======================================
# Trucky - Sample - RACE
# Author : Fabienne Roth et Yann Voumard
# =======================================

# Initialise le monde
init(30, 10, rgb(20, 20, 20))

# Cre 10 vhicules
for i = 0, i < 10, i++ {
    if rand() < 0.5 { # Alatoirement des camions ou des voiture
        truck(0, i)
    } else {
        car(0, i)
    }
}

# Ajoute de l'essence aux vhicules
trucks [
    current.essence = 40
]
cars [
    current.essence = 20
]

# Ajoute un compteur de distance  tous les vhicules
all [
    current.distance = 0
]

# Fait avancer les vhicules
founded = true
while founded {
    founded = false
    # Pour chaque vhicule ...
    all [
        # S'il a encore de l'essence, avance
        if current.essence > 0 {
            # Avance de 0, 1 ou 2 cases en avant
            nb = rand(0, 2)
            for i = 0, i <= nb, i++ {
                current.forward()
                current.distance++
            }
            # S'il est au bout du terrain, recommence au dbut
            if current.getX() >= getNbX() {
                current.setX(current.getX() - getNbX())
            }
            # Gestion de la consommation d'essence
            if current.isTruck() {
                current.essence -= 2
            } else {
                current.essence -= 1
            }
            founded = true
            paint(0.1)
        }
    ]
}

# Recherche le vainqueur
setColor(rgb(255, 255, 255))
winner = 0
all [
    if winner == 0 {
        winner = current
    } else {
        if winner.distance < current.distance {
            winner = current
        }
    }
]

# Supprime un  un les perdants
all [
    if current != winner {
        remove(current)
        paint(1)
    }
]

# Fait faire la fte au vainqueur
setColor(rgb(255, 0, 0))
for i = 0, i <= 15, i++ {
    winner.turn()
    paint(0.1)
}

# Affichage final
paint(5)