Tom's Guide > Forum > Programmation > [ruby] Problème de script en ruby

[ruby] Problème de script en ruby

Forum Programmation : [ruby] Problème de script en ruby

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
Alors voilà j'ai créé un programme en ruby et apparemment il y a un problème dans mon script.
Je vous le met à disposition merci de me dire où est-e que ça plante. :-)

Le programme s'appelle Guerrier, il consiste à entraînner un guerrier en lui fesant faire des combats.
Je débute dans ce langage donc soyez indulgent svp.

Le problème :
Le jeu marche bien seulement, là où ça plante c'est à la génération de la variable initiative (je la génère avec un random (= au hasard) "intiative = rand(4)).
Ensuite je crée une condition :
if (initiative == 0 or 1)
#Code pour le guerrier
elif (initiative == 2 or 3)
#Code pour l'ennemi
end

Et ben quand je demarre il n'y a que moi qui attaque et jamais mon ennemi.
Hasard, ça m'étonerais car ça fait depuis hier que je le test et pas une fois il ne m'a attaqué.

Citation :

niveau = xp_total = xp_lvl = degat_moi = degat_ennemi = degat_ennemi_plus = 0
numero_combat = 1
mes_points_de_vies = 100
points_de_vies_ennemi = 10
initiative = 0

puts 'Bienvenue dans la salle d\'entrainement aux guerriers !'
puts 'Pour vous entrainer, vous devez combattre'

while (niveau < 10 or mes_point_de_vies <= 0)

xp_lvl = 10

puts 'Combat numero ' + numero_combat.to_s + ' :'

while (points_de_vies_ennemi > 0 or mes_points_de_vies <= 0)

puts 'Voulez-vous attaquer tout de suite ?'
reponse = gets.chomp

if reponse.downcase == 'oui'

initiative = rand(4)

degat_moi = rand(20)
degat_ennemi = rand(10 + degat_ennemi_plus)

if (initiative == 0 or 1)
puts 'C\'est vous qui attaquez !'
puts 'Yaaaaaaaaaaaah !!!'
points_de_vies_ennemi -= degat_moi
puts 'Votre ennemi a perdu ' + degat_moi.to_s + ' points de vies.'
elsif (initiative == 2 or 3)
puts 'C\'est votre ennemi qui attaque !'
puts 'Aaaaaaaaaaargh !!!'
mes_points_de_vies -= degat_ennemi
puts 'Vous avez perdu ' + degat_ennemi.to_s + ' points de vies.'
else
puts 'Erreur !'
end

if points_de_vies_ennemi <= 0
puts 'Vous avez battu votre adversaire !'
puts 'Vous gagnez 10 points d\'experience !'
numero_combat +=1
xp_total += 10
degat_ennemi_plus = niveau * 5
degat_moi = niveau * 4
points_de_vies_ennemi = 10
elsif mes_points_de_vies <= 0
puts 'Votre adversaire vous a battu !'
puts 'Game Over !'
else
#Il ne se passe rien.
end

if xp_total >= xp_lvl
niveau += 1
xp_total -= xp_lvl
xp_lvl += 10
mes_points_de_vies += 10
puts 'Vous montez d\'un niveau vous etes maintenant niveau ' + niveau.to_s + '.'
points_de_vies_ennemi = 10 + niveau * 3
mes_points_de_vies = 20 + niveau * 3
else
#Il ne se passe rien.
end

if niveau == 10
puts 'Vous avez gagnez le jeu !!!'
end
else
puts 'Voulez-vous attaquer tout de suite ?'
reponse = gets.chomp
end
end
end



Désolé pour l'indentation mais je ne peut pas la régler dans mon message. Merci encore et répondez moi ! :-D :-D

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Tom's Guide > Forum > Programmation > [ruby] Problème de script en ruby
Aller à :

Il y a 2481 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens