poker grâce a scilab
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

poker grâce a scilab



  1. #1
    invite4cac009c

    poker grâce a scilab


    ------

    Bonjour à toutes et à tous.

    Voila j'ai un problème sur scilab au sujet d'une modélisation d'un jeu de poker.

    le jeu est de 52 cartes.
    Nous nous interessons à la présence d'un carré et d'un full lors de la première donne de 5 cartes.


    le première question est proposer une modélisation d'une donne de poker en tenant compte de ce que l'on recherche.
    je porpose donc une matrice de une ligne et de 5 colonnes
    donne=zeros(1,5)

    tout d'abord j'ai un petit bug sur comment compter les cartes. on fait 4*13 ou on reste sur 52?
    ensuite on me demande d'écrire une fonction qui nous donne une main de 5 cartes au hasard
    j'ai pensé au rand() et 1+floor (100*rand())
    mais je n'arrive pas é faire cette fonction.

    mon principal bug se situe au niveau de comment compter les cartes.

    un grand merci

    -----

  2. #2
    invite551c2897

    Re : poker grâce a scilab

    Bonjour.
    Pour le tirage de 5 carte au hasard :
    fix(52*rand(1:5))+1

  3. #3
    invite4cac009c

    Re : poker grâce a scilab

    merci

    je ne comprends toujours pas comment on fait pour les cartes.

    sinon je ne connais pas cette fonction "fix"

    il me demande avec une fonction de type function......endfunction

    merci de votre aide

  4. #4
    invite551c2897

    Re : poker grâce a scilab

    function [x]=tirage(jeu)
    x=fix(52*rand(1:5))+1 ;
    endfunction

    Appel :
    jeu = linspace(1,52,52)
    x=tirage(jeu)
    Bien sûr il faut mettre à jour le tableau jeu à chaque tirage...

  5. A voir en vidéo sur Futura
  6. #5
    invite4cac009c

    Re : poker grâce a scilab

    merci beacoup

    je ne connaissait pas du tout la fonction fix

    c'est quoi
    jeu = linspace(1,52,52)

    je ne connait pas du tout.

    moi j'avais penser à faire une matrice 1 ligne et 5 colonnes.

  7. #6
    invite551c2897

    Re : poker grâce a scilab

    Bonjour.
    linspace(a,b,c) donne une liste de c nombres de a à b
    linspace(1 2 3) = 1. 1.5 2.
    Je crois qu'il faut commencer par "battre" les cartes.
    Tu peux utiliser :
    function [paquet]=melange(n)
    paquet=ones(1,n);
    for i=2:n,k=0;
    for j=1:1+int(rand(1)*(n-i+2));
    k=k+1;
    while paquet(k)> 1 do
    k=k+1;
    end;
    end;
    paquet(k)=i;
    end;
    endfunction
    Trouvé sur le net : http://cermics.enpc.fr/scilab_new/si..._scilab_2.html
    Donc tu fais : melange(52)...

  8. #7
    invite551c2897

    Re : poker grâce a scilab

    Citation Envoyé par phryte Voir le message
    Bonjour.
    linspace(a,b,c) donne une liste de c nombres de a à b
    linspace(1 2 3) = 1. 1.5 2.
    Je crois qu'il faut commencer par "battre" les cartes.
    Tu peux utiliser :
    function [paquet]=melange(n)
    paquet=ones(1,n);
    for i=2:n,k=0;
    for j=1:1+int(rand(1)*(n-i+2));
    k=k+1;
    while paquet(k)> 1 do
    k=k+1;
    end;
    end;
    paquet(k)=i;
    end;
    endfunction
    Trouvé sur le net : http://cermics.enpc.fr/scilab_new/si..._scilab_2.html
    Donc tu fais : melange(52)...
    matlab fait cela avec randperm(52) qui n'existe pas sous scilab ! dommage !

  9. #8
    invite4cac009c

    Re : poker grâce a scilab

    d'accord

    un grand merci,de mon côté j'y ai réfléchi aussi et j'ai une fonction du type:

    donne = zeros(1,5)

    function p=alea(x)
    p=1+floor(x+rand())
    endfunction

    function donne = place (donne)
    v=1:5
    for i=1:52 do
    a= alea(5-i+1)
    donne(a)=1
    v(a)=[]
    end
    // on répete 5 fois cette fonction
    endfunction


    est ce juste???
    en suite on me demande de donner une fonction qui permet de savoir si une main donnée contient un carré

    J'y réfléchi ...

    merci

  10. #9
    invite551c2897

    Re : poker grâce a scilab

    Bonjour.
    p=1+floor(x+rand())
    rand donne un nombre entre 0 et 0.9999
    donc il faut que tu mettes 10*rand() sinon floor(x+rand()) te donneras toujours le même nombre x
    Que veux-tu faire avec la function place ?

  11. #10
    invite4cac009c

    Re : poker grâce a scilab

    ok j'avais oublié cette petite notion avec la fonction rand.

    Je veux faire une fonction qui permette de placer une carte par cases de la matrice donne
    soit la matrice M=(a,b,c,d,e) (1 ligne 5 colonnes)
    je veux rentrer dans les lettres a,b,c,d,e un nombre qui correspondra a une carte.

    est ce possible? je dois très mal m'y prendre...

  12. #11
    invite551c2897

    Re : poker grâce a scilab

    Bonjour.
    Je te propose:
    function [paquet,paquet_caract]=melange(n)
    paquet=ones(1,n);
    paquetC=['AP','RP','DP','VP','10P','9P' ,'8P','7P','6P','5P','4P','3P' ,'2P','AC','RC','DC','VC','10C ','9C','8C','7C','6C','5C','4C ','3C','2C','AK','RK','DK','VK ','10K','9K','8K','7K','6K','5 K','4K','3K','2K','AT','RT','D T','VT','10T','9T','8T','7T',' 6T','5T','4T','3T','2T'];
    for i=2:n
    k=0;
    for j=1:1+int(rand(1)*(n-i+2));
    k=k+1;
    while paquet(k)> 1 do
    k=k+1;
    end;
    end;
    paquet(k)=i;
    end
    //formation paquet mélangé
    for j=1:n
    paquet_caract(j)=paquetC(paque t(j));
    end
    paquet_caract=paquet_caract';
    endfunction

    Programme principal :
    //Formation du paquet
    [paquet,paquet_caract]=melange(52);
    paquet_caract
    N=input('Nombre de joueurs');
    //Distribution
    ra=1;M=[];
    for ind=1:N
    for jind =1:5
    M(ind,jind)=paquet_caract(ra);
    ra=ra+1;
    end
    end
    //Mise à jour du paquet
    paquet=paquet(ra:length(paquet ));
    //Donnes
    M

  13. #12
    invite4cac009c

    Re : poker grâce a scilab

    Bonjour,

    je me suis mis très sérieusement à scilab et franchement je trouve cela très chaud.

    je ne comprends pas à quoi sert le programme principal. la première partie du message suffit pour scilab non?

    en suite on me demande de donner une fonction qui permet de savoir si une main donnée contient un carré
    et j'abandonne je n'y arrive pas trop...

  14. #13
    invite551c2897

    Re : poker grâce a scilab

    le programme principal utilise les sous-programmes (function) pour réaliser un projet.
    Il constitue le "donneur d'ordres", c'est le chef..
    Tu ne mets en function que ce qui est répétitif et "besogneux".
    A le lecture du programme principal (avec des commentaires) on comprend ce que fait le programme .
    Comment représentes-tu les As Roi Dame....

  15. #14
    invite4cac009c

    Re : poker grâce a scilab

    j'an ai aucune idée je voulais mettre 1 pour as 2 pour 2 .....jusqu'a 12 pour dame et 13 pour roi

  16. #15
    invite551c2897

    Re : poker grâce a scilab

    'an ai aucune idée je voulais mettre 1 pour as 2 pour 2 .....jusqu'a 12 pour dame et 13 pour roi
    C'est plus "parlant comme je te l'ai montré : 'AP' pour As de pique...
    Voimà un exemple de distribution pour 5 joueurs :
    M =

    !4C 9K VT 8C DC !
    ! !
    !5P 4T 8K 6P 7K !
    ! !
    !10P 3P 10C 2T RC !
    ! !
    !AK VC 9C 10K 10T !
    ! !
    !6T 3C DP 4K 2C !

  17. #16
    invite4cac009c

    Re : poker grâce a scilab

    en fait 1 suffit
    un grand merci
    sauf que maintenant il faut en faire une fonction...j'essaye d'en faire une belle

  18. #17
    invite4cac009c

    Re : poker grâce a scilab

    Finalement je ne sais pas si c'est une très bonne façon de numéroter les cartes de cette façon car ce que l'on cherche c'est d'avoir un carré donc la hauteur

    et en numérotant ainsi, cela est très difficile de faire une fonction pouvant détecter un carré(4 cartes de même hauteur)

  19. #18
    invite551c2897

    Re : poker grâce a scilab

    Bonjour.
    La recherche de carré ou autre donne est aisée. Un exemple avec des caractères pour un carré d'as :
    M=['AS','09','AS','AS','ASy']
    don=[];
    [nr,nc]=size(M);
    for i=1:nr
    ligne=part(M(i,,1:2);
    nb=0;
    for j=1:nc
    k=find(ligne==ligne(j))
    select length(k)
    case []
    don(i,j)=0;
    case 1
    don(i,j)=1;
    case 2
    don(i,j)=2;
    case 3
    don(i,j)=3;
    case 4
    don(i,j)=4;
    end
    end
    end;
    don

  20. #19
    invite4cac009c

    Re : poker grâce a scilab

    un grand merci

    je comprends mieux

Discussions similaires

  1. Math et poker
    Par inviteb4d8c3b4 dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 06/06/2008, 19h24
  2. Probabilité : Poker
    Par inviteeea9975d dans le forum Mathématiques du collège et du lycée
    Réponses: 6
    Dernier message: 31/01/2008, 19h17
  3. Paire Poker
    Par Anduriel dans le forum Science ludique : la science en s'amusant
    Réponses: 10
    Dernier message: 31/08/2007, 18h13
  4. Poker En Langage C
    Par invite8c0f8078 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 01/04/2007, 04h10