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. Contributeur
    Rappeler la fonction ? reegénérér une nouvelle valeur avec random?
    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?
  2. 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]}"