Page 9 sur 13

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 17:19
par majikeyric
@raven: joli! tu as vraiment tout dessiner avec des box() ?

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 18:30
par raven
merci,klystron,microdevweb.
@falsam au depart la musique devait etre vive le vent...c'est pour ça qu'il n'y a pas de sapin :)car elle depassé les 128 lignes de data autorisé...
la j'en ai trouvé une est viens de modifié mon code.

@Majikeyric merci,oui j'ai tout dessiné avec des box(),je pensais que les images était interdite meme dans les data :oops: les data c'est que la musique.

Code : Tout sélectionner

Procedure drawing()
   StartDrawing(ScreenOutput())
      ; neige
      Box(0,390,650,150,RGB(255,255,255))
      ;pere noel
      Box(490,30,35,10,RGB(255,0,0))
      Box(475,35,35,10,RGB(255,0,0))
      Box(461,45,45,10,RGB(255,0,0))
      Box(455,55,55,15,255)
      Box(525,35,15,15,RGB(255,255,255))
      Box(460,70,50,5,RGB(255,255,255))
      Box(455,70,5,35,RGB(255,255,255))
      ;Box(505,70,5,35,rgb(255,255,255))
      Box(495,75,10,10,$FF99FF)
      Box(460,75,10,10,$FF99FF)
      Box(468,75,10,10,$CC6600)
      Box(485,75,12,10,$CC6600)
      Box(478,75,10,10,$FF99FF)
      Box(470,85,10,10,$FF99FF)
      Box(486,85,10,10,$FF99FF)
      Box(460,85,10,10,$999999)
      Box(495,85,10,10,$999999)
      Box(460,95,10,10,$FF99FF)
      Box(495,95,10,10,$FF99FF)
      Box(408,105,10,25,0)
      Box(418,105,10,25,$FFFFFF)
      Box(428,105,35,25,255)
      Box(455,75,8,40,$FFFFFF)
      Box(463,105,75,25,255)
      Box(470,95,25,10,$FFFFFF)
      Box(460,105,45,15,$FFFFFF)
      Box(478,103,10,8,0)
      Box(470,115,25,15,$FFFFFF)
      Box(505,70,8,45,$FFFFFF)
      Box(538,105,10,25,$FFFFFF)
      Box(548,105,10,25,0)
      Box(478,85,10,10,$9933FF)
      Box(438,130,90,25,255)
      Box(438,140,90,25,0)
      Box(474,143,18,18,$99CCFF)                                               
      Box(438,165,90,15,255)
      Box(438,175,30,15,255)
      Box(498,175,30,15,255)
      Box(438,190,30,10,$FFFFFF)
      Box(498,190,30,10,$FFFFFF)
      Box(438,200,30,10,0)
      Box(498,200,30,10,0)
      Box(438,210,100,15,$333355)
      Box(430,220,100,10,$333355)
      Box(423,200,15,25,$333355)
      Box(413,185,10,35,$333355)
      Box(403,195,15,15,$333355)
      Box(530,195,25,35,$333355)
      Box(555,175,60,60,$225599)
      Box(545,185,25,15,$333355)
      Box(555,175,25,15,$333355)
      Box(565,165,25,15,$333355)
      Box(430,230,150,8,$225599)
      Box(430,230,150,8,$225599)
      Box(580,170,90,10,$225599)
      Box(610,180,20,25,$225599)
      Box(445,238,10,15,$227799)
      Box(560,238,10,15,$227799)
      
      Box(405,248,220,10,$227799)
      Box(395,238,10,10,$227799)
      Box(385,230,10,10,$227799)
      Box(375,200,10,30,$227799)
      Box(385,190,10,10,$227799)
      Box(395,180,10,10,$227799)
					
      ;renne
      Box(305,285,15,10,$225599)
      Box(305,275,10,10,$227799)
      Box(295,275,10,10,$778899)
      Box(295,265,10,10,$227799)
      Box(288,265,10,10,$778899)
      
      Box(288,255,10,10,$227799)
      Box(280,255,10,10,$778899)
      Box(280,245,10,10,$227799)
      Box(270,245,10,10,$447799)
      Box(270,215,20,30,$227799)
      Box(260,235,10,10,$447799)
      Box(260,225,10,10,$447799)
      Box(240,205,60,20,$227799)
      Box(220,185,60,25,$227799)
      Box(195,185,25,10,$447799)
      Box(185,195,10,10,$447799)
      Box(175,205,10,20,$447799)
      Box(185,225,10,10,$225599)
      Box(190,165,35,10,$447799)
      Box(180,175,10,10,$447799)
      Box(210,165,50,35,$227799)
      Box(170,185,10,10,$447799)
      Box(165,195,10,10,$225599)
      Box(210,155,30,20,$227799)
      Box(210,135,20,20,$227799)
      Box(180,115,50,30,$227799)
      Box(185,105,50,30,$227799)
      Box(195,80,10,25,$225599)
      Box(205,70,10,20,$225599)
      Box(205,95,10,10,$225599)
      Box(215,90,30,10,$225599)
      Box(235,80,10,15,$225599)
      Box(205,100,20,10,$225599)
      Box(245,75,10,10,$225599)
      ;Box(215,75,10,10,$225599)
       Box(300,205,10,10,$FFFFFF)
      Box(160,125,20,20,$FFFFFF)
      Box(150,125,10,10,$225599)
      Box(190,115,10,10,$000000)
      Box(360,115,50,10,$000000)
      Box(320,125,50,10,$000000)
      Box(280,135,50,10,$000000)
      Box(220,115,30,10,$FFFFFF)
      Box(230,145,60,10,$000000)
      Box(230,155,50,30,$225599)
      ;Box(260,155,5,30,$000000)
      Box(250,375,10,20,$225599)
      Box(350,375,10,20,$225599)
      Box(50,375,10,20,$225599)
      Box(550,375,10,20,$225599)
      Box(545,355,20,30,$006600)
      Box(345,355,20,30,$006600)
      Box(45,355,20,30,$006600)
      Box(245,355,20,30,$006600)
   StopDrawing()
EndProcedure

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 21:54
par kernadec
bonsoir à tous
- Code mis à jour
- changement des touches clavier F1 à F10 remplacées par les nombres de 1 a 10
- remplacement des constantes couleurs par la fonction RGB()
- afin d'obtenir une meilleure compatibilité avec le Mac et Linux


MicrodevWeb : même pas moche du tout, compte tenu de ces contraintes :)

Ar-s : cool pour les enfants ce screen-saver de noël. :)

falsam : très joli paysage 3D et le bonhomme de neige est très réussi. :)

raven : pas mal du tout, car les tous petits vont être fans de ton punch. :)

Cordialement

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 22:27
par falsam
kernadec a écrit :falsam : très joli paysage 3D et le bonhomme de neige est très réussi.
C'est comme les sapins. Je fais avec ce qui est autorisé :)

Je regarde ton code de nouveau.

Re: Compétition PurePunch Noël 2014

Publié : mer. 17/déc./2014 6:37
par Cool Dji
Yooo !

Jolies les prods : y'a du taf au compteur...

Argh, Falsam, ma prod "HotSnowMan" aura quelques points communs avec la tienne qui est très réussie :D et très optimisée 8O (pousser le truc à ne pas mettre les extensions des fichiers images...)
Ta prod passe sous windows8 en sous-systeme opengl avec la musique

Re: Compétition PurePunch Noël 2014

Publié : mer. 17/déc./2014 12:38
par falsam
Cool Dji a écrit : ma prod "HotSnowMan" aura quelques points communs avec la tienne qui est très réussie
Merci et j'ai hate devoir ta production.
Cool Dji a écrit :pousser le truc à ne pas mettre les extensions des fichiers images...
Un espace gagné .... est un espace gagné :mrgreen:
Cool Dji a écrit :Ta prod passe sous windows8 en sous-systeme opengl avec la musique
Pas trop laggy ? Tu peux aussi installer DirectX 9.0c End-User Runtime .
:arrow: http://www.purebasic.fr/french/viewtopi ... 13&t=14176

PS: Je ne comprends pas que DirectX 11 sous Windows 8 ne soit pas retro-compatible avec DirectX 9 !!!

Re: Compétition PurePunch Noël 2014

Publié : mer. 17/déc./2014 13:01
par kernadec
bonjour
j'ai réussi à intégrer un mode aléatoire sur 4 couleurs en 64 lignes de 80 caractères
pour que cela soit plus amusant

merci à majikeyric pour son punch cruncher, car sans lui j'aurais ramé pour le faire :mrgreen:

code mis à jour

Cordialement

ps; ligne 21 il faut modifier une valeur cos/3 par cos/4 car le mode 3 a une couleur incomplète
code mis à jour..............................................................................v

Code : Tout sélectionner

Y=Yr*Sin(v):Z=Zr*Cos(v):Q:J Mode=3:X=Xr*Sin(v*2):Y=Yr*Cos(v/4):Z=Zr*Sin(v):Q;;;; 

Re: Compétition PurePunch Noël 2014

Publié : jeu. 18/déc./2014 13:59
par G-Rom
@Raven , Ta géré a mort, j'aime beaucoup ^^

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 5:59
par Huitbit
Hello,

Voici une version bêta que j'espère améliorer.
J'ai punché comme un sagouin comme d'hab'
J'espère ne pas avoir laissé de bugs en punchant car les listes chaînées ça rigole pas trop.
Je n'ai presque pas utilisé les data, si je n'arrive pas à mettre de la musique, je les utiliserai autrement !

Image

Code : Tout sélectionner

;*****************************************************************************
;*
;* XMas 2014 PurePunch contest
;* PureBasic 5.xx or SpiderBasic 1.00 Beta
;* 64 lines of 80 chars of code + 128 lines of data
;*
;* Name     : La guirlande enchantée
;* Author   : Huitbit
;* Date     : 19/12/2014
;* Notes    :marble popper (version de test)
;*                Les lutins sont en grève, les enfants ont trop de cadeaux, il y a donc trop de travail !
;*                Pour entamer les négociations, ils ont décidé de ligoter
;*                le Père Noël durant sa sieste grâce à une guirlande ensorcelée !
;*                 La guirlande va tenter de pénêtrer par une bouche d'aération de 
;*                 la maison du Père Noël, stoppez-la !
;*****************************************************************************
MessageRequester("Information", "Eclatez 365 boules pour conjurer le sort !"+Chr(13)+" Clic droit pour quitter"+Chr(13)+" Clic gauche pour tirer"+Chr(13)+" A la fin tapez [Entrée] pour quitter.", #PB_MessageRequester_Ok)

a=255:le=800:he=600:r=12:d=25:Macro u:EndIf:EndMacro:Macro ds;;;;;;;;;;;;;;;;
DisplayTransparentSprite:EndMacro:Macro q:Next:EndMacro:Macro s:Sprite:EndMacro;
Macro ra:Random:EndMacro:Macro e:Element:EndMacro:Macro em:ElapsedMilliseconds()
EndMacro:Structure pt:x.l:y.l:s.l:a.f:b.f:EndStructure:Structure courbe:x.f:y.f;
at.l:EndStructure:Structure z:x.f:y.f:s.l:ds.f:spr.l:retour.l:EndStructure;;;;;;
NewList z.z():nl=12:Dim p.pt(nl):P(0)\x=385:P(0)\y=20:For n=0 To nl-1:P(n+;;;;;;
1)\y=P(n)\y+480/nl+ra(20)*Pow(-1,n):P(n+1)\x=P(n)\y*Sin(2*#PI*P(n)\y/200)+400+;;
ra(20)*Pow(-1,n):q n:Macro af(a,b,xA,yA,xB,yB):If xB=xA:xB=xA+1:u:If xA<xB;;;;;;
a=(yB-yA)/(xB-xA):Else:a=(yB-yA)/(xA-xB):u:b=yB-a*xB:EndMacro:Macro cb(id,;;;;;;
couleur):Create#s(id,d,d):StartDrawing(s#Output(id)):Circle(r,r,r,couleur);;;;;;
StopDrawing():EndMacro:Procedure.l su(Array pP.pt(1),pn,ps,pr.f):Dim o.pt(pn);;;
CopyArray(pP(),o()):For nSubdv=1 To ps:ReDim pP(2*pn-1):For n=0 To pn-1;;;;;;;;;
pP(2*n)\x=o(n)\x+pr*(o(n+1)\x-o(n)\x):pP(2*n)\y=o(n)\y+pr*(o(n+1)\y-o(n)\y);;;;;
pP(2*n+1)\x=o(n)\x+(1-pr)*(o(n+1)\x-o(n)\x):pP(2*n+1)\y=o(n)\y+(1-pr)*(o(n+;;;;;
1)\y-o(n)\y):q n:pn=2*pn-1:ReDim o.pt(pn):CopyArray(pP(),o()):q nSubdv;;;;;;;;;;
ProcedureReturn pn:EndProcedure:nl=su(P(),nl,4,0.25):For n=0 To nl-1:af(P(n)\a,;
P(n)\b,P(n)\x,P(n)\y,P(n+1)\x,P(n+1)\y):q n:P(0)\s=0:lc=0:For n=0 To nl-1:lc=lc+
Sqr(1+P(n)\a*P(n)\a)*Abs(P(n+1)\x-P(n)\x):P(n+1)\s=lc:q n:Dim s.courbe(lc);;;;;;
s(0)\x=P(0)\x:s(0)\y=P(0)\y:hy.f=Sqr(1+P(0)\a*P(0)\a):l=1:For n=0 To nl-1;;;;;;;
hy=Sqr(1+P(n)\a*P(n)\a):co.f=Sign(P(n+1)\x-P(n)\x)/hy:si.f=P(n)\a/hy;;;;;;;;;;;;
While l<P(n+1)\s:s(l)\x=s(l-1)\x+co:s(l)\y=s(l-1)\y+si:l=l+1:Wend:If l=P(n+1)\s;
s(l)\x=P(n+1)\x:s(l)\y=P(n+1)\y:l=l+1:u:q n:Init#s():InitMouse():InitSound();;;;
OpenWindow(0,0,0,le,he,""):OpenWindowedScreen(WindowID(0),0,0,le,he,1,0,0,2);;;;
Dim pd.pt(11):Restore etoile:For i=0 To 10:Read.l pd(i)\x:Read.l pd(i)\y:q i;;;;
nMax=su(pd(),10,4,0.10):pd(nMax)\x=pd(0)\x:pd(nMax)\y=pd(0)\y:Create#s(7,88,88);
StartDrawing(s#Output(7)):For i=0 To nMax-1:For j=0 To 1:LineXY(pd(i)\x+j,;;;;;;
pd(i)\y+j,pd(i+1)\x+j,pd(i+1)\y+j,RGB(a,a,0)):q j:q i:FillArea(44,44,RGB(a,a,0),
RGB(a,200,32)):StopDrawing():Dim pd.pt(20):Restore sapin:For i=0 To 19;;;;;;;;;;
Read.l pd(i)\x:Read.l pd(i)\y:q i:nMax=su(pd(),19,4,0.10):pd(nMax)\x=pd(0)\x;;;;
pd(nMax)\y=pd(0)\y:Create#s(8,le,he):StartDrawing(s#Output(8)):For n=0 To 999;;;
Box(ra(999),ra(999),1,1,RGB(a,a,a)):q n:Ellipse(400,he,999,200,RGB(220,a,a));;;;
For i=0 To nMax-1:For j=0 To 2:LineXY(pd(i)\x+j+200,pd(i)\y+j+60,pd(i+1)\x+j+;;;
200,pd(i+1)\y+j+60,RGB(0,a,0)):q j:q i:FillArea(200+200,100+60,RGB(0,a,0),RGB(0,
192,64)):Ellipse(P(nl)\x,P(nl)\y,30,10,RGB(64,64,64)):StopDrawing():cb(1,RGB(a,;
0,0)):cb(2,RGB(a,a,0)):cb(3,RGB(0,a,0)):cb(4,RGB(0,0,a)):cb(5,RGB(a,0,a)):cb(6,;
RGB(64,64,64)):st=ra(5,1):cl=0:Repeat:ExamineMouse():If em-cc>80:cc=em;;;;;;;;;;
If MouseButton(1) And clic=0:clic=1:tir=1:x=MouseX():u:u:If MouseButton(1)=0;;;;
clic=0:u:If tir=1:x=x:y=y-r:If y<d:tir=0:st=ra(5,1):u:Else:x=MouseX():y=he-2*d:u
ForEach z():If s#Collision(st,x,y,z()\spr,z()\x,z()\y) And cl=0:cl=1:sTir=z()\s;
Break:u:q:If cl=1:Repeat:sbt=z()\spr:z()\spr=st:st=sbt:Until Previous#E(z())=0;;
First#E(z()):sPremier=z()\s:If sPremier+d<lc:Insert#E(z()):z()\s=sPremier+d;;;;;
z()\spr=sbt:Else:fin=1:u:cl=2:tir=0:st=ra(5,1):u:If cl=2:ForEach z():rv=0;;;;;;;
If ListIndex(z())<ListSize(z())-2:ba=z()\spr:ia=ListIndex(z()):Next#E(z());;;;;;
bb=z()\spr:Next#E(z()):bC=z()\spr:indexC=ListIndex(z()):Next#E(z()):bD=z()\spr;;
indexD=ListIndex(z()):If ba=bb And ba=bC And ba=bD:Select#E(z(),indexD);;;;;;;;;;
If z()\s>d:g=z()\s:u:_=_+4:Delete#E(z()):Delete#E(z()):Delete#E(z());;;;;;;;;;;;
Delete#E(z()):For sC=g To lc:s(sC)\at=0:q sC:rv=1:ElseIf ba=bb And ba=bC;;;;;;;;
Select#E(z(),indexC):If z()\s>d:g=z()\s:u:_=_+3:Delete#E(z()):Delete#E(z());;;;;
Delete#E(z()):For sC=g To lc:s(sC)\at=0:q sC:rv=1:u:If rv=1:First#E(z()):Else;;;
Select#E(z(),ia):u:u:q:cl=0:u:Last#E(z()):If em-tb>40 And cl=0:tb=em;;;;;;;;;;;;
If s(0)\at=0:Add#E(z()):z()\s=0:z()\x=s(z()\s)\x:z()\y=s(z()\s)\y:z()\ds=1;;;;;;
If ListIndex(z())=0:z()\spr=6:Else:z()\spr=ra(5,1):While z()\spr=spd1 And;;;;;;;
z()\spr=spd2:z()\spr=ra(5,1):Wend:u:spd3=spd2:spd2=spd1:spd1=z()\spr:u;;;;;;;;;;
ForEach z():If z()\s<lc:If z()\s>d+1:ia=ListIndex(z()):sA=z()\s:Select#E(z(),ia+
1):ib=ListIndex(z()):sB=z()\s:If (sA-sB)>d+1:Select#E(z(),ia):z()\ds=-4;;;;;;;;;
z()\retour=1:Else:Select#E(z(),ia):z()\retour=0:z()\s=sb+d:s(z()\s)\at=0:u:u;;;;
If s(z()\s)\at=1:z()\ds=0:Else:If z()\retour=0:z()\ds=1:s(z()\s)\at=1;;;;;;;;;;;
If z()\s>=d:s(z()\s-d)\at=0:u:u:u:z()\s=z()\s+z()\ds:z()\x=s(z()\s)\x;;;;;;;;;;;
z()\y=s(z()\s)\y:Else:fin=1:u:q:First#E(z()):g=z()\s:For sC=g To lc-1:s(sC)\at=0
q sC:u:Display#s(8,0,0):ds(7,342,0):ForEach z();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If ListIndex(z())<ListSize(z())-1:ds(z()\spr,z()\x-r,z()\y-r):u:q:If spd3<>0;;;;
ds(st,x-r,y-r):u:If _=365:MessageRequester("","Félicitations !"):u:If fin=1;;;;
FreeList(z()):MessageRequester("","Argh, pauvre Santa,"+_+" boules sur 365 !");;
End:u:FlipBuffers():Until WindowEvent()=13111

DataSection
  etoile:
  Data.l 30,68,;;
         66,84,63,54,87,30,60,27,45,1,28,27,2,32,22,53,13,82,30,68
  sapin:
  Data.l 150,392,;
         248,424,374,378,275,255,328,221,262,182,244,139,286,120,217,63
  Data.l 182,2,140,
75,83,121,110,146,75,207,27,232,89,268,49,323,0,351,38,406,109,411,150,392;;;;;;
EndDataSection;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Hasta la vista !

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 6:12
par klystron
bonjour huitbit,
sympa ton code.

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 11:16
par raven
@G-Rom,merci j'ai fait quelques modifs dessus.
huitbit,bravo tourne nickel, sacré gestion des sprites.

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 11:24
par falsam
Pas mal du tout Huitbit (Même si j'ai perdu assez rapidement)

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 19:41
par Huitbit
Hello,

Merci :P
J'espère l'améliorer encore.

En tout cas, le PurePunch, ça permet de voir sortir des trucs vraiment sympas.
Il va falloir que ça dure !

Pour le problème avec la lecture des midis avec la bibliothèque movie, chez moi ça se règle systématiquement quand le code est enregistré (ce qui semble logique car le midi dispose d'une adresse pour s'enregistrer )


@Raven
J'adore ton code(super équilibre des couleurs 8) ) mais tu as encore plein de place dans les data pour qu'il soit valide (sauf si je n'ai pas compris la règle)

Code : Tout sélectionner

;* 94 lines of 80 chars of code + 90 lines of data 
Règle :

Code : Tout sélectionner

;* 64 lines of 80 chars of code + 128 lines of data

Question :
il n'y avait pas un décruncheur qui traînait quelque part(j'ai la flemme d'en coder un :oops: , les listes chaînées m'ont épuisé :lol: )?

Hasta la vista !

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 21:01
par raven
c'est pas bon?c'a y est je suis perdu...
Le source du programme fera au maximum 192 lignes de texte de 80 caractères max par ligne
je suis a 184 lignes ?,bon bah je suis deja hors concours :lol:

Re: Compétition PurePunch Noël 2014

Publié : ven. 19/déc./2014 21:06
par majikeyric
raven: ton code ne doit pas dépasser 64 lignes et là tu en es à 94... :oops:

c'est 64 lignes de code max et 128 lignes de data max.

ça doit pas être trop dur de simplifier tous les Box() en mettant les coordonnées et couleurs en datasection et faire une boucle avec un seul Box() pour tout dessiner.