Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Dim 17 Oct 2010, 17:54
salut à tous, voici un programme pacman que j'ai téléchargé et dont j'ai traduit les commandes en francais (à l'origine, c'était un programme pour ti-82)
(merci Sangohan38 )
je trouve que ce programme rame à mort aussi j'aimerais connaître vos avis concernant des modifications possibles :
PS : j'ai un peu modifié le programme pour y ajouter quelques +
PPS: à télécharger ici pour voir le résultat (.8xp) (sans modifications)
NB : En rouge les modifications effectuées (grâce a vos conseils !)
APACKAMAN :
StoreGDB 0
prgmVGOBINI
prgmYGOBGRA
Radian
{3,3}->dim([A]
[[ú1,0,1,0][0,ú1,0,1]]->[B]
[B]öü[B]
0üS
3üG
Lbl 0
162üN
RappelImage 6
For(J,4,60,4)
For(I,5,105,5)
Pt-Aff(I,J)
End
End
For(J,3,59,56)
For(I,4,104,100)
Ligne(I,J+1,I+2,J+1)
Ligne(I+1,J,I+1,J+2)
End
End
SauveImage 5
For(J,1,17)
For(I,1,23)
If ([E](I,J)=0)+([E](I,J)=3)
[E](I,J)+1ü[E](I,J)
End
End
5ü[E](2,2)
5ü[E](22,2)
5ü[E](2,16)
5ü[E](22,16)
Lbl 1
EffEcr
Output(3,4,"SCORE:")
Output(3,10,S)
Output(5,4,"VIES ="
Output(5,10,G) SauveImg 1
QuadNaff
RappelImg 1
12üA
6üB
0üC
12ü[A](1,1)
13ü[A](1,2)
4ü[A](1,3)
13ü[A](2,1)
12ü[A](2,2)
3ü[A](2,3)
11ü[A](3,1)
12ü[A](3,2)
1ü[A](3,3)
0üH
0üT
0üP
Lbl 2
codeTouch(üK If K=105
Goto 11
If K=24
1üC
If K=26
3üC
If K=34
2üC
If K=73
Pause
If K=25
4üC
If Cø0
Then
A+[B](C,1)üD
B+[B](C,2)üE
If [E](D,E)÷6
Then
DüA
EüB
End
End
For(I,1,3)
[A](I,1)üL
[A](I,2)üM
[A](I,3)üO
If (L=A)*(M=B)
IüP
[E](L,M)üV
If V>2
Then
ent((3.927+RåPÁ(A-L,B-M))/1.57)+2*H+1üF
If F>4
F-4üF
L+[B](F,1)üD
M+[B](F,2)üE
While [E](D,E)ù6
ent(4NbrAl–at)+1üF
L+[B](F,1)üD
M+[B](F,2)üE
End
Else
L+[B](O,1)üD
M+[B](O,2)üE
OüF
End
Dü[A](I,1)
Eü[A](I,2)
Fü[A](I,3)
End
EffDessin
RappelImage 5
5A-7üX
4B-6üY
[E](A,B)üV
If (V=1)+(V=4)
Then
V-1ü[E](A,B)
Pt-NAff(X+2,Y+2)
S+10üS
N-1üN
If N=0
Goto 0
End
If (V=2)+(V=5)
Then
V-2ü[E](A,B)
Pt-NAff(X+1,Y+2)
Pt-NAff(X+2,Y+2)
Pt-NAff(X+3,Y+2)
Pt-NAff(X+2,Y+1)
Pt-NAff(X+2,Y+3)
Ligne(114,1,114,30)
Ligne(115,1,115,30)
S+50üS
1üH
31üT
0üQ
End
T-HüT
Pt-NAff(114,T)
Pt-NAff(115,T)
SauveImage 4
Ligne(X,Y,X+4,Y)
Ligne(X,Y+4,X+4,Y+4)
Ligne(X,Y+1,X,Y+3)
Ligne(X+4,Y+1,X+4,Y+3)
For(I,1,3)
[A](I,1)üL
[A](I,2)üM
5L-6üX
4M-5üY
Ligne(X,Y,X+2,Y)
Ligne(X,Y+2,X+2,Y+2)
Pt-Aff(X,Y+1)
Pt-Aff(X+2,Y+1)
If (L=A)*(M=B)
IüP
End
If T=1
0üH
If Pø0
Then
If H=1
Then
Q+1üQ
S+(100*Q?)üS
If A÷12
Then
22ü[A](P,1)
Else
2ü[A](P,1)
End
If B÷9
Then
16ü[A](P,2)
Else
2ü[A](P,2)
End
Else
G-1üG
If G=0
Then
Goto 3
Else
Goto 1
End
End
0üP
End
Goto 2
Lbl 3
EffEcr
Output(3,3,"GAME OVER!")
Output(6,4,"SCORE:")
Output(6,10,S)
Pause
EffEcr
Menu("CONTINUER","OUI",0,"NON",4)
Lbl 4
EffEcr
Output(3,3,"////////////"
Output(4,3,"/BY HADRIEN/")
Output(5,3,"////////////")
Pause RecallGDB 0
DelVar GDB0
Output(1,1,"
Stop
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 17 Oct 2010, 22:27
Chaque fois qu'il y a un goto à l'intérieur d'une structure If/Then/Else/End ce goto provoque un ralentissement.
Maintenant, il faudrait que je cherche la petite bête alors que ça a l'air déjà bien.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Mar 19 Oct 2010, 18:34
sa a l'air bien oui mais par conter je suis en train de bosser pour mettre le vrai pacman (pas un simple rectangle qui bouge) et sinon les points correspondent au quadrillage du graphe(le programmateur c'est pas fé @%&# ) donc ils ne s'effacent pas au passage de pacman !! si quelqu'un a la soluc je suis preneur sinon comment faire pour remplacer les gotos dans les if/then/else/end ?
j'aimerais également afficher le score sur le coté ou en bas... c'est possible ?
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 19 Oct 2010, 20:56
C'est pas vraiment compliqué pour qu'ils s'effacent sur le passage du Pacman: tu met un SauvImage 1 une fois le dessin apparu,tu enlève le quadrillage et tu met RappelImage 1 après, comme ça les points du quadrillage son transformés en banals points.
Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Mer 20 Oct 2010, 14:03
vraiment très bonne idée sangohan, merci mais je ne peut pas vérifier vu que l'effacement des points au passage du pacman n'est pas programmé !
il faut trouver comment le faire mais pour cela trouver le bon endroit dans ce charabia, quelqu'un a une idée ? moi je bosse pour donner au carré la forme
merci d'avance
a oui ! je croi avoir trouvé pourquoi il rame ! en effet on a des rappels images a chaque changement de direction, sa oblige la calculatrice a effacer l'écran et refaire toutes les lignes et points, etc. sa vient peut être de la ?
EDIT : j'ai compris comment créer l'icone du pacman, il s'agit en fait d'un text-sprite (pour explications voir ici mais c'est pas très bien expliqué et j'ai pas très bien compris comment le déplacer sur le graphe )si quelqu'un a la réponse ... moi en tout cas je rame !
REEDIT : c bon, a force de persévération, j'ai compris, je vais vous mettre le code sans tarder, sinon qq aura une idée pour savoir ou le mettre dans le texte ?
voila, qu'est ce que vous en pensez ? dites moi si vous y voyez des améliorations possibles, et surtout, aidez moi : ou le mettre dans le programme en haut ?
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 25 Oct 2010, 21:00
C'est toi qui l'a écrit, tu dervrait savoir où cela va.
Cela n'a pas l'air facilement transposable
Tu gères à la fois des déplacements et des affichages, alors que le précédent gère les deux séparément. (je crois...)
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Mer 27 Oct 2010, 12:32
il me semble que le précédant utilise des matrices pour stocker des variables et c'est pas mon fort du coup j'y comprend que dalle mais j'ai essayé de mettre ce code juste en dessous du code touch (en modifiant un peu) et du coup sa marche mais le programme ne continue pas, et puis mon text sprite est trop grand pour les proportions du "terrain", bref je pense que je vais soit recréer un "terrain adapté soit abandonner
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 27 Oct 2010, 19:36
Si tu enlève le While1 et le End de l'ajoût, le programme devrait pouvoir continuer.
Pour les matrices, il faut juste savoir que c'est un tableau fonctionnant comme une liste (à deux dimensions).
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)