Random en RUBY

Résolu
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
Configuration: Windows XP
Firefox 2.0.0.14

2 réponses

  1. 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
    1. Contributeur
      Rappeler la fonction ? reegénérér une nouvelle valeur avec random?
      0
      1. 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