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

Intelligence artificielle Discussion :

A.I jeu tétris


Sujet :

Intelligence artificielle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 9
    Par défaut A.I jeu tétris
    bonjour, j'ai programmé un jeu de tétris, ou les 5 types de pièces sont générées aléatoirement.

    J'aimerai programmer une fonction qui permette à l'ordinateur de jouer tout seul en parallèle au joueur, c'est-à-dire qu'il déplace les pièces de manière optimale. Avez vous une idée de raisonnement à faire ?

    Merci

  2. #2
    Membre expérimenté
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Par défaut
    Tu as la méthode naïve :
    Tester toutes les positions tourner dans tous les sens et prendre la meilleur.
    La meilleur étant d'abord :
    1) Celle qui fait le plus de ligne compléte
    2) Si y en a pas, celle qui monte le moins haut et fait le moins de trou
    Avec cette méthode tu as déjà de trés bon résultat.
    Si tu connais la piéce suivante, tu peux jouer "virtuellement" deux coups et voir la combinaisons la meilleure

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 37
    Par défaut
    Citation Envoyé par JHelp Voir le message
    Tu as la méthode naïve :
    Tester toutes les positions tourner dans tous les sens et prendre la meilleur.
    Bonjour,

    Je relance ce topic suite à cette réponse : y a t'il une autre méthode moins "naïve" que celle-ci ?

    J'ai moi aussi codé un tetris en suivant cette idée, mais la vitesse d'execution de mon code ne me permet pas de calculer 2 coups à l'avance, je suis limité à 1 (c'est fait avec shockwave, qui n'est pas spécialement rapide )

    Pour info, mon tetris est jouable ici : http://earthwormjim.free.fr
    tout en bas de la page, il est dans le bloc "Game Tests".

    Appuyez sur la touche Return pour activer/désactiver l'IA, et a,z ou e pour contrôler la vitesse d'affichage de l'IA

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    bonjour,

    il est étonnant qu'avec une méthode aussi naive ne nécessitant qu'un arbre d'une hauteur 2, tu n'arrives pas à lancer ton IA .
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 37
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    bonjour,

    il est étonnant qu'avec une méthode aussi naive ne nécessitant qu'un arbre d'une hauteur 2, tu n'arrives pas à lancer ton IA .
    Non, c'est pas ça le problème :p
    l'IA fonctionne trés bien en utilisant deux coups d'avance, le problème vient du temps d'execution de ce calcul : le langage shockwave n'est pas spécialement véloce, et dans ce cas précis le fait de calculer deux coups à l'avance prends environ 500ms, ce qui provoque un blocage désagréable du jeu à chaque nouvelle piece qui arrive.

    Je voulais faire une version ou l'on joue contre l'IA, mais avec un tel blocage, ça nuirait au gameplay

    voilou, c'est pour ça que je voulais savoir si une autre méthode moins "brute" existait...

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    Citation Envoyé par Earthwormjim Voir le message
    Non, c'est pas ça le problème :p
    l'IA fonctionne trés bien en utilisant deux coups d'avance, le problème vient du temps d'execution de ce calcul : le langage shockwave n'est pas spécialement véloce, et dans ce cas précis le fait de calculer deux coups à l'avance prends environ 500ms, ce qui provoque un blocage désagréable du jeu à chaque nouvelle piece qui arrive.
    eurf...
    Je pense qu'il est grand temps de faire un petit update et de passer sur des langages de grandes personnes comme Java, C, C# ou C++. Parce que là...

    Non plus sérieusement, seule une petite heuristique personnelle peut te sortir de se mauvais pas Peut être quelques chose qui regarde juste à un coup à l'avance si l'endroit où tu places ta pièce fait monter le moins possible la pile et laisse le moins de trous possibles.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 9
    Par défaut
    JHelp, ok merci, c'est un peu bourrin mais ça marche.
    Le mieux est de tester chaque configuration possible, et de la noter selon plusieurs facteurs : hauteur, trous, puits...

    la méthode absolue étant de rechercher à l'avance les combinaisons de toutes les pièces pour chaque damier possible :

    7 * ( 2 ^ 200) pour un damier de 20 * 10 = 200 cellules ...
    quasi impossible à réaliser quoi.

    L'autre problème est aussi la vitesse de l'algorithme, qui doit se plier au rythme du tetris.

  8. #8
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut Re: A.I jeu tétris
    Citation Envoyé par Paul--
    bonjour, j'ai programmé un jeu de tétris, ou les 5 types de pièces sont générées aléatoirement.
    Sans vouloir te décourager, il y en a 7 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    X
    X  X    X   X  X
    X  X    X  XX  XX   X   XX
    X  XX  XX  X    X  XXX  XX

  9. #9
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut Re: A.I jeu tétris
    Citation Envoyé par hamster
    Citation Envoyé par Paul--
    bonjour, j'ai programmé un jeu de tétris, ou les 5 types de pièces sont générées aléatoirement.
    Sans vouloir te décourager, il y en a 7 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    X
    X  X    X   X  X
    X  X    X  XX  XX   X   XX
    X  XX  XX  X    X  XXX  XX
    Il a du oublié les pièces symétriques entre elles.
    Les 2 pièces qui ressemblent à un L
    Les 2 pièces qui ressemblent à un S
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

Discussions similaires

  1. écrire un programme de jeu tétris
    Par charlesmagnus dans le forum Débuter
    Réponses: 1
    Dernier message: 13/02/2014, 10h10
  2. Réponses: 6
    Dernier message: 06/01/2011, 10h33
  3. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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