Random en RUBY

Résolu/Fermé
doogyfresh971 Messages postés 4 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008 - 5 mai 2008 à 23:33
 Macayoni - 3 juin 2008 à 21:34
Bonjour,
Je suis entrain de programmer un jeu vidéo poker en RUBY. J'utilise la fonction rand() pour m'envoyer des nombres aléatoires et j'aimerais savoir comment on fait pour ne pas avoir 2 fois le même nombre .

Merci d'avance
A voir également:

2 réponses

Si tu as fini ton programme peux tu m'en envoyer une copie?
pour ma part, je fait, pour avoir des cartes toutes différentes :

def carte(p,a)
valeur=["As ", "Roi ", "Dame ", "Valet ", 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2]

couleur = ["de Pique", "de Trefle", "de Coeur", "de Carreau"]

if p==1
a=[]
a[0]=valeur[rand(valeur.length)]
a[1]=couleur[rand(couleur.length)]
end

return a
end

begin
a=carte(1,a)
b=carte(1,b)
c=carte(1,c)
d=carte(1,d)
e=carte(1,e)
end until a !=b && a!=c && a!=d && a!=e && b!=c && b!=d && b!=e && c!=d && c!=e && d!=e

puts " Je vous distribue :
a=> #{a[0]} #{a[1]}
b=> #{b[0]} #{b[1]}
c=> #{c[0]} #{c[1]}
d=> #{d[0]} #{d[1]}
e=> #{e[0]} #{e[1]}"
1
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
5 mai 2008 à 23:35
Rappeler la fonction ? reegénérér une nouvelle valeur avec random?
0
doogyfresh971 Messages postés 4 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 6 mai 2008 1
5 mai 2008 à 23:42
voici mon code

$stdout.sync=true
i=0
nbr_cartes=5
test_cartes=Array.new
cartes=["2 de Pique","3 de Pique","4 de Pique","5 de Pique","6 de Pique","7 de Pique","8 de Pique"]
while i < nbr_cartes
test_cartes[i]=rand(7)
puts test_cartes[i]
i = i+1
end
j=0
while j < nbr_cartes
puts cartes[test_cartes[j]]
j=j+1
end

Pourquoi reegénérér une nouvelle valeur avec random?
0