Poster un nouveau sujet Poster une réponse
casse brique version bêta
Auteur Message
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 28 Jan 2011, 10:02   Citer 

alors je vous présente mon casse brique (enfin mon deuxième casse brique), qui n'est malheureusement pas fini, mais qui est déjà classe.

ses avantages: pas trop lent pour un casse briques en basic
beaux graphismes (enfin même si je les poste pas tous ici)
léger en octets.
vu que c'est une matrice qui gère les briques, ça va être très simple de faire un éditeur de niveaux

ses inconvénients: eh bien le rebond sur brique ne fonctionne pas à tout les coups.

voilà la partie principale de mon code:


Code

:FonctNAff
:AxesNAff
:Normal
:Flottant
:1->Xmin
:95->Xmax
:1->Ymin
:63->Ymax
:EffDessin

ici il y a une longue portion de code réservée à la présentation du jeu (persalteas présente cassebrique etc...)que je ne poste pas car 1) c'est long et je suis flemmard, 2) je ne souhaite pas dévoiler mes super graphismes tout de suite.

:Lbl 0
:Menu("--CASSE BRIQUE--","JOUER",1,"QUITTER",Q
:Lbl 1
:Horizontale 1
:Horizontale 63
:Verticale 1
:Verticale 95
:For(K,5,95,3
:Pt-Aff(K,4
:End
:18->L
:0->S
:20->P
:2->E:2->F
:[[1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1]]->[C]
:For(X,3,83,10
:For(Y,3,24,6
:[C]((Y-3)/6+1,(X-3).1+1->K
:Ligne(X,63-Y,X+9,63-Y,K
:Ligne(X,63-Y,X,58-Y,K
:Ligne(X,58-Y,X+9,58-Y,K
:Ligne(X+9,63-Y,X+9,58-Y,K
:End
:End
:25->X:9->Y
:For(K,P,P+L,3
:Pt-Aff(K,4,2
:End
:Texte(32,25,"PRESS ENTER...
:Pause
:Texte(32,25,"   tapez 51 espaces ici(ça fait env 3 lignes)    "
:Repeat K=45
:codeTouche->K
:If K=24 et P>5:Then
:Pt-NAff(P+L,4,2
:P-3->P
:Pt-Aff(P,4,2
:End
:If K=26 et P+L<91:Then
:Pt-NAff(P,4,2
:P+3->P
:Pt-Aff(P,4,2
:End
:Pt-NAff(X,Y,2
:X+E->X
:Y+F->Y
:Pt-Aff(X,Y,2
:If Y<6 et non(X>P et X<P+L):Goto P
:0->Q
:0->R
:0->T
:0->U
:If pxl-Test(61-Y-F,X+E-1:1->Q
:If pxl-Test(63-Y-F,X+E+1:1->R
:If pxl-Test(63-Y-F,X+E-3:1->T
:If pxl-Test(65-Y-F,X+E-1:1->U
:If U et Y<10:S+2->S
:If Q ou U:-F->F
:If T ou R:-E->E
:If (Q ou R ou T ou U) et Y>10 et Y<58 et X>5 et X<90:Then
:0->A
:If Q:1->A
:If R:2->A
:If T:3->A
:If U:4->A
:prgmZBRICK
:End
:End
:Lbl P
:EffDessin
:Horizontale 1
:Horizontale 63
:Verticale 1
:Verticale 95
:For(A,1,95
:Pt-Aff(A,40
:Pt-Aff(A,39
:Pt-Aff(95-A,29
:Pt-Aff(95-A,28
:End
:Texte(26,35,"PERDU  !
:Texte(39,30,"SCORE :    ",S
:Pause
:Lbl Q
:EffDessin
bon et ici il y a toute la tripotée de commandes habituelles pour effacer les variables et remmettre les paramètres de la calto à zéro, j'ai la flemme de les recopier, vous les connaissez.



oupps!! j'ai écrit en language Ti 83+, ce qui n'est pas très approprié sur ce forum... remplacez les Pt-Aff( par Pt-On( et les Pt-NAff( par Pt-Off(.

et maintenant le programme ZBRICK que le programme appelle:


Code

:arrondi((62-Y)/6,0->I
:arrondi(X.1,0->J
:If A=1:Then
:0->R
:For(A,4,1,-1
:If [C](A,J:A->R
:If R:0->A
:End
:R-1->R
:End
:
:If A=2:Then
:I->R
:J+1->J
:End
:
:If A=3:Then
:I->R
:J-1->J
:End
:
:If A=4:I->R
:
:If A=1 ou A=4:R-1->R
:If A=2 ou A=3:R-2->R
:0->[C](R+1,J
:S+10->S
:6R+3->R
:10J-7->J
:Ligne(J,63-R,J+9,63-R,0
:Ligne(J,63-R,J,58-R,0
:Ligne(J,58-R,J+9,58-R,0
:Ligne(J+9,63-R,J+9,58-R,0




je veux bien admettre que mon code est compliqué, si il y a un algorithme que vous ne comprenez pas demandez moi.

Je ne comprends pas vraiment moi même le programme ZBRICK, je l'ai programmé un peu au hasard, au fur et à mesure de modifs quand ça ne marchait pas.

résultat, je ne sais pas pourquoi ma balle ne rebondit pas à tout les coups.

J'accepte donc vos idées sur le rebondissement de la balle sur une brique.

Je veux bien savoir aussi si vous savez comment faire pour que la balle ne rebondisse pas selon la même direction si elle tombe en plein centre de la balle ou sur un bord.

merci!!

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 28 Jan 2011, 21:45   Citer 

La balle est-elle de la même taille que les briques ?
Cela peut impliquer pas mal de choses.
(pas grande envie de recopier)

Je me demande pourquoi tu fais des pixel-test alors que tu as une matrice.

====

J'ai testé quelque chose où ça change le coefficient directeur mais la vitesse donne l'impression d'augmenter.
Mais surtout cela apporte de nombreuses complications que je ne souhaîte pas surmonter (bien que j'ai une idée de solution)
Je me limite à la variation de rebond sur la barre.

Montre-moi la partie qui gère le rebond sur la barre et je te montrerai comment je m'y prend.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
f/x=x²
Invité
Posté le : Lun 31 Jan 2011, 9:02   Citer 

Désolé de casser le suspense mais ta "magnifique présentation" c'est en fait ça:
Code
For (A,1,7
Text (10,A, "F/X=X²
End
For (A,1,13
Text (A,53,"PRESENTE : "
End
For (A,1,35
Text (35,A,"CASSE-BRIQUES
End


godgrace.gif

  Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 31 Jan 2011, 10:34   Citer 

Ne peut tu pas utiliser la commande "remplir (1,[C])" ?
a la place de :
:[[1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1]]->[C] crazy.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 31 Jan 2011, 10:44   Citer 

:0->Q
:0->R
:0->T
:0->U
Utilise "Effvar Q", c'est plus rapide. happy.gif

:If Q:1->A
:If R:2->A
:If T:3->A
:If U:4->A
Signifie "if Q=1:1->A" n'es pas ?
Çà doit pouvoir donner:

(Q)+2(R)+3(T)+4(U
A(Rep=/=0)+Rep(Rep=0->A

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 31 Jan 2011, 10:46   Citer 

Je vais le tester, il à l'air bien. Tank you ! glasses.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 31 Jan 2011, 23:04   Citer 


Citer : l.davin
Ne peut tu pas utiliser la commande "remplir (1,[C])" ?
a la place de :
:[[1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1][1,1,1,1,1,1,1,1,1]]->[C] crazy.gif


La méthode pas jolie sert à créer des niveaux remplis différemments, avec des motifs ...
tandis que remplir(1,[C] n'est utile que pour un remplissage complet.

===================

Citer : l.davin
:If Q:1->A
:If R:2->A
:If T:3->A
:If U:4->A
Signifie "if Q=1:1->A" n'es pas ?
Çà doit pouvoir donner:

(Q)+2(R)+3(T)+4(U
A(Rep=/=0)+Rep(Rep=0->A

Tu as inversé des tests et puis il y a plus simple.
Tu veux plutôt dire
Code
Q+2R+3T+4U
If Rép:Rép->A

Par contre il faut que les variables ne soient pas à 1 en même temps et elles doivent être absoluement booléennes.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 01 Fév 2011, 21:42   Citer 

alors...

1) ma présentation est beaucoup mieux que ça, cherche pas.

2) le passage qui fait rebondir la balle sur la barre: et bien justement: il y en a pas.il y a un passage qui t'envoie perdre si tu n'es pas sur la barre par contre, c'est le Goto P.

3) une balle de la même taille que les briques: ah bon? qu'est-ce qui te fait penser ça? ma balle fait 3x3 alors que mes briques font 9x6. ça explique les pixel test.

ensuite vous embêtez pas pour le coup des 4 variables, je n'ai pas l'intention de laisser cette portion de code comme ça, c'est juste temporaire le temps que je le finisse.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 01 Fév 2011, 23:28   Citer 

A la place de la ligne du If avec goto P
Code
If Y=7
Then
P+L/2-X-1->V
If abs(V)<=L/2+1
-2->F
If abs(V)>=L/6 et V
E-2abs(V)/V->E
min(max(E,-2),2)->E
End
If Y=7 et abs(V)>L/2+1
Goto P

C'est imbitable mais succint. (Il n'y a que moi qui comprend ces sacs-de-noeuds ^^)

Si la balle rebondit sur le tiers du milieu, elle ne réagit pas. Sur les bords on peut amortir ou générer une inclinaison.

ps:-un des tests est un peu incomplet mais l'ensemble doit règler le problème. (du moins c'est ainsi dans mon prototype)
-la ligne du min/max sert à ce que la balle ait un coefficient directeur compris entre -1 et 1 (sinon le déplacement en abscisse devient de 4,6,8 pixels... pour la montée de 2 pixels)

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 02 Fév 2011, 11:48   Citer 

Punaise ! J'ai impression d'avoir à faire à un oracle ! ahh.gif
Bravo linkakro, je te dis respet. glasses.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 02 Fév 2011, 15:26   Citer 

yeah! tu as assuré!

je comprends le code, je ne l'aurait pas trouvé tout seul.

par contre je ne comprends pas "imbitable mais succint". on ne t'as jamais dit de parler clairement sur un forum ? xD

 Adresse email Haut de page Bas de page 
 
paul



Autorisation : Membre
Nb de messages : 2
Inscrit le : Mer 13 Avr 2011, 16:53
Posté le : Jeu 14 Avr 2011, 9:26   Citer 

j'ai un pb au niveau de la second matrice {C} dans le pgmZBRICK une erreur de dim avec le ",J"

 Adresse email Haut de page Bas de page 
 
made2kill



Autorisation : Membre
Nb de messages : 80
Inscrit le : Jeu 24 Fév 2011, 19:12
Posté le : Jeu 14 Avr 2011, 9:27   Citer 

Euh tu as bien mis la matrice et non la lettre entourée de crochets ?

----------------------
Aussi connu sous le nom de f/x=x².
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
paul
Invité
Posté le : Jeu 14 Avr 2011, 19:33   Citer 

oai oai quand même

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 14 Avr 2011, 20:16   Citer 

Une erreur de dim vient d'une valeur, pas de la syntaxe. La valeur contenue dans J est fausse. L'erreur peut venir de n'impote où apparaît J.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink