Happy 15th PureBasic Birthday PurePunch

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Happy 15th PureBasic Birthday PurePunch

Post by TazNormand »

Hello Mates

as Falsam as told us on this topic in the french forum, "Bon anniversaire à Purebasic", PureBasic is now 15 years old.

So, it's time for a "Birthday PurePunch", but which must be concerned by Purebasic and/or his forums. (french topic here)

I copy & modify here the previous rules Djes established on old PurePunchs. If someone want to offer a prize, send me a little Private Message.

EDIT on October 14, 2015 : Limit date is shifted to 15 november 2015, 23:59 (11:59 PM) due to lack of competitors (in french and in english forums), so if you needed more time, or if you were hesitating, you can now go on


EDIT on September 29, 2015 : A prize of 15€ (not reclaimed and re-offered by Falsam on previous PurePunch, thanks to him and Fred) is offered to the winner, at the same rules as the previous PurePunch :
Fred and Fantaisie Software are giving for 15€ of prize, to seek on Thinkgeek or a local store (see here on Amazon).


My own wishes are : all OldSchool computer stuff, so let your imagination run on 2D Demo FX, old game remake, intro/cracktro remake...
The Rules
  • 0.5° Production MUST be concerned by Purebasic and/or his forums
    1° The program will be done with Purebasic version 5.24 minus but 5.40 forbidden, Demo Version accepted, APIs allowed but no userlib, Ogre, DirectX, OpenGL allowed.
    2° the program source will be 192 text lines of 80 chars max per line, distributed as desired between code and DATAs. it possible to cut your source code into many text files, like PB code, data text file, Ogre shader file, prefs file, XML datas, etc.... But the length of each file sise is cumulative : source code+data+xml+prefs+... MUSTN4T exceed 192 lines of 80 chars max.
    3° Be original, meaning complete new creation, or something really new to existing creation.
    MUSN'T BE HARMFUL.
    Obfuscated binary file(s) DENIED. Only image files, max 1920x1080 allowed, and 5 files max , also sound/music file (ogg/mp3/wav/xm/s3m/mod) 1mb max.
    6° You will be able to add a line ( not counted) at the beginning of your program (like the necessity to use a particular sub-system). this line will add this form :

    Code: Select all

    MessageRequester("Information", "Message", #PB_MessageRequester_Ok)
    Limited date and time : 15 october 2015, 23:59:59 GMT
    3 codes maximum per member will be allowed !!!
  • At the period end, you will be able to vote for the best program, accorded to your point of view.
    Only members registered before 1st september 2015 will be able to vote ; points must be attributed as this example :
    • 3 points for the 1st,
      2 points for 2nd,
      1 point for the 3th.
    Voters will be able to choose their 3 favorites programs till 15 november at 23:59:59 GMT.
How to post
  • Post your code in this forum after you having added this header (lines not counted in the 192 limit) :

Code: Select all

;*****************************************************************************
;*
;* Birthday Punch : PureBasic 15 years of happiness
;* PureBasic 5.xx
;* 192 lines of 80 chars of code or data as you want
;*
;* Name     :  
;* Author   : 
;* Date     : 
;* Notes    :
;*
;*****************************************************************************
Good Luck ! :)
Link to BirthDay PurePunch on French Forum

Last words : Excuse me if i made a bad translation from my french topic, if you eyes are crying blood after reading my message, please feel free to communicate me language corrections.
Last edited by TazNormand on Tue Oct 20, 2015 9:06 am, edited 7 times in total.
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Birthday PurePunch

Post by TazNormand »

My message does not seem to excite the crowd :(
GPI
PureBasic Expert
PureBasic Expert
Posts: 1394
Joined: Fri Apr 25, 2003 6:41 pm

Re: Birthday PurePunch

Post by GPI »

I think, that the main problem is, that there is no theme. Better would be a destiny, like "the smallest PacMan-Clone".
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Birthday PurePunch

Post by TazNormand »

Hi GPI

There is a theme, and not a small one : BIRTHDAY ! isn't enough ?
User avatar
Vera
Addict
Addict
Posts: 858
Joined: Tue Aug 11, 2009 1:56 pm
Location: Essen (Germany)

Re: Birthday PurePunch

Post by Vera »

A happy idea this is Image
GPI wrote:I think, that the main problem is, that there is no theme.
To me the theme is clear, but thinking about what you say I find the thread title is too vage.
It might be more inviting if it announced something like:

"Happy 15th PureBasic Birthday PurePunch"

greets ~ Vera
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Happy 15th PureBasic Birthday PurePunch

Post by TazNormand »

Good Idea, Mrs Vera, title changed according to your proposal :D
User avatar
deseven
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Jan 12, 2011 3:48 pm
Location: Serbia
Contact:

Re: Happy 15th PureBasic Birthday PurePunch

Post by deseven »

I guess i'm in :)
Just one question - is it possible to merge lines with ":"? I sometimes write stuff like this:

Code: Select all

a = 1 : If a
  ..
EndIf
EDIT:
Also, why 5.22? The last LTS is 5.24.
User avatar
falsam
Enthusiast
Enthusiast
Posts: 630
Joined: Wed Sep 21, 2011 9:11 am
Location: France
Contact:

Re: Happy 15th PureBasic Birthday PurePunch

Post by falsam »

deseven wrote:Just one question - is it possible to merge lines with ":"? I sometimes write stuff like this:
Yes

or like this

Code: Select all

Macro i:If:EndMacro:Macro ei:EndIf:EndMacro:Macro d:Debug:EndMacro
a=1:i a=1:d "test":ei

➽ Windows 11 64-bit - PB 6.0 x64 - AMD Ryzen 7 - NVIDIA GeForce GTX 1650 Ti

Sorry for my bad english and the Dunning–Kruger effect.
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Happy 15th PureBasic Birthday PurePunch

Post by TazNormand »

deseven wrote:I guess i'm in :)
Just one question - is it possible to merge lines with ":"? I sometimes write stuff like this:

Code: Select all

a = 1 : If a
  ..
EndIf
EDIT:
Also, why 5.22? The last LTS is 5.24.
Yes, you can merge lines with ":", and 5.22 is mistyped, right version is 5.24 => corrected in first message
User avatar
deseven
Enthusiast
Enthusiast
Posts: 362
Joined: Wed Jan 12, 2011 3:48 pm
Location: Serbia
Contact:

Re: Happy 15th PureBasic Birthday PurePunch

Post by deseven »

falsam wrote: or like this

Code: Select all

Macro i:If:EndMacro:Macro ei:EndIf:EndMacro:Macro d:Debug:EndMacro
a=1:i a=1:d "test":ei
Don't want to go THIS extreme :) I think the code should be readable.
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Happy 15th PureBasic Birthday PurePunch

Post by TazNormand »

Hi all, a prize of 15€ is offered for the winner, please read first message of this topic for more information.
User avatar
majikeyric
Enthusiast
Enthusiast
Posts: 179
Joined: Mon Oct 21, 2013 5:21 pm
Location: France
Contact:

Re: Happy 15th PureBasic Birthday PurePunch

Post by majikeyric »

Good luck everyone !
Last edited by majikeyric on Sun Oct 04, 2015 4:48 pm, edited 1 time in total.
User avatar
TazNormand
User
User
Posts: 27
Joined: Tue May 26, 2009 3:17 pm
Location: France

Re: Happy 15th PureBasic Birthday PurePunch

Post by TazNormand »

@ Majikeyric : i've post the same comment on french forum, but copied here in english for further programs :

Don't forget the most important rule :
but which must be concerned by Purebasic and/or his forums
User avatar
ar-s
Enthusiast
Enthusiast
Posts: 340
Joined: Sat Oct 06, 2007 11:20 pm
Location: France

Re: Happy 15th PureBasic Birthday PurePunch

Post by ar-s »

Mise à jour 05/10/2015

PB vs THE WORLD
Style : shoot em up
- I used Musik Maker jam to make the music and soundforge for the samples
- i also used a sprite from http://millionthvector.blogspot.fr (free sprites) for the ship (not the shield) andn the planet
- I used the old rules 80x80 with my code :)
- Try with succes on Windows and MacOS

EnJoY

Datas :http://pb.ldvmultimedia.com/PB_vs_THE_WORLD_by_Ar-S.zip

Code: Select all

;*****************************************************************************
;*
;* Birthday Punch : PureBasic 15 years of happiness
;* PureBasic 5.31 x86
;* 192 lines of 80 chars of code or data as you want
;*
;* Name     : PB vs THE WORLD
;* Author   : Ar-S - Music made with Music Maker Jam - thanks to Microdevweb for shoot linkedlist() helping
;* Date     : Nov/Oct 2015
;* Notes    : Dedicated To my mom Apr 1940 - Sept 2015
;*
MessageRequester("Info","Use Arrows to move, space to shoot and left ctrl to use shield"+Chr(10)+"Left Mouse Button to restart"+Chr(10)+Chr(10)+"Fleches pour se diriger, ctrl : bouclier, Espace:Feu, Bouton de gauche souris pour recommencer",#PB_MessageRequester_Ok) ; LIGNE NON PRIS EN COMPTE
     
UseOGGSoundDecoder():Macro m:Macro:EndMacro:m dec:decoder():EndMacro
m e:examine:EndMacro:m s(n,l,h,x,y):EndMacro:m _s:Structure:EndMacro
InitSprite():InitKeyboard():InitMouse():UseOGGSound#dec:UsePNGImage#dec
InitSound()
_S BB:x.i:y.i:ID.b:End#_S:_S SP:x.i:y.i:n.i:LL.i:HH.i:v.b:r.f:End#_S
_S St:x.i:y.i:v.b:n.b:End#_S:_S SN:D.i:F.i:End#_S:M R:random:EndMacro:M P(S)
PlaySound(S,#PB_Sound_MultiChannel,70):EndMacro:M PP(S):PlaySound(S,1,80)
EndMacro:m _k(k):KeyboardPushed(k):EndMacro
M CS(n,x,y,l,h):ClipSprite(n,x,y,l,h):sp(n)\LL=l/2
sp(n)\HH=h/2:ZoomSprite(n,l/2,h/2):v(n):EndMacro:m v(n):sp(n)\v = R(6,2)
EndMacro:m SX(n):sp(n)\x:EndMacro:m SY(n):sp(n)\y:EndMacro:M Redo(n)
SX(n)=820:SY(n)=R(500,100):v(n):EndMacro:m EX(n):St(n)\x:EndMacro
m EY(n):St(n)\y:EndMacro:m EN(Z):St(Z)\n:EndMacro:m EV(n):St(n)\v
EndMacro:m _r(n,d):SpriteQuality(1):RotateSprite(n,d,#PB_Absolute):EndMacro
Global NewList BB.BB():Global F=LoadFont(16, "Arial", R(80,50))
Global F1=LoadFont(17, "Arial", 24):Global.b feu,NF,ENNEMI,VIZ,ShotOn.b=#True
Global.i x,y,xi,T:Global SCORE,LIFE:Global Dim sp.SP(16):Global Dim st.st(100)
Global TimeElapset=ElapsedMilliseconds()
LoadSound(20,"01.ogg"):LoadSound(21,"02.ogg"):LoadSound(22,"03.ogg")
LoadSound(23,"04.ogg"):SCORE=0:LIFe=3:x=150:y=350:NF=9:xi=2500
t1$="PURE BASIC VS THE WORLD !":t2$="HAPPY PURE BIRTHDAY"
For i=0 To 100:EX(i)=R(820):EY(i)=R(600):Next:For i=0 To 20:EN(i)=13:EV(i)=3
Next:For i=21 To 60:EN(i)=14:EV(i)=6:Next:For i=61 To 100:EN(i)=15:EV(i)=10
Next:OpenScreen(800,600,32,"PB VS The WORLD", #PB_Screen_SmartSynchronization)
LoadSprite(0,"im.png",8|4):For i=1 To 15:CopySprite(0,i,8|4):Next
CS(1,7,142,232,133):CS(2,289,135,234,139):CS(3,0,1,129,128):CS(4,129,1,128,128)
CS(5,257,0,118,130):CS(6,379,0,101,131):CS(7,478,1,115,130):CS(8,595,8,250,126)
CS(9,533,213,53,62):ClipSprite(10,675,138,140,136):CS(11,606,231,25,43)
CS(12,631,231,25,43):CS(13,840,266,8,8):CS(14,833,270,6,5):CS(15,824,271,3,3)
FreeSprite(0)
txt.s=t1$:xtx=r(500,100):ColT=RGB(R(255),R(255),R(255)):sx(10)=1500
sy(10)=r(460,140):PS=1:Repeat:StartTime.i=ElapsedMilliseconds():ClearScreen(0)
E#Mouse():E#Keyboard():If ElapsedMilliseconds()-TimeElapset>=350:ShotOn=#True
TimeElapset=ElapsedMilliseconds():EndIf:If GO=0:If PS=1:PP(23):ps+1:EndIf
For i=0 To 100:DisplayTransparentSprite(R(15,13), EX(i), EY(i),255):EX(i)-EV(i)
If EX(i)<0:EX(i)=805:ey(i)=R(600):EndIf:Next
DisplayTransparentSprite(10,SX(10),SY(10),255):StartDrawing(ScreenOutput())
DrawingFont(f):DrawingMode(#PB_2DDrawing_Transparent):If xi< -2500:NT+1:If NT<2
txt.s=t1$:ElseIf NT=2:txt.s=t2$:Else:NT=0:EndIf:xi=2500:xtx=r(500,100)
ColT=RGB(R(255),R(255),R(255)):EndIf:DrawText(xi,xtx,txt.s,ColT,$0)
StopDrawing():Xi-6:sx(2)=sx(1):sy(2)=sy(1):For S=3 To 8
DisplayTransparentSprite(S, SX(S), SY(S),255):Next:If _K(#PB_Key_Up):y-5:ViZ=1
If _K(#PB_Key_Left):x-5:ViZ=0:ElseIf _K(#PB_Key_Right):X+5:ViZ=1:EndIf
ElseIf _K(#PB_Key_Down):y+5:ViZ=1:If _K(#PB_Key_Left):x-5:ViZ=0
ElseIf _K(#PB_Key_Right):X+5:ViZ=1:EndIf:ElseIf _K(#PB_Key_Left):x-5:VIZ=0
ElseIf _K(#PB_Key_Right):SX(1)=x:x+5:ViZ=1:EndIf:If y<25:y=25:ElseIf y>530
y=530:EndIf:If x<0:x=0:ElseIf x>700:x=700:EndIf:SX(1)=x:Sy(1)=y:Sx(11)=x-10
Sy(11)=y+23:Sx(12)=Sx(11):Sy(12)=Sy(11):If _k(#PB_Key_Space) And ShotOn
AddElement(BB()):BB()\X=SX(1)+120:BB()\Y=SY(1)+15:BB()\ID=9:ShotOn=#False:P(20)
EndIf:If _K(#PB_Key_LeftControl):shield=1:P(22):Else:shield=0:EndIf
If shield=0:ship=1:Else:ship=2:EndIf:DisplayTransparentSprite(ship,x,y,255)
RE=R(12,11):DisplayTransparentSprite(RE,sx(RE),Sy(RE),200):ForEach BB()
BB()\X + 6:DisplayTransparentSprite(BB()\ID, BB()\X, BB()\Y,255):Next     
For ENNEMI=3 To 8:ForEach BB()
If SpriteCollision(9,BB()\X,BB()\Y,ENNEMI,sx(ENNEMI),sy(ENNEMI))<>0
T=ENNEMI:SCORE+1:redo(ENNEMI):If ListSize(BB())>0:DeleteElement (BB()):EndIf
P(21):EndIf:Next:Next:If ListSize(BB())>0 And BB()\X>810:DeleteElement (BB())
EndIf:For i=3 To 8:SX(i)-sp(i)\v:SpriteQuality(1)
RotateSprite(i, ROT.f,#PB_Absolute):ROT.f-0.5:If SX(i)< -100:redo(i):EndIf
Next:For COL=3 To 8:If SpriteCollision(1,sx(1),sy(1),COL,sx(col),sy(col))<>0
If shield=1:score-1:If Score<=0:Score=0:EndIf:ElseIf shield=0:life-1:If Life<=0
GO=1:EndIf:EndIf:P(21):redo(col):EndIf:Next:StartDrawing(ScreenOutput())
DrawText(0,0,"SCORE : "+Str(SCORE),$0000FF,$0)
DrawText(150,0,"LIFE : "+Str(LIFE),$0000FF,$0)
DrawText(650, 0, "ESCAPE to EXIT",$ffffff, $0):StopDrawing():SX(10)-1
If sx(10) < -160:sx(10)=1500:sy(10)=r(460,140):EndIf:ElseIf GO=1:StopSound(23)
PS=0:StartDrawing(ScreenOutput()):DrawingFont(f):TG$="GAME OVER"
DrawText( R(400,398)-TextWidth(TG$)/2,R(280,278),tg$,$FFFFFF,$0)
DrawingFont(f1)
DrawText(R(250,248),R(510,508),"Press LMB to restart",$FFFFFF,$0)
DrawText(R(290,288),R(120,118),"SCORE : "+Str(score),$FFFFFF,$0):StopDrawing()
If MouseButton(#PB_MouseButton_Left):score=0:Life=3:x=5:sx(1)=x:PS=1:GO=0
EndIf:EndIf:FlipBuffers():deltatime=(ElapsedMilliseconds()-StartTime)/1000
Until KeyboardPushed(#PB_Key_Escape)
~Ar-S~
My Image Hoster for PB users
My webSite (french) with PB apps : LDVMULTIMEDIA
PB - 3.x / 5.7x / 6 - W11 x64 - Ryzen 7 3700x / #Rpi4

Code: Select all

r3p347 : 7ry : un71l d0n3 = 1
davido
Addict
Addict
Posts: 1890
Joined: Fri Nov 09, 2012 11:04 pm
Location: Uttoxeter, UK

Re: Happy 15th PureBasic Birthday PurePunch

Post by davido »

@ar-s,

Very nice, thank you. Enjoyed your game. :D
Works fine on Windows 7-64, but I think, even better on my MacBook.
DE AA EB
Post Reply