Je viens de penser à un algo : (il ne marche que si les niveaux sont des matrices)
[i][3]// D'abord : (pour stocker les coordonnées du perso)[/3][/i]
[b][12]int[/12][/b] LignesCases[[4]5[/4]]=[7]{[/7]y,y,y,y,y[7]};[/7] [i][3]// On initialise les tableau avec les valeurs de la[/3][/i]
[b][12]int[/12][/b] ColCases[[4]5[/4]]=[7]{[/7][4]0[/4],[4]0[/4],[4]0[/4],[4]0[/4],[4]0[/4][7]};[/7] [i][3]// position initiale du perso[/3][/i]
[i][3]// Ensuite, dans la routine de mouvement, à chaque
// mouvement du perso, on enregistre ses coordonnées[/3][/i]
memmove[b][6]([/6][/b]LignesCases+[4]1[/4],LignesCases,[4]4[/4]*[b][12]sizeof[/12][6]([/6][12]int[/12][6]))[/6][/b][7];[/7]
memmove[b][6]([/6][/b]ColCases+[4]1[/4],ColCases,[4]4[/4]*[b][12]sizeof[/12][6]([/6][12]int[/12][6]))[/6][/b][7];[/7]
LignesCases[[4]0[/4]]=yy[7];[/7]
ColCases[[4]0[/4]]=xx[7];[/7]
Niveau[LignesCases[[4]4[/4]],ColCases[[4]4[/4]]]=[4]0[/4][7];[/7] [i][3]// On remet à zéro : le perso est trop loin
// Puis on enregistre, sur le niveau, à l'ancienne position su heros
// une valeur qui nous servira plus tard[/3][/i]
Niveau[yy,xx]=[4]10[/4][7];[/7] [i][3]// 10 si le perso regarde en haut, sinon, autre chose (tjs plus grand que 10)
// Puis là où on s'occupe des méchants :[/3][/i]
[b][12]if[/12][6]([/6][/b]Niveau[yMechant,xMechant]>[4]9[/4][b][6]) [/6][/b] [i][3]// On regarde si le perso vient de passer là où est le méchant[/3][/i]
[7]{[/7]
[b][12]if[/12][6]([/6][/b]Niveau[yMechant,xMechant==[4]10[/4][b][6])[/6][/b] [i][3]// Le perso était dirigé vers le haut[/3][/i]
dirMechant=1[7];[/7] [i][3]// Le méchant se dirigre vers le haut
// Et ainsi de suite, pour chaque direction[/3][/i]
[7]}[/7]
Voilà, je ne sais pas si mon algo est clair, ni s'il marche....
[edit]Edité par jackiechan91 le 13-03-2002 à 23:03:08[/edit]
J'ai corrigé quelques fautes...
[edit]Edité par jackiechan91 le 14-03-2002 à 19:35:48[/edit]