π
<-
Chat plein-écran
[^]

prob murs

prob murs

Message non lude univscien » 30 Oct 2006, 19:27

Voila; le but du " " "programme" " " et de faire bouger un groupe de 4 pxl dans un labyrinte, mais le problème, c'est que, mon groupe de pxl travérsse et efface le mur (1pxl de largeurs, (c'est un dessin fait avec "Pen")) quand il passe dessu.

Code: Tout sélectionner


:ClrDraw
:RecallPic 1
:4-A
:62-B
:5-C
:61-D
:Repeat K=105
:getKey-K
:Pt-Off(A,B)
:Pt-Off(C,B)
:Pt-Off(A,D)
:Pt-Off(C,D)
:If K=26
:Then
:C+2-C:A+2-A
:End
:If K=24
:Then
:C-2-C:A-2-A
:End
:If K=25
:Then
:D+2-D:B+2-B
:End
:If K=34
:Then
:D-2-D:B-2-B
:End
:Pt-On(A,B)
:Pt-On(C,B)
:Pt-On(A,D)
:Pt-On(C,D)
:End

Aidez moi plz :#ouin#:
Comment on fait pour que les pxl ne traversssent pas le mur?
Merci d'avance... :#love#:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Re: prob murs

Message non lude M@D_Doc » 31 Oct 2006, 07:50

Pour cela, il faut que ton bonhomme reconnaisse le mur comme un "pixel noi" : bref, qu'il reconnaisse la couleur du pixel.
une commande :
Code: Tout sélectionner
PxlTest(

Tu met entre parenthèse les coordonnées Y,x (attention à l'ordre) du point à tester, et ça te sort un résultat sous forme bianire :
1: Pixel noir
0: Pixel blanc
Code: Tout sélectionner
:PxlTest(Y,X)-A

:If A=0
:"Il peux avancer
:If A=1
:Il ne peut pas avancer
Projets en cours : Quest 2 : 1% ; fy_woodhouse_source : 15%
Mange un castor, tu sauveras un arbre

Image
Avatar de l’utilisateur
M@D_Doc
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 21.1%
 
Messages: 574
Inscription: 08 Déc 2005, 00:00
Localisation: Alsace, 68440
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Admis en FTM

Re: prob murs

Message non lude univscien » 31 Oct 2006, 12:10

Merci. :;):
Mais il faut que je face çà pour chaques pxl de mon labyrinte ? :o:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Re: prob murs

Message non lude univscien » 31 Oct 2006, 13:25

J'ais transformé le code précédent en ce code:

:ClrDraw
:RecallPic 1
:4-A
:62-B
:5-C
:61-D
:Repeat K=105
:getKey-K
:Pt-Off(A,B)
:Pt-Off(C,B)
:Pt-Off(A,D)
:Pt-Off(C,D)
:If K=26
:Then
:C+2-C:A+2-A
:End
:If K=24
:Then
:C-2-C:A-2-A
:End
:If K=25
:Then
:D+2-D:B+2-B
:End
:If K=34
:Then
:D-2-D:B-2-B
:End

:pxl-Test(A+2,B)-E
:pxl-Test(A-1,B)-F
:pxl-Test(A,B+1)-G
:pxl-Test(A,B-2)-H
:pxl-Test(C+1,B)-E
:pxl-Test(C-2,B)-F
:pxl-Test(C,B+1)-G
:pxl-Test(C,B-2)-H
:pxl-Test(A+2,D)-E
:pxl-Test(A-1,D)-F
:pxl-Test(A,D+2)-G
:pxl-Test(A,D-1)-H
:pxl-Test(C+1,D)-E
:pxl-Test(C-2,D)-F
:pxl-Test(C,D+2)-G
:pxl-Test(C,D-1)-H
:If E=1
:Then
:A-1-A
:C-1-C
:End
:If F=1
:Then
:A+1-A
:C+1-C
:End
:If G=1
:Then
:B-1-B
:D-1-D
:End
:If H=1
:Then
:B+1-B
:D+1-D
:End

:Pt-On(A,B)
:Pt-On(C,B)
:Pt-On(A,D)
:Pt-On(C,D)
:End


Mais il ya toujours le 4pxl qui traverssent les murs, et parfois ce décalent tous seul de 1pxl vers le bas, toujour en clignotant.
Je comprend pas là... :#wrong#:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Re: prob murs

Message non lude Lumin0u » 31 Oct 2006, 13:33

il faut pas executer 2 affectations à une meme variable sans rien entre les 2 sinon ça sert à rien ^^ exemple si tu met:

:pxl-Test(A+2,B)-E
:pxl-Test(C+1,B)-E

sans rien mettre qui utiliserait E entre les 2 lignes, la 2eme ligne uniquement sera prise en compte parce qu'elle modifie elle aussi E
ah HA!si vous aimez pas Lumin0u vous pouvez m'appeler machin ^^ et si vous aimez pas machin bah... vous pouvez taper shikamaru :p
Avatar de l’utilisateur
Lumin0u
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 22.4%
 
Messages: 2472
Inscription: 18 Mar 2006, 00:00
Localisation: Paris
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: T STG

Re: prob murs

Message non lude univscien » 31 Oct 2006, 13:47

Lumin0u a écrit:il faut pas executer 2 affectations à une meme variable sans rien entre les 2 sinon ça sert à rien ^^ exemple si tu met:

:pxl-Test(A+2,B)-E
:pxl-Test(C+1,B)-E

sans rien mettre qui utiliserait E entre les 2 lignes, la 2eme ligne uniquement sera prise en compte parce qu'elle modifie elle aussi E


:|: dsl mais je comprend pas l'histoire des 2 lignes.. :#tsss#:

En gros, il faut que je donne que des variables différentes? :#fou2#:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Re: prob murs

Message non lude Lumin0u » 31 Oct 2006, 14:01

wé xD enfin tu peux stocker les valeurs dans des listes c'est beaucoup plus pratique quand y en a beaucoup (c'est à dire ton cas :s)
ah HA!si vous aimez pas Lumin0u vous pouvez m'appeler machin ^^ et si vous aimez pas machin bah... vous pouvez taper shikamaru :p
Avatar de l’utilisateur
Lumin0u
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 22.4%
 
Messages: 2472
Inscription: 18 Mar 2006, 00:00
Localisation: Paris
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: T STG

Re: prob murs

Message non lude Potamogale » 31 Oct 2006, 16:51

Ce que tu peut faire c'est ca:

(je te donne pas le code parce que j'ai la flemme, faut que tu apprenne ca aussi, reflechir toi meme en fonction de ton prog)

après le getkey qui definit le mouvement de ton "bloc" mais AVANT sa relocalisation, tu fais une verification sur l'endroit où il est censé aller avec un pxlTest. Si c'est occupé par un mur, tu fais pas la modification sur les coords et tu fais un goto vers le getkey...

C'est peut-être pas tres clair, mais bon, on verra bien ^^
Si ti ratinte les solers d'on mwèrt po roter, ti n'irai sovin pid-hô!
Image[quote="Valaraukar"]Que le grand flood sois avec toi ( dans la limite du raisonnable)
Avatar de l’utilisateur
Potamogale
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 56.4%
 
Messages: 784
Inscription: 07 Juin 2006, 00:00
Localisation: Lève les yeux... Plus haut... Nan j'deconne ^^
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Retho belge (terminale francaise je pense?)

Re: prob murs

Message non lude univscien » 31 Oct 2006, 17:27

Que d'éxplications... :=): Merci...
Aprés réfléxion, je suis arrivé a ce résultat:



:ClrDraw
:RecallPic 1

:4-A
:61-B

:Repeat K=105
:getKey-K
:Pt-Off(A,B)
:Pt-Off(A+1,B)
:Pt-Off(A,B+1)
:Pt-Off(A+1,B+1)

:If K=26 and not(pxl-Test(A+2,B)) and not(pxl-Test(A+2,B+1))
:Then
:A-1-A

:End
:If K=24 and not(pxl-Test(A-1,B)) and not(pxl-Test(A-1,B+1))
:Then
:A+1-A

:End
:If K=25 and not(pxl-Test(A,B+2)) and not(pxl-Test(A+1,B+2))
:Then
:B-1-B

:End
:If K=34 and not(pxl-Test(A,B-1)) and not(pxl-Test(A+1,B-1))
:Then
:B+1-B

:End
:Pt-Off(A,B)
:Pt-Off(A+1,B)
:Pt-Off(A,B+1)
:Pt-Off(A+1,B+1)
:End

Mais vous pouvez me dire si c'est juste, psk si je le mes sur ma calcullette et que c'est faux... :#mad#: :cask:

Merci... :#coucou#:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Re: prob murs

Message non lude univscien » 31 Oct 2006, 22:45

Nouveau code:


:ClrDraw
:RecallPic 1

:4-A
:2-B

:Repeat K=105
:getKey-K

:Pxl-Off(B,A)
:Pxl-Off(B,A+1)
:Pxl-Off(B+1,A)
:Pxl-Off(B+1,A+1)

:If K=26and not(pxl-Test(B,A+2)) and not(pxl-Test(B+1,A+2))
:A+1-A

:If K=24 and not(pxl-Test(B,A-1)) and not(pxl-Test(B+1,A-1))
:A-1-A

:If K=25 and not(pxl-Test(B-1,A)) and not(pxl-Test(B-1,A+1))
:B-1-B

:If K=34 and not(pxl-Test(B+2,A)) and not(pxl-Test(B+2,A+1))
:B+1-B

:Pxl-On(B,A)
:Pxl-On(B,A+1)
:Pxl-On(B+1,A)
:Pxl-On(B+1,A+1)

:End

J'avais un probléme de direction et de pxl.
J'utilise maintenant PxlOn()
et non PtOn()
Donc tout va bien, rien ne traversse les murs et tout va dans le bon sens.
:D:
Le seul problème (encore UN... :#mad#: ?)
C'est que mon groupe de 4pxl clignote trés vite et je ne le voit qu'à moitié.
Quelqu'un a une idée pour que je vois les pxl en + foncé?? please?
Merci.
:#zen#:
Avatar de l’utilisateur
univscien
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 54.7%
 
Messages: 362
Inscription: 15 Oct 2006, 00:00
Localisation: Bordeaux (Le Bouscat (Banlieu))
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 14 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1747 utilisateurs:
>1721 invités
>21 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)