Posté le 05/10/2015 18:47
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 257 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 05/10/2015 18:48 | #
Une IA peut être tout simplement un monstre que tu créés et qui suit un chemin que tu as prédéfini, qui fait par exemple un aller retour entre un point A et un point B ou même un point C si tu veux lui faire faire des passages dans plusieurs couloirs ou alors un passage aléatoire.
Citer : Posté le 05/10/2015 18:50 | #
tu peut aller dans ce topic qui t'explique les base mais chaque ia est differente en fonction du jeu que tu veut faire
Citer : Posté le 05/10/2015 18:55 | #
En fait, je voudrais créer une I.A qui puisse choisir son chemin aléatoirement, et lorsque qu'elle rencontre le héros, l'I.A tente de rattraper le héros et de le tuer (enfin vous voyez le genre). Merci pour vos réponses.
Citer : Posté le 05/10/2015 19:05 | #
Et bien tu fais un chemin aléatoire entre un point A et B et entre un point C et D et tu lui fait faire ce chemin soit aléatoirement, soit tu choisis de d'abord faire A->B, C->D, l'inverse ou même permuter les lettres. Ensuite, tu fais en sorte que si le héros passe près du monstre donc à 1 ou 2 cases de sa position, elle suive sa position (tout ça, c'est des variables, pas très compliqué !)
Je te conseille de tester sur un terrain vide premièrement, ça sera plus simple
Citer : Posté le 05/10/2015 19:06 | #
Peux-tu me donner un exemple stp.
Citer : Posté le 05/10/2015 19:07 | #
comme le dit Eltoredo tu peut crée un chemin prédéfini pour ton monstre et quand le heros est dans le champ de vision du monstre il le poursuit
genre comme ça :
##############
# ----------<-------| #
# | #### h #### | #
# | #### | #### | #
# | #### | #### | #
# |---m-------->-- | #
###############
m=monstre
h=heros
|=trajet apres detection du heros
Citer : Posté le 05/10/2015 19:08 | #
Et bien...Tu mets une variable X à 5 par exemple et une variable Y à 5 aussi. Tu positionnes sur ce X ton personnage. Tu le fait descendre depuis le X (donc Y=0) jusqu'au Y=5, puis tu le fais remonter, en augmentant et en réduisant les variables, tout simplement.
Pour le suivi du héros, je n'ai pas d'exemple en tête, suis celui de Suruq
Citer : Posté le 05/10/2015 19:11 | #
Merci beaucoup pour votre aide !!!
Citer : Posté le 05/10/2015 19:13 | #
de rien
Citer : Posté le 05/10/2015 20:20 | #
Citer : Posté le 05/10/2015 19:08 | #
Et bien...Tu mets une variable X à 5 par exemple et une variable Y à 5 aussi. Tu positionnes sur ce X ton personnage. Tu le fait descendre depuis le X (donc Y=0) jusqu'au Y=5, puis tu le fais remonter, en augmentant et en réduisant les variables, tout simplement.
Pourrais-tu être plus précis stp.
Citer : Posté le 05/10/2015 20:31 | #
Tout dépend de ta façon de programmer, il n'y a pas de recette miracle pour faire une IA.
Le plus souvent c'est un enchainement de conditions : si le héros est là, alors le personnage va par là, si ... alors, si ... alors.
Citer : Posté le 05/10/2015 20:45 | # | Fichier joint
Suis-je aller trop loin ?
Citer : Posté le 05/10/2015 21:15 | #
Je le refait en plus clair. Tu initialise la position X en abscisse de laquelle partira ton personnage au départ à 5 (X=5). Ensuite, tu fais pareil mais avec Y en ordonnée qui sera la position de ton personnage à la fin du trajet (Y=5). Ensuite, tu positionnes sur X, la position de départ, ton personnage (par exemple, Locate 5,1,"o"). Ensuite, tu fais en sorte qu'il fasse un aller retour entre X et Y continuellement avec une boucle do pour qu'elle fasse l'aller retour tant que le héro ne passe pas devant. Je pense avoir été plus clair, je te laisse faire la boucle Do, ça fait longtemps que je n'ai pas codé en basic.
Citer : Posté le 05/10/2015 21:46 | #
Merci, je vais essayer.
Ajouté le 05/10/2015 à 21:47 :
Merci, je vais essayer.
Ajouté le 06/10/2015 à 07:02 :
Est-ce que mon code est juste ?
Y=5
X=Y⇒"o"
Do
For X=Y→E To 250
Next
E=X+1→X
E=X-1→X
E=Y+1→Y
E=Y-1→Y
LpWhile Getkey≠47
Citer : Posté le 06/10/2015 07:36 | #
L'as-tu testé pour savoir s'il est correct avant d'avoir posé la question ?
Et non, il ne l'est pas après ce que je t'ai dit au dessus. X (coordonnées 5,1) est censé être la position de départ du monstre et Y (coordonnées 5,5) est censé être la position de fin de ton personnage (il ne descend que de 5 pixels et il remonte de 5 pixels, c'est pas long pour un test !) alors que là, tu fais une condition à la ligne 3 qui affiche ton personnage quand X=Y, pourquoi ? Déjà, tu ne l'affiche pas là où il faut (sur X=5 pour Y=1 donc Locate 5,1,"o") et en plus, tu ne fais cette condition que quand les deux coordonnées sont égales, ce qui n'a aucun sens puisque ce sont 2 positions bien différentes à 2 points différents de la map.
Pour la boucle, je laisse quelqu'un d'autre te le dire mais ça devrait plutôt être ça pour le début :
Y=5
Locate 5,1,"o"
Voilà, là, j'affiche ton "o" aux coordonnées 5,1 (X,Y), il sera 5 pixels décalé vers la droite mais sur la première ligne de ta calculatrice. Et ton but est de le faire descendre en 5,1 puis de le faire remonter, à faire avec la boucle Do.
Citer : Posté le 06/10/2015 08:21 | #
non il faut mètre locate X,Y,"o"
sinon tu ne pourra pas le déplacer car la position sera bloque a 1,5
Citer : Posté le 06/10/2015 18:23 | #
J'ai réussi, le seul problème est qu'il se téléporte au lieu d'avancer pas à pas.
ClrText
Locate X,Y,"o"
For X=Y→E To 80
Int 21Ran# +1→X
Int 7Ran# +1→Y
Next
LpWhile Getkey≠31
Citer : Posté le 06/10/2015 18:30 | #
il faut que ton locate soit dans la boucle for car sinon les coordonne vont augmenter mais le perso ne sera pas afficher tant que la boucle n'est pas fini
Citer : Posté le 06/10/2015 18:37 | #
Oui, la boucle For sert justement à le faire bouger pas à pas (avec la fonction "Step" qui veut dire "Pas" en anglais)
Citer : Posté le 06/10/2015 19:38 | # | Fichier joint
J'ai eu une petite idée de comment faire lorsque tu a créer ce topic mais je partage mes résultats maintenant car je les trouves intéressant.
L'IA suit un objectif: ici aller a une case de l'écran // N'importe laquelle.
Au départ son but est d'aller a son poste de garde puis de réaliser sa ronde.// Pouvant être une droite ou autre chose. On donne donc la case correspondant au début du tour de garde en objectif a l'IA.
Si l'IA voit le joueur alors son but change et il doit aller à l'endroit ou était situé le joueur la dernière fois qu'il la vu // Avec un, niveau de patience pour qu'il reprenne sa ronde si il ne trouve pas le joueur.
Je met en fichier joint le code que j'ai écrit.
AF: Affiche la map à l'écran.
C2:Check si l'IA ne voit pas le joueur en face de lui.
D2:Déplace l'IA
IA: Est le programme principal a lancer
J1 et J2: Sont le controle des décissions du joueur et de l'IA.
P2:Est l'algorithme de Pathfinding basic que j'ai créer. //A Améliorer
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".