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 :

Un objet qui nous fuit mais qu'on doit rejoindre


Sujet :

Intelligence artificielle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 429
    Points : 60
    Points
    60
    Par défaut Un objet qui nous fuit mais qu'on doit rejoindre
    Bonjour à tout le monde,
    alors voici mon objectif: Faire qu'une créature (en l'occurrence une petite luciole, ou fée c'est pareille) se sauve de nous, mais le but du héros (en l'occurrence un espèce de boule de poils) est de l'attraper.

    J'ai fais un labyrinthe de ce genre ici, c'est le dernier lien, avec l'image des lucioles: Labyrinthe.

    J'ai fais ça sans aucune notion d'intelligence artificielle, mais avec une trajectoire déjà programmer. J'ai jamais touché à l'intelligence artificielle, alors, je ne sais pas par où commencer. Que me suggéreriez-vous qui fasse que la luciole soit difficile à rejoindre, mais que ce soit possible? Parce que dans le moment, il suffit de l'attendre, et elle viendra. Pas besoin de courir après.

    Merci de vos idées.
    Ivady

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Ben moi j'ai une idée* (* il faut que tu puisse regler la vitesse de deplacement) dans le style :
    la luciole doit semer le user avec une limite superieure afin de pas partir trop loin si on veux la garder a l ecran .
    Ensuite la luciole doit avoir une vitesse de pointe inferieure au user, mais pas trop inferieure quand meme sinon la luiciole serait trop facile a attraper.


    Voila donc si le user veux attraper la luciole il doit lui courir apres de facon a peu pres correcte ..... et apres 5 secondes ( ou plus cela depend des viteses de chacun ) le user aura sa luciole...

    ++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 429
    Points : 60
    Points
    60
    Par défaut
    d'accord, intéressant, encore que je vais devoir faire des recherches pour arriver a un algorithme de ce genre. Avez-vous des exemples de quelque chose du genre que j'ai un début d'algorithme? Sinon je sais pas vraiment pas où l'entamer. Je vais quand même faire des recherches.

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    heu non c t freestyle in my head


    si on approfondi :

    var :
    distanceMin : distance à partir de laquelle la luciole doit fuir le user
    distance : distance entre le user et la luciole
    vitesseUser : X
    vitesseLuciole : X - Y


    algo :
    si(distance<distanceMin)
    alors
    luciole.fuit();
    sinon
    rien;



    isn it ??

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 429
    Points : 60
    Points
    60
    Par défaut
    merci! Jsuis pas super King dans les variables. Considérez moi plutôt comme un développeur en herbe.

    ça? est-ce un début?

    var :
    distanceMin : 10
    distance : 35
    vitesse : 2
    vitesseLuciole : 2 - 0.5


    if(distance<distanceMin)
    {this.luciole.fuit();
    else
    {not};

    Petites questions:
    1) les unités variables, s'agit-il de pixel? Dois-je lui indiquer de quel genre d'unité il s'agit, où c'est toujours uniquement des pixels? pour la vitesse, si je dis 2 (c la vitesse de mon user déjà) s'agit-il de 2px/sec?

    2) La fonction fuit, dont je fais référence, comment je l'élabore? Je lui dis d'aller en sens inverse du user? C pas obliger d'être le sens inverse non plus.

    Ce serait genre: position.user - 2.
    Je sais pas comment faire. Et si la luciole décidait d'aller en diagonale par rapport a la direction du user?

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Juste pour info.
    Un exemple de chasing est donné au chapitre 2 du livre AI for Game Developers

    Un algorithme basique d'évasion est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (preyX > predatorX)      
         preyX++; 
    else if (preyX < predatorX) 
         preyX--; 
    if (preyY > predatorY) 
         preyY++; 
    else if (preyY < predatorY) 
         preyY--;

  7. #7
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Ivady

    Petite reponse :
    1) les unités variables, s'agit-il de pixel? Dois-je lui indiquer de quel genre d'unité il s'agit, où c'est toujours uniquement des pixels? pour la vitesse, si je dis 2 (c la vitesse de mon user déjà) s'agit-il de 2px/sec?
    tu sais moi je te donne des idées mais niveau graphique et langage j y suis pas du tout ( à par si c du net ou java )
    alors quand je parle de vitesse : les unités j en sais rien ... mais pixel/ sec ca m a l air aproprié a un jeu sur ecran oui :d .... apres c a toi de voir selon ton jeu et ton environnement de dev ... tu peux tjs tester de modifie la vitesse ... ( 3 sec a peu pres )

    2) La fonction fuit, dont je fais référence, comment je l'élabore? Je lui dis d'aller en sens inverse du user? C pas obliger d'être le sens inverse non plus.
    alors moi je te conseille de commencer par un truc un peu bidon : la luciole va a l opposé du user .... ( etape facultative )
    Ensuite apres moulte reflexion ou/et lecture ... tu peux rendre ta luciole "intelligente" ... mais la g pas d idée ... ... on peux lui mettre une kalashnikof a ta luciole ...??

    allez au travail !!!!


    ++

  8. #8
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Que me suggéreriez-vous qui fasse que la luciole soit difficile à rejoindre, mais que ce soit possible?
    Pas besoin d'IA.
    Ce que tu veux faire ressemble à Theseus and The Minotaur, c'est juste le problème dual.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 429
    Points : 60
    Points
    60
    Par défaut
    bon, juste pour mal faire! Java ne fonctionne pas, est peut-être pas installé, et je n'y arrive pas. Dommage! Bon, je prends en note ta remarque, j'y reviendrais. En entendant, je suis parvenu a faire quelque chose de quand même intéressant avec ma luciole. Elle se 'sauve' si on peut dire... mais je tiens a aller plus loin.

  10. #10
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Le concept de Theseus and The Minotaur c'est "un objet nous suit et on doit lui échapper" (c'est le problème dual).

    Il y a une version installable "Theseus and The Minotaur"

Discussions similaires

  1. Commande dos qui nous envoie l'espace disque restant
    Par soulsidibe dans le forum Autres Logiciels
    Réponses: 14
    Dernier message: 09/06/2011, 00h09
  2. Réponses: 2
    Dernier message: 21/04/2006, 14h32
  3. Récupérer l'objet qui a le focus
    Par Johnbob dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/01/2006, 14h40
  4. Réponses: 19
    Dernier message: 07/11/2003, 08h10

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