IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Intelligence artificielle pour le poker


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Intelligence artificielle pour le poker
    Bonjour,
    je recherche des exemples de code pour programmer un poker bot en Delphi et je recherche aussi des exemples de codes pour la reconnaissance des images tout aide est la bienvenue je vous tiendrai informé de l'avancement du projet .

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Le forum fonctionne à l'inverse : Tu présentes ce que tu as fait et nous commentons.

    Pour la reconnaissance des cartes, il faudrait savoir :
    • Sont-ce tes cartes ?
    • Sont-ce les cartes toujours du même site ?
    • Sont-ce les cartes de tous les sites de poker connus que tu comptes grinder en trichant ?


    En java, utiliser l'objet Robot est suffisant pour faire une capture d'écran et l'étudier pour repérer les cartes. Tu dois trouver l'équivalent en delphi.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Donc tu veux jouer sur un site de poker en ligne, et en parallèle tu as un bot qui fait des captures d'écran, qui reconnait les cartes, et qui te dit quelle stratégie adopter.

    Essaie la partie 'Reconnaissance des cartes'. C'est un objectif raisonnable.
    Sur le 2ème aspect : une AI capable de bien jouer au poker, c'est une autre histoire. Si tu es un informaticien brillant, déjà bien au point sur les questions d'AI, si tu travailles sur le sujet 20 ou 30 heures par semaine, tu peux arriver à quelque chose de correct en 3 ou 4 ans. Est-ce que c'est le temps que tu comptes consacrer à ce projet ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    En courant le risque que pendant ce temps des paramètres aient changés en terme de probabilité.
    (cf le loto national quand ils est passé de un tirage par semaine à plusieurs (temps d'apprentissage trop court).
    Savoir pour comprendre et vice versa.

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Pour avoir réalisé ce genre de robots plusieurs fois, je peux te dire qu'on a quasiment jamais besoin d'apprentissage. Car le texte ou le dessin, affiché sur un écran, a souvent les mêmes pixels, de la même couleur, au même endroit. Les applications qui nécessitent un réseau de neurones sont les lecteurs d'écriture cursive, ou les logiciels qui veulent reconnaître les humains sur une photo.
    Hors-sujet ici.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Je ne parles pas de la reconnaissance d'image mais de l'AI de réaction (jeu) (si tant est que ce soit ce dont il s'agit), et je fais référence à une AI humaine (bibi) qui a tenté d'approcher la probabilité de tirage du loto par analyse des tirages précédents ("apprentissage" quelqu'en soit le mode) (ce qui en terme de probabilité est absurde (une pièce ayant autant de chances de tomber sur une face quelque soient les résultats précédents, soit: 1/2 (ce qui est contredit par l'expérience qui montre qu' à 9 résultats consécutifs identique la probabilité du dixième tend fortement vers zéro ), ce qui mériterait un débat.
    Savoir pour comprendre et vice versa.

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Le poker n'a strictement rien à voir avec le tirage du loto. Comment peut-on comparer ces 2 jeux ?
    Au poker, j'ai des adversaires, au loto, je n'ai pas d'adversaires.
    Au poker, j'ai des cartes que je peux regarder, mais que je ne vais surtout pas montrer à mes adversaires.
    Au poker, si j'ai une paire d'as, je ne vais pas avoir le même comportement que si j'ai un 2 et un 3.

    Dans le domaine des jeux, les jeux de cartes ont une place particulière : tous les joueurs ne disposent pas de la même information. Aux échecs, au go, tout le monde dispose de toute l'information ; il n'y a pas d'information cachée. C'est simple.

    Dans les jeux de dés, il y a une information 'inconnue', on ne sait pas si le prochain lancer de dé va donner un 1 ou un 2 ... ou un 6. Mais les 6 options sont équiprobables, et surtout, tous les joueurs ont le même niveau d'information. C'est simple.

    Dans les jeux de cartes (ou au jeu de domino), tous les joueurs n'ont pas les mêmes informations. Et ça complique beaucoup le jeu. Au poker, une part de la stratégie consiste à tromper l'adversaire (lui faire croire qu'on a une main moyenne, alors qu'on a une main archi-gagnante, ou l'inverse). Et même sans cet aspect bluff, l'aspect statistique est énorme. Si j'ai une paire de 6, sans information complémentaire, j'ai une belle main. Mais si j'ai des informations complémentaires, si j'ai 6 adversaires et que tous les 6 ont décidé de miser, ça se corse, c'est très probable que certains de mes adversaires ont une plus belle main que moi, je ne suis plus du tout favori.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Citation Envoyé par valentin03 Voir le message
    contredit par l'expérience
    Cela m'étonnerait que tu aies lancé 12800 fois une pièce de monnaie. 128 car il faut lancer 256 fois une pièce pour avoir, en moyenne, 8 "0" consécutifs ou 8 "1" consécutifs. Et "x100", pour avoir un pourcentage sur le neuvième tirage.

    Soit un petit code qui simule l'expérience.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/bash
     
    total=100
    nb_tirages=0
    pour=0
    while [ $nb_tirages -lt $total  ]
    do
            nb=1
            etat=""
            while [ $nb -lt 8  ]
            do
                    tirage=$(($RANDOM % 2))
                    if [ "$tirage" = "$etat"  ]
                    then
                            nb=$((nb+1))
                    else
                            etat=$tirage
                            nb=1
                    fi
            done
            ut=$(($RANDOM % 2))
            nb_tirages=$((nb_tirages+1))
            echo "Essai ${nb_tirages} : 8 nombres $etat ont été tirés. 9ème : $ut"
            if [ $ut = $etat  ]
            then
                    pour=$((pour+1))
            fi
    done
    echo "$pour / $total pour la continuation."
    Et son premier résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Essai 1 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 2 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 3 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 4 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 5 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 6 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 7 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 8 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 9 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 10 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 11 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 12 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 13 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 14 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 15 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 16 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 17 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 18 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 19 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 20 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 21 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 22 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 23 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 24 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 25 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 26 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 27 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 28 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 29 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 30 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 31 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 32 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 33 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 34 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 35 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 36 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 37 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 38 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 39 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 40 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 41 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 42 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 43 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 44 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 45 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 46 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 47 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 48 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 49 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 50 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 51 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 52 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 53 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 54 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 55 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 56 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 57 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 58 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 59 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 60 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 61 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 62 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 63 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 64 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 65 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 66 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 67 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 68 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 69 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 70 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 71 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 72 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 73 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 74 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 75 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 76 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 77 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 78 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 79 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 80 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 81 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 82 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 83 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 84 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 85 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 86 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 87 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 88 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 89 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 90 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 91 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 92 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 93 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 94 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 95 : 8 nombres 0 ont été tirés. 9ème : 1
    Essai 96 : 8 nombres 1 ont été tirés. 9ème : 0
    Essai 97 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 98 : 8 nombres 0 ont été tirés. 9ème : 0
    Essai 99 : 8 nombres 1 ont été tirés. 9ème : 1
    Essai 100 : 8 nombres 1 ont été tirés. 9ème : 1
    54 / 100 pour la continuation.
    54% de chance de continuation ... on est loin de 0%.

    Faisons une moyenne sur 1000 expériences :
    On trouve 49.969% de moyenne sur 1000 expériences de 100 "9ème tirage".
    Où es-tu allé pêché que la proba du 9ème tirage tendait vers 0 sachant les 8 premiers identiques ?

    Code final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #!/bin/bash
     
    moy=0
    for ((e=0;e<1000;e++))
    do
            total=100
            nb_tirages=0
            pour=0
            while [ $nb_tirages -lt $total  ]
            do
                    nb=1
                    etat=""
                    while [ $nb -lt 8  ]
                    do
                            tirage=$(($RANDOM % 2))
                            if [ "$tirage" = "$etat"  ]
                            then
                                    nb=$((nb+1))
                            else
                                    etat=$tirage
                                    nb=1
                            fi
                    done
                    ut=$(($RANDOM % 2))
                    nb_tirages=$((nb_tirages+1))
                    #echo "Essai ${nb_tirages} : 8 nombres $etat ont été tirés. 9ème : $ut"
                    if [ $ut = $etat  ]
                    then
                            pour=$((pour+1))
                    fi
            done
            moy=$((moy+pour))
            #echo "$pour / $total pour la continuation. ($moy)"
    done
    echo "Moyenne : $moy.10^-3"
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    C'est la proba de 10 qui devient rare, et pour avoir 20 on doit pas être loin de l'impossible.
    Savoir pour comprendre et vice versa.

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Sauf que ce que tu dis maintenant n'a rien à voir avec ce que tu disais dans le précédent message. Tu mélanges probabilité conditionnelle (proba que le 9ème lancer soit enore pile, sachant que les 8 premiers ont donné pile =1/2), avec probabilité absolue (probabilité d'avoir 9 lancers pile de suite = 1/512).
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Sauf que ce que tu dis maintenant n'a rien à voir avec ce que tu disais dans le précédent message. Tu mélanges probabilité conditionnelle (proba que le 9ème lancer soit enore pile, sachant que les 8 premiers ont donné pile =1/2), avec probabilité absolue (probabilité d'avoir 9 lancers pile de suite = 1/512).
    Ah d'accord, avec la probabilité absolue je comprends mieux.
    L'AI de poker risque d'être velue. Le comportement des adversaires va demander quelques parties d'apprentissage, combien ?
    Savoir pour comprendre et vice versa.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/01/2018, 08h37
  2. Réponses: 5
    Dernier message: 16/12/2014, 10h09
  3. Choix d'un type intelligence artificiel pour un jeu de carte
    Par acia78 dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 13/12/2012, 18h36
  4. [FLASH 8] Intelligence Artificiel Pour Jeux Flash
    Par TRUNKS-SSJ7 dans le forum Flash
    Réponses: 22
    Dernier message: 03/09/2006, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo