déplacement d'un caractère dans un tableau
Bonsoir, d'abord merci à Grame pour son aide sur les fonctions aléatoires, j'ai bien réussi à l'intégrer dans mon programme.
Maintenant j'essaie de faire déplacer un personnage 'C' sur une grille en tapant 8,6,4,2 dans une chaine de caractère, ces derniers étant respectivement les déplacements en haut, à droite, à gauche et en bas du personnage sur la grille.
J'arrive à faire le premier déplacement (en haut ou à droite : car mon personnage part en bas à gauche de la grille) mais les déplacements suivants ne s'effectuent pas... Cela vient surement de la boucle mais j'ai beau changer plein de choses, je n'arrive pas à régler le problème...
Si quelqu'un voit ce qui ne va pas, pourriez vous me le dire s'il vous plait? Je vous remercie d'avance et passez une bonne soirée.
Code:
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
| options/extend_source
subroutine AFF(CH,I,J,T)
implicit none
integer*8 I,J,K
character*12 T(12,20)
character*1 CH
I=12
J=1
do while (T(I,J).ne.'M' .and. T(I,J).ne. 'A')
write(*,*) 'Veuillez choisir un deplacement pour le chaperon rouge'
read(*,*) CH
if (CH(1:1).eq.'8') then
T(I-1,J)='C'
I=I-1
J=J
elseif (CH(1:1).eq.'6') then
T(I,J+1)='C'
J=J+1
I=I
elseif (CH(1:1).eq.'2') then
T(I+1,J)='C'
T(I,J)=' '
I=I+1
J=J
elseif (CH(1:1).eq.'4') then
T(I,J-1)='C'
J=J-1
I=I
end if
! Ecriture du tableau
do I=1,12
write(*,30) (T(I,J), J=1,20)
30 format(X,'|',20(A2),'|')
end do
end do |