Random en RUBY

Résolu
doogyfresh971 Messages postés 4 Statut Membre -  
 Macayoni -
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. Macayoni
     
    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
  2. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Rappeler la fonction ? reegénérér une nouvelle valeur avec random?
    0
    1. doogyfresh971 Messages postés 4 Statut Membre 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