En tout cas j'ai bien avancé et enfin résolu un soucis de positionnement qui me cassait les noix.
Compétition PurePunch Juillet-Août 2014
Re: Compétition PurePunch Juillet-Août 2014
Mon code est pour le moment bien aéré mais c'est la suite qui m'inquiète ^^
En tout cas j'ai bien avancé et enfin résolu un soucis de positionnement qui me cassait les noix.
En tout cas j'ai bien avancé et enfin résolu un soucis de positionnement qui me cassait les noix.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: Compétition PurePunch Juillet-Août 2014
Le code non punché de mon cruncher fait 400 lignes.
Re: Compétition PurePunch Juillet-Août 2014
La classe, plus besoin de se prendre la tête, peu être bien grâce à toi je vais peu être re-participermajikeyric a écrit :Voici mon premier punch, l'utilitaire ultime pour compresser ...
.......... vos sources en punchs !![]()
Il est supposé être multi-plateforme avec gestion des differents formats de fin de ligne (testé seulement sous windows).
Il supprime les commentaires, les espaces superflus et tronque les lignes "intelligemment".
Il a été codé pour fichiers ASCII et ne gère pas les labels.
...
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: Compétition PurePunch Juillet-Août 2014
mince...G-Rom a écrit :La classe, plus besoin de se prendre la tête, peu être bien grâce à toi je vais peu être re-participer
Re: Compétition PurePunch Juillet-Août 2014
@majikeyric
Très sympa le cruncher. J'ai testé mon code (qui passe à 66 lignes
sans etre terminé, va falloir tailler dans le gras)..
Mais par contre, le resultat à la compilation est buggé enfin mes sprites perdent leurs transparences (testé en 5.30) donc le resultat est tout laid.
Désolé je peux pas mettre de screenshot pour le moment..
Très sympa le cruncher. J'ai testé mon code (qui passe à 66 lignes
Mais par contre, le resultat à la compilation est buggé enfin mes sprites perdent leurs transparences (testé en 5.30) donc le resultat est tout laid.
Désolé je peux pas mettre de screenshot pour le moment..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: Compétition PurePunch Juillet-Août 2014
J'ai pas compris, tu veux dire qu'après crunchage tu as un prob de transparence ?Ar-S a écrit :Mais par contre, le resultat à la compilation est buggé enfin mes sprites perdent leurs transparences (testé en 5.30) donc le resultat est tout laid.
Désolé je peux pas mettre de screenshot pour le moment..
Re: Compétition PurePunch Juillet-Août 2014
@majikeyric
Oui.
En gros mon code contient des qques macros, le reste n'est pas encore punché
ça vient peut être de là, mais le resultat est visuellement très surprenant.
Mes sprites transparents ne le sont plus et pire, les clipsprites sont foireux (mélange de 2 sprites en un).
Oui.
En gros mon code contient des qques macros, le reste n'est pas encore punché
Code : Tout sélectionner
Macro M : Macro : EndMacro
M dts(id,x,y,c):DisplayTransparentSprite(id,x,y,c):
TransparentSpriteColor(id, $FC00FC)
EndMacro
M ds(id,x,y):DisplaySprite(id,x,y):EndMacro
M cs(id,x,y,w,l):ClipSprite(id,x,y,w,l):EndMacro
Mes sprites transparents ne le sont plus et pire, les clipsprites sont foireux (mélange de 2 sprites en un).
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: Compétition PurePunch Juillet-Août 2014
J'ai rencontré quelques problèmes avec les macros et l'IDE. Tout dépend comment je rédigeais les macros.
Par contre je ne vois pas pourquoi cela viendrait du crunchage.Tu dois bien pouvoir voir dans le punch ce qui ne va pas ?
Par contre je ne vois pas pourquoi cela viendrait du crunchage.Tu dois bien pouvoir voir dans le punch ce qui ne va pas ?
Re: Compétition PurePunch Juillet-Août 2014
Je n'ai pas du tout le temps d'analyser le punch, j'ai déjà du mal a trouver le temps d'avancer dans mon code
je constate seulement pour le moment.
Lorsque j'aurai avancé, je te donnerai plus d'infos.
Lorsque j'aurai avancé, je te donnerai plus d'infos.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Compétition PurePunch Juillet-Août 2014
Effectivement, les macros sont traitées de manières très aléatoire, d'ou mon post il y a quelques jours dans les suggestions.
Par exemple, une macro utilisant un truc du genre E#M pour EndMacro, comme tout le monde le fait, doit tenir sur une seule ligne, sinon le PB ne détecte pas le EndMacro.
Il y a d'autres problèmes plus subtils, liés aux procédures sur plusieurs lignes, et aux macros, et d'autres encore avec les structures.
En gros c'est le changement de ligne qui génère les problèmes. Je ne sais pas comment c'est codé, mais le traitement doit être fait ligne de code par ligne de code, au lieu de mot par mot.
Bon, il faut faire avec
...
Sinon, comme je l'avais dis à G-Rom, le plus gros ratio de crunch possible doit être au alentour de 1:10
Le code normal de Moonlander fait 475 lignes. Par normal j'entends lisible, commenté, et aéré.
Une autre astuce pour coder : Dès le début utilisez des noms de variables, de macro, de procedure, de structure, reconnaissables.
Du genre : _ma_variable_
Pour pouvoir ensuite les remplacer par une lettre ou 2 lettres, en fonction du nombre de leurs emplois.
@PureCruncher : je passe de 475 lignes à 94
, c'est pas mal !
[EDIT] Version linux de mon moonlander.
Avec l'ajout du compiler IF / ENDIF ca ne tenait plus dans 50 lignes (51 !), du coup je le met à part, pour ceux qui voudraient tester.
En plus de cela, la collision des sprites n'est pas effectuée avec spritepixelcollision() - qui ne fonctionne pas sur linux / mac - , mais avec spritecollision().
code linux / mac
Par exemple, une macro utilisant un truc du genre E#M pour EndMacro, comme tout le monde le fait, doit tenir sur une seule ligne, sinon le PB ne détecte pas le EndMacro.
Il y a d'autres problèmes plus subtils, liés aux procédures sur plusieurs lignes, et aux macros, et d'autres encore avec les structures.
En gros c'est le changement de ligne qui génère les problèmes. Je ne sais pas comment c'est codé, mais le traitement doit être fait ligne de code par ligne de code, au lieu de mot par mot.
Bon, il faut faire avec
Sinon, comme je l'avais dis à G-Rom, le plus gros ratio de crunch possible doit être au alentour de 1:10
Le code normal de Moonlander fait 475 lignes. Par normal j'entends lisible, commenté, et aéré.
Une autre astuce pour coder : Dès le début utilisez des noms de variables, de macro, de procedure, de structure, reconnaissables.
Du genre : _ma_variable_
Pour pouvoir ensuite les remplacer par une lettre ou 2 lettres, en fonction du nombre de leurs emplois.
@PureCruncher : je passe de 475 lignes à 94
[EDIT] Version linux de mon moonlander.
Avec l'ajout du compiler IF / ENDIF ca ne tenait plus dans 50 lignes (51 !), du coup je le met à part, pour ceux qui voudraient tester.
En plus de cela, la collision des sprites n'est pas effectuée avec spritepixelcollision() - qui ne fonctionne pas sur linux / mac - , mais avec spritecollision().
code linux / mac
Code : Tout sélectionner
Macro M:Macro:EndMacro:M E:End:End#M:M St:Structure:End#M:M Sp:Sprite:End#M:C.d;
M H:Element:E#M:M Q:#PB_Key_:E#M:M R:Window:E#M:M U:Random:E#M:M Ke:Keyboard:E#M
Init#Sp():M SM:x.d:y.d:a.d:u.d:v.d:m.d:l.d:b.d:E#St:E#M:UsePNGImageDecoder():T.d
St Mo:SM:St Ob:w.d:I.d:List f.Mo():SM:K.Ob:B.Ob:L.Ob:Open#R(0,0,0,800,600,"M",;#
#PB_#R#_ScreenCentered|#PB_#R#_SystemMenu):Open#R#edScreen(R#ID(0),0,0,800,600);
Load#Sp(0,"M.png"):M N:Next:E#M:Init#Ke():x.d:y.d:M CC(i,x,y,k,l,b=2):Copy#Sp(0,
i,4):Clip#Sp(i,x,y,k,l):Zoom#Sp(i,k*b,l*b):E#M:Clip#Sp(0,2,21,55,42):CC(1,61,38,
15,25,1):For i=0 To 9:CC(10+i,80,3+i*6,5,7):N:CC(9,80,9,13,7):CC(6,56,3,25,7);##
CC(7,60,9,21,7):CC(8,1,9,53,9,4):Create#Sp(4,10,10):F.d:Procedure DN(L,x,y):i=0+
Int(Log10(L)):p=Pow(10,i):For j=0 To i:r=Int(L/p):L-r*p:p/10:Display#Sp(10+r,x,;
y):x+8:N:E#Procedure:DB: :NewList S.Ob():Clear#St(L,Ob):Initialize#St(L,Ob):D.d;
L\x=400:L\b=50000000:L\y=300:L\m=1206:L\I=43172:#P=#PI/2:*d.Mo=Add#H(L\f()):CR=0
*g.Mo=Add#H(L\f()):*d\a=0.715743:*d\l=30.479501:*c.Mo=Add#H(L\f()):*d\b=-#P:CS=5
*g\a=2.425849:*g\l=30.4:*g\b=-#P:Initialize#St(K,Ob):*o.Mo=Add#H(K\f()):*c\b=-#P
M El:ElapsedMilliseconds():E#M:K\x=-10:K\y=300:*c\m=0:*c\a=#P:*o\m=50:Ke#Mode(1)
CB=50:*c\l=5:*o\a=0:*o\l=300:ti=El:Repeat:*d\m=0:*g\m=0:Z.d=(El-ti)/1000:*c\m=0;
Repeat:EV=R#Event():If EV=#PB_Event_Close#R:E:E#If:Until EV=0:Examine#Ke():ti=El
If Ke#Pushed(Q#Escape):E:E#If:If CR:Z=0:If Ke#Pushed(Q#Space):Goto DB:E#If:Else;
If Ke#Pushed(Q#Up):*d\m=10000:*g\m=10000:D=0:E#If:If Ke#Pushed(Q#Left):*d\m+5000
E#If:A.d=0:If Ke#Pushed(Q#Right):*g\m+5000:E#If:If Ke#Pushed(Q#Down):*c\m=50000;
E#If:E#If:C=0:CT+1:ForEach L\f():*m.Mo=L\f():L\b-*m\m:If L\b<0:L\b=0:Break:E#If;
T=L\a+*m\a:*m\x=*m\l*Cos(T):G.d:*m\y=*m\l*Sin(T):T=L\a+*m\b:*m\u=*m\m*Cos(T);###
*m\v=*m\m*Sin(T):D+*m\x**m\v-*m\u**m\y:A+*m\u:C+*m\v:N:A/L\m:C/L\m+10:D/L\I:L\u+
A*Z:L\v+C*Z:L\w+D*Z:L\a+L\w*Z:T=L\u*Z:B\x-T:K\x-T:T=L\v*Z:B\y-T:ClearScreen(0);#
K\y-T:Rotate#Sp(0,L\a*90/#P,0):DisplayTransparent#Sp(0,L\x-27,L\y-21):Grab#Sp(2,
L\x-34,L\y-34,68,68,4):ClearScreen($FFFFFF):Repeat:If F>=-200 And F<=1000 And;##
G>=-200 And G<=800:x1.d:*e.Mo=Add#H(K\f()):*e\a=*o\a+(U(20)-10)/#P/20:*e\l=*o\l+
U(20)-10:If *e\l<100:*e\l=100:E#If:If *e\l>400:*e\l=400:E#If:CB-1:CS-1:*e\m=0+;#
U(20)+40:*e=*o:E#If:F=K\x:G=K\y:ForEach K\f():T=K\f()\a+#P:x=F+K\f()\l*Cos(T)/2;
y=G+K\f()\l*Sin(T)/2:T=K\f()\a-#P:x1=F+K\f()\l*Cos(T)/2:F+K\f()\m*Cos(K\f()\a);#
y1.d=G+K\f()\l*Sin(T)/2:G+K\f()\m*Sin(K\f()\a):If ListIndex(K\f())>0;###########
Transform#Sp(4,x1,y,ox.d,y-oy1.d+y1,J.d,y-oy.d+y1,x.d,y1):E#If:Display#Sp(4,0,0)
ox=x:oy=y:J=x1:oy1=y1:N:If CB<0:CB=30:T=K\f()\l-60:T=(U(T)-T/2):B\x=F+T*Cos(#P+;
K\f()\a):B\y=G+T*Sin(K\f()\a+#P):B\l=1:E#If:If CS<0:CS=5:Last#H(S()):Add#H(S());
T=K\f()\l-60:T=(U(T)-T/2):S()\x=F+T*Cos(K\f()\a+#P):S()\y=G+T*Sin(K\f()\a+#P);##
S()\v=100*Abs(T)/(K\f()\l/2-50):S()\l=1:E#If:If ListSize(K\f())>40;#############
First#H(K\f()):K\x=K\x+K\f()\m*Cos(K\f()\a):K\y=K\y+K\f()\m*Sin(K\f()\a);#######
Delete#H(K\f()):*o=Last#H(K\f()):E#If:Until F<-200 Or F>1000 Or G<-200 Or G>800;
StartDrawing(ScreenOutput()):For i=0 To 15:T=i*2*#PI/15:If Point(400+22*Cos(T),;
300+22*Sin(T)):CR=1:E#If:Next:If Point(400+34*Cos(0.64+L\a),300+34*Sin(0.64+;###
L\a)) Or Point(400+34*Cos(2.5+L\a),300+34*Sin(2.5+L\a)):CR=1:E#If:If L\b:;######
ForEach L\f():For i=-5 To 5:T=L\a+L\f()\b+i/10:LineXY(L\x+L\f()\x,L\y+L\f()\y,;#
L\x+L\f()\x-L\f()\m*Cos(T)/500,L\y+L\f()\y-L\f()\m*Sin(T)/500,$88FF):N:N:E#If:;#
StopDrawing():DisplayTransparent#Sp(2,L\x-34,L\y-34):If B\l:If Sp#Collision(1,;#
B\x-7,B\y-12,2,L\x-34,L\y-34):L\b+25000000:B\l=0:E#If:DisplayTransparent#Sp(1,;#
B\x-7,B\y-12):E#If:ForEach S():S()\x-L\u*Z:S()\y-L\v*Z:If S()\l:;###############
If Sp#Collision(9,S()\x-6,S()\y-3,2,L\x-34,L\y-34):S()\l=0:L\l+S()\v:E#If;######
DN(S()\v,S()\x-6,S()\y-3):E#If:N:Display#Sp(6,352,5):DN(L\l,400,5);#############
Display#Sp(7,360,19):DN(L\b/5000,400,19):If CR And CT%50<30:Display#Sp(8,294,;##
282):E#If:FlipBuffers():ForEver;#PURE#PUNCH##AOUT#2014###MOONLANDER#BY#GRAPH100#_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel
Re: Compétition PurePunch Juillet-Août 2014
@Graph100: ton jeu a un gros probleme. Les passages sont trop etroits 
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Compétition PurePunch Juillet-Août 2014
Si tu as le résultat graphique comme le montre mon screenshot, c'est le résultat voulu ! Sinon, c'est que tu lance la version linux / mac (le dernier code que j'ai posté) sur window !!!
Et là ça bug, puisque c'est une version spéciale Linux / mac !!!!
Et là ça bug, puisque c'est une version spéciale Linux / mac !!!!
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel
Re: Compétition PurePunch Juillet-Août 2014
pourquoi vous terminez vos lignes de code par des ",#####" ou des " ;;;;;;;;"
votre editeur ne vous indique pas le nombre de caractere lorsque vous etes en bout de ligne ??
votre editeur ne vous indique pas le nombre de caractere lorsque vous etes en bout de ligne ??
Re: Compétition PurePunch Juillet-Août 2014
Sans doute pour faire un "carré de code" de 50L x 80car. 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels