Page 5 sur 8

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : lun. 10/déc./2012 20:38
par kernadec
merci à vous pour les remarques :lol:

correction effectuée
Cordialement

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : lun. 10/déc./2012 23:35
par wood51
Salut,
Voici ma participation : Les tours d’Hanoï .
But du jeux : déplacer les disques de la première tours vers la deuxième ou la troisième.
un seul déplacement à la fois . On ne peut mettre un grand disque sur un petit disque .
Le nombre maximum de disque est de 10 et le nombre de mouvement minimum pour 10 disques
est de 2032 . Vous pouvez diminuer le nombre de disques en modifiant la variable max_disque ligne 4
en mettant un chiffre de 3 à 10.

Au démarrage rentrez votre pseudo(pour la décoration :oops: ) . Pour jouer cliquez avec la souris sur les tours.


Code : Tout sélectionner

;*****************************************************************************
;*
;* Season's Greetings PurePunch Demo contest
;* PureBasic 5.00
;* 80 lines of 80 chars, 1 month delay
;*
;* Name     : Hanoï Towers
;* Author   : Wood51
;* Date     : 10/12/2012
;* Notes    : But du jeu déplacer les disque d'une tour à l'autre dans 
;*            l'ordre croissant . Le score parfait : "0" 8o) 
;*****************************************************************************
Macro Gl:Global:EndMacro:Macro SD:StartDrawing(CanvasOutput(#Canvas)):EndMacro
Enumeration:#Win:#Canvas:#Img_Base:#Disque:#Ying_Yang:#Titre:#t
#Basically_Pure:#Victoire:EndEnumeration
Gl nb_disques=3:Gl max_disque=8:Gl inMenu=1:Gl txt$:Gl old_value,old_pos
Gl old_tour,inMvt,nb_mouvements:Gl min_mvt=Pow(2,3)-1
Gl Dim t(3,nb_disques):Gl Dim disques_pos(10)
Procedure InitGraphics():UsePNGImageDecoder():LoadImage(#Img_Base,"hanoi.png")
GrabImage(#Img_Base,#Disque,160,90,220,20)
GrabImage(#Img_Base,#Ying_Yang,0,70,150,150)
GrabImage(#Img_Base,#Titre,0,0,512,70) ;Titre
GrabImage(#Img_Base,#Basically_Pure,0,220,60,255) 
GrabImage(#Img_Base,#t,60,220,240,230)
GrabImage(#Img_Base,#Victoire,160,120,311,88)
For i=0 To 9:Read.i disques_pos(i):Next:EndProcedure
Procedure Menu():SD
DrawingMode(#PB_2DDrawing_Outlined):RoundBox(345,200,300,150,20,20,$3c8c0c)
RoundBox(470,305,50,30,10,10,$3c8c0c)
DrawText(462,215,"PSEUDO :",$3c8c0c,$9fba8f)
DrawText(470+15,305+7,"OK",$3c8c0c,$9fba8f)
DrawingMode(#PB_2DDrawing_Default):Box(395,245,200,30,$BDFF95)
DrawText(493,252,"|",$3c8c0c,$BDFF95):StopDrawing():EndProcedure
Procedure DrawBackGround():SD
Box(0,0,990,700,$9fba8f): DrawAlphaImage(ImageID(#Ying_Yang),160,25,255)
DrawAlphaImage(ImageID(#Titre),270,60)
DrawAlphaImage(ImageID(#Basically_Pure),860,45)
For i = 0 To 2:DrawAlphaImage(ImageID(#t),60+i*300,385):Next:StopDrawing()
EndProcedure:Procedure DrawDisques():SD:For j=0 To 2
For i=0 To nb_disques-1:If t(j,i)>0:x=j*300+170-10*t(j,i)
y=disques_pos(nb_disques-i-1):width=(t(j,i)+1)*20:height=20
DrawImage(ImageID(#Disque),x,y,width,height):EndIf:If t(j,i)<0
x=j*300+170-10*-t(j,i):y=325:width=(-t(j,i)+1)*20:height=20
DrawImage(ImageID(#Disque),x,y,width,height):EndIf:Next:Next
DrawText(10,670,"Moves : "+Str(nb_mouvements),$3c8c0c,$9fba8f):StopDrawing()
EndProcedure:Procedure DrawVictoire()
SD:Box(0,0,990,700,$9fba8f)
DrawAlphaImage(ImageID(#Victoire),339,306)
DrawAlphaImage(ImageID(#Ying_Yang),160,25,255)
DrawAlphaImage(ImageID(#Titre),270,60)
DrawAlphaImage(ImageID(#Basically_Pure),860,45)
score$="Bravo "+txt$+" Scrore : "+Str(nb_mouvements-min_mvt)
DrawText((990-TextWidth(score$))/2,390,score$,$3c8c0c,$9fba8f):StopDrawing()  
EndProcedure:Procedure Initt():For i=0 To nb_disques-1:t(0,i)=i+1:t(1,i)=0
t(2,i)=0:Next
EndProcedure:Procedure Check_Victoire()
somme_t1=0:somme_t2=0:somme_victoire=(nb_disques*(nb_disques+1))/2
For i=0 To nb_disques-1:somme_t1=somme_t1+t(1,i):somme_t2=somme_t2+t(2,i)
Next:If somme_t1=somme_victoire Or somme_t2=somme_victoire
If nb_disques = max_disque:DrawVictoire():Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow:End:Else:nb_disques+1
min_mvt=min_mvt+(Pow(2,nb_disques)-1):ReDim t(3,nb_disques):Delay(400)
Initt():DrawBackGround():DrawDisques():EndIf:EndIf:EndProcedure
If OpenWindow(#Win,0,0,990,700,"Hanoï Towers")
CanvasGadget(#Canvas,0,0,990,700,#PB_Canvas_Keyboard):SetActiveGadget(#Canvas)
InitGraphics():DrawBackGround():Menu():EndIf:Repeat:Event = WaitWindowEvent()
Select EventGadget():Case #Canvas:Select EventType():Case #PB_EventType_KeyUp
If inMenu=1:If GetGadgetAttribute(#Canvas,#PB_Canvas_Key) = #PB_Shortcut_Back
txt$=Left(txt$,Len(txt$)-1):SD:Box(395,245,200,30,$BDFF95)
DrawText(395+(200-TextWidth(txt$+"|"))/2,252,txt$+"|",$3c8c0c,$BDFF95)
StopDrawing()
EndIf:If GetGadgetAttribute(#Canvas,#PB_Canvas_Key) = #PB_Shortcut_Return
If txt$<>"|":inMenu=0:Initt():DrawBackGround():DrawDisques():EndIf:EndIf  
EndIf:Case #PB_EventType_Input:If inMenu=1 And Len(txt$)<13
txt$=txt$+Chr(GetGadgetAttribute(#Canvas,#PB_Canvas_Input)):SD
DrawText(395+(200-TextWidth(txt$+"|"))/2,252,txt$+"|",$3c8c0c,$BDFF95)
StopDrawing():EndIf:Case #PB_EventType_LeftClick
x=GetGadgetAttribute(#Canvas,#PB_Canvas_MouseX)
y=GetGadgetAttribute(#Canvas,#PB_Canvas_MouseY):If inMenu=0:For i=0 To 2
If x>i*300+60 And x<i*300+300 And y>250 And y<615:tour=i:Break:EndIf:Next
If inMvt=0:For i=0 To nb_disques-1:If t(tour,i)>0:old_value=t(tour,i)
old_pos=i:old_tour=tour:t(tour,i)= -t(tour,i):inMvt=1:Break:EndIf
Next:DrawBackGround():DrawDisques():Check_Victoire():Continue:EndIf:If inMvt=1
For i=0 To nb_disques-1:If t(tour,i)=0:Continue:Else:Break:EndIf:Next
If t(tour,i)>old_value Or t(tour,i)=0:t(tour,i-1)=old_value
t(old_tour,old_pos)=0:inMvt=0:nb_mouvements+1:Else:If tour=old_tour
t(old_tour,old_pos)=old_value:inMvt=0:EndIf:EndIf:DrawBackGround()
DrawDisques():Check_Victoire():Continue:EndIf:Else
If x>470 And x<520 And y>305 And y<335:If txt$<>"":inMenu=0:Initt()
DrawBackGround():DrawDisques():EndIf:EndIf:EndIf:EndSelect:EndSelect
Until Event=#PB_Event_CloseWindow:DataSection
Data.i 575,555,535,515,495,475,455,435,415,395:EndDataSection
L'image : http://www.microtuning.fr/downloads/hanoi.png
Image

@+ Wood51

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 2:37
par graph100
C'est jolie tout en vert :D , mais on gagne quand ? (je suis allé jusqu'à 6, après c'est super long :lol: )

Il commence à y avoir quelques codes, dans les 10 premiers jours c'est bien !

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 9:06
par Cool Dji
Yes, tous ces codes, ça met la pression :D

Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 12:49
par wood51
graph100 a écrit :C'est jolie tout en vert :D
Merci ... Ça fait plaisir sachant que moi et l'artistique ça fait 2 :mrgreen:
graph100 a écrit : ... mais on gagne quand ? (je suis allé jusqu'à 6, après c'est super long :lol: )
Tu peux modifier la variable max_disque et la mettre à 6 . Je vais la mettre à 8 ce seras un peut loin long ...

Merci du retour :-)

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 17:40
par lepiaf31
falsam a écrit :Un petit code hors concours pour compter le nombre de lignes de votre code et la largeur maximum d'une ligne.
Copier le code à traiter en mémoire (hors commentaire en début de code) et lancer le code ci-dessous

Code : Tout sélectionner

;*****************************************************************************
;*
;* Season's Greetings PurePunch Demo contest
;* PureBasic 5.00
;* 80 lines of 80 chars, 1 month delay
;*
;* Name     : Line Counter & Longest line  
;* Author   : falsam
;* Date     : 29.11.2012
;* Notes    : off contest
;*
;*****************************************************************************
B$=GetClipboardText():E$=#CRLF$:For i=1 To CountString(B$,E$)+1:L+1
If Len(StringField(B$,i,E$))>C:C=Len(StringField(B$,i,E$)):EndIf:Next
Debug "Line Counter "+Str(L):Debug "Longest line : "+Str(C)
résultat
Line Counter 3
Longest line : 70
Il y a un bug dans le programme, il compte 1 caractère de trop sur chaque ligne, c'est lié au StringField qui n'accepte normalement qu'un seul caractère de séparation (Cf doc). Or #CRLF$ vaut 2 caractères ;)

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 17:42
par lepiaf31
Voici mon PurePunch. il permet de convertir une image en AsciiArt avec la possibilité de corriger le gamma de l'image et de modifier la taille de l'asciiArt.

Code : Tout sélectionner

;******************************************************************************
;*
;* Season's Greetings PurePunch Demo contest
;* PureBasic 5.00
;* 80 lines of 80 chars, 1 month delay
;
;* Name     : Pict2AsciiArt
;* Author   : lepiaf31
;* Date     : 11.12.2012
;* Notes    : Only with PNG images
;*
;******************************************************************************

Global w,h:Procedure w():If OpenWindow(0,0,0,800,480,"Pict2AsciiArt",13238272|1)
EditorGadget(1,330,10,450,380):f.CHARFORMAT\cbSize=SizeOf(CHARFORMAT)
f\dwMask=#CFM_FACE:PokeS(@f\szFaceName,"Courier New"):ImageGadget(3,0,0,0,0,0)
SendMessage_(GadgetID(1),1092,4,@f):ButtonGadget(2,10,10,110,30,"Load Image")
TrackBarGadget(4,360,410,200,30,1,5):TextGadget(5, 330, 415, 30, 20, "Size:")
TextGadget(6,10,415,90,20,"Gamma:"):ButtonGadget(8,690,400,90,30,"Copy")
TrackBarGadget(7,110,410,200,30,0,800):ButtonGadget(8,690,400,90,30,"Copy")
ScrollAreaGadget(0,10,50,310,340,0,0):ImageGadget(3,0,0,0,0,0):CloseGadgetList()
EndIf:EndProcedure:Procedure g(a,c,v.f):Dim t(w,h):d.f=1/v
StartDrawing(ImageOutput(a)):For x=0 To w-1:For y=0 To h-1:e=Point(x,y):r=Red(e)
g=Green(e):b=Blue(e):r=255*Pow(r/255,d):g=255*Pow(g/255,d):b=255*Pow(b/255,d)
t(x,y)=RGB(r,g,b):Next:Next:StopDrawing():StartDrawing(ImageOutput(c))
For x=0 To w-1:For y=0 To h-1:Plot(x,y,t(x,y)):Next:Next:StopDrawing()
EndProcedure:Procedure.s a(i,r):s=16:Dim t.a(s):p=2*r:q=3*r
m.s=Space(Round(h/(q),1)*(Round(w/(p),1)+2)):CopyMemory(?tab,@t(),s)
StartDrawing(ImageOutput(i)):While y<h:x=0:While x<w:a=0:For j=0 To q-1
For i=0 To p-1:If x+i<w And y+j<h:c=Point(x+i,y+j)
a+Round((Red(c)+Green(c)+Blue(c))/3,2):EndIf:Next:Next:a=a/(p*q)
a=Round((a/255)*(s-1),2):If a>=s:a=s-1:EndIf:PokeA(@m+k,t(a)):k+1:x+p:Wend
PokeS(@m+k,#CRLF$):k+2:y+q:Wend:StopDrawing():ProcedureReturn m:EndProcedure
UsePNGImageDecoder():w():i=0:Repeat:Select WaitWindowEvent()
Case #PB_Event_CloseWindow:Break:Case #PB_Event_Gadget:Select EventGadget()
Case 2:f.s = OpenFileRequester("Load","","PNG|*.png",0):If f And LoadImage(0,f)
s=1:CopyImage(0,1):w=ImageWidth(0):h=ImageHeight(0):SetGadgetAttribute(0,1,w)
SetGadgetAttribute(0,2,h):SetGadgetState(3,ImageID(1)):SetGadgetState(4,5)
SetGadgetState(7,(GetGadgetAttribute(7,2)-GetGadgetAttribute(7,1))/8):t.s=a(1,s)
SetGadgetText(1,t):i=1:EndIf:Case 4:If i:s=6-GetGadgetState(4)
SetGadgetText(1,a(1,s)):EndIf:Case 8:If i:SetClipboardText(GetGadgetText(1))
EndIf:Case 7:If i:u=GetGadgetAttribute(7,2)-GetGadgetAttribute(7,1)
val.f=(GetGadgetState(7)/u)*8:If val>0 And val<8:g(0,1,val)
SetGadgetState(3,ImageID(1)):SetGadgetText(1,a(1, s)):EndIf:EndIf:EndSelect
EndSelect:ForEver:DataSection:tab:
  Data.a 35,87,75,69,68,71,76,102,116,106,105,59,44,58,46,32:EndDataSection
Dites moi ce que vous en pensez =)

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 17:51
par Ar-S
J'aime :) Bravo lepiaf31

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 17:56
par venom
Sympa tous ces petits codes. :P
Bravo a tous





@++

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 18:01
par Patrick88
y a t'il un code pour "compresser" un source purebasic en 80 lignes de 80 caractères ?

ça serait rigolot (et util) à faire, et surement en moins de 80 lignes ... chiche ?

Patrick

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mar. 11/déc./2012 19:17
par wood51
@lepiaf31 : GENIAL !!!!!! :D :D :D

@Pactrick88 : Chiche :lol: !!!

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mer. 12/déc./2012 0:52
par graph100
@Patrick88 : aller !!

@lepiaf : wouah ! j'aime ça !

Code : Tout sélectionner

#############################################################################################################
#############################################################################################################
#############################################################################################################
############################EffW#############################################################################
###########################GGf.:G#################Gj;jW######################################################
##########################tG##L .D##############Wj,GWjtW#####################################################
#########################Df###W: :K############K;.D##W,f#####################################################
#######################WE;W####j  t#W#########D: j####t,W####################################################
#######################E;E#####E . D########WD..:W####E.D####################################################
######################W,L#######;  i########E:  GW#####ii####################################################
######################G:W#######D.  fW#####D:. j#######E.E###################################################
#####################K;D########W:  .D####K:  .E########;f###################################################
#####################f,W########W: . iEDDG,   jW########Li###################################################
####################W.j#W#######W,       .   .D#########D;###################################################
####################L.D##########,           .K#########D:W##################################################
###################W;;#####EKKWEj             iK########G.E##################################################
###################G G###Wt ...                .,itW####G G##################################################
###################; tKWDi    .       .            iK##Ki f##################################################
##################W.  ..  .     .     t.            .,,.  ;W#################################################
##################E      .:ifLLft:.  :K:   .,jtj,.        .E#################################################
###############W##L.    :tW######Wi  iK. .jK#####Ki .      G#################################################
#################W;    :E#########Wi GW,.L########Wt..     L#################################################
#################E     G###########E.E#,t###########i      f#################################################
###############W#j     E#######fK###iK#iE###KG######G      j#W###############################################
###############D,      D######W,E###iK#jE###D,K#####D      ,K################################################
##############D:       iWW########WKLW#Li####W######f       :t###############################################
##############j         fW########WfK##K;tW########G.         G##############################################
############W#i      .,tLjLK#####DjEfjtWK;iEK###WKt..        .E##############################################
##############Ki.   .D####KfttffLK#WL,iK##KGffGLfEWWDL,.     j###############################################
################D:. :WW#####WttGDKK#####WKEDDEK#######D.   :L################################################
#################Ei  f#######WWWEDDLGGDKEEKWWWEW######L  .jK#################################################
###################Df;D#KDW#########################Kt::jE#################################W##K##############
######################WLfKDWWW##################WWtfGGKW##################################WiKWtW#############
####################WLLW#LL#D;iEW##############WfEWWf;K##################################WE,ii,LEW###########
####################KD##EiWDttjij;;;;tffffftGWKDWjEW#KiE#############################KLi,:       :jK#########
#####################W##WKffDDDf;,LKEDGGDKW##Kjj#WjK##KtWW#########################Wt.             .L########
########################WGLLj,iLEi LW####WKDj..G#WKW##############################D,                .f#######
########################Effft;:,:f.,;;jji:.    .fWW##############################L.                . ;#######
#######################WfK##WWWf:jKWWKGj.        :G#W###########################D.                .  L#######
#######################Wi;W#jj##KffW####j         .fW##########################W;     .           . :E#######
########################D.;f;W#WKjt#####t           ;tfLDDDKW##################G.     ,jfGGti:     iK########
#########################Ef;,iftjL#####Wj.                 ..iLW##############W;    .tW######WKDDEE##########
#############################WGK########t. .,ijff,             :G#############G    .G########################
#############################KtW########WKKWW####Wj.           . iW##########W;    i#########################
#############################tD#################Wf.               ,W#########f    ,K#########################
############################W,W################G:                  L########K:   .K##########################
############################W:E###############D:                   :W######Wt.   f###########################
#############################j,K############Wtt.          ,;:       t######L.   jW###########################
#############################K;:E###########ti#f.      .jE##WL.     :W####G.   :E############################
##############################Wi.E#########W,f##Ej,ijfEW######K,     jLEGi.   ,D#############################
###############################Wj:jG#W######i,K################D            ,fK##############################
################################K:L#W######Wf iE################f        .;LWW###############################
###############################Wi;########Kijtj;D###############Wi.iLtfLGK###################################
###############################E:iWWWWWWWE:GW#W##W###############f,W#########################################
################################Wfji;;;;;;,,;;,,,,:,,,::::,,,,,:::D##########################################
#################################################WWWWWWKWWWWWWWKKK###########################################
#############################################################################################################

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mer. 12/déc./2012 13:48
par nemerod256
pour les fichier audio 1Mo max ?
pour les fichier image 1Mo max ?
tout va bien pour le moment et si je dit
pour les fichier autre sa donné quoi ?
par type

car je trouve sa abusé de faire 80 sur 80
il y a des démo maker qui font des programme en 64Ko de code processeur
tout sa pour dit que sa fais plus de 80 sur 80

et vue que tu a pas précisé pour les autre fichier je ferai un fichier autre de la taille qui me plaira car j'ai une idée pour contré la
limite des 80x80
donc sa fais 6Ko et 300o
ERREUR DE 57Ko 600o
pour un fichier de 800 ligne de code en démo

mais je le fais par plaisir
encor merci

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mer. 12/déc./2012 14:24
par falsam
lepiaf31 a écrit :Voici mon PurePunch. il permet de convertir une image en AsciiArt avec la possibilité de corriger le gamma de l'image et de modifier la taille de l'asciiArt. Dites moi ce que vous en pensez =)
J'aime beaucoup. Bravooooooo :)

Re: Compétition PurePunch des fêtes de fin d'année 2012

Publié : mer. 12/déc./2012 21:43
par GallyHC
MESSAGE SUPPRIMER PAR MOI MEME...