Voting

Category

real language

Bookmarking

Del.icio.us Digg Diigo DZone Earthlink Google Kick.ie
Windows Live LookLater Ma.gnolia Reddit Rojo StumbleUpon Technorati

Language IBasic

(Windows program w/ beer bottle graphics)

Date:08/03/05
Author:Larry Adcock
URL:n/a
Comments:0
Info:http://www.pyxia.com
Score: (2.90 in 120 votes)
'=== 99 Bottles of Beer  by  L a r r y  A d c o c k ===
'=== Language: IBasic Professional by Pyxia   www.pyxia.com ===
'=== Windows program with beer bottle graphics ===
'=== Plurals and last two verses properly handled ===
DEF win:WINDOW
DEF st[6]:string
def aa, bb, brown, white, run:int
autodefine "off"
st=" bottle","","s"," of beer"," on the wall", "take one down and pass it around "
OPENWINDOW win, 5, 10, 630, 200, @caption, 0, "99 Bottles of Beer", &winhandler
control win, @button, "DRINK A BEER !", 300, 130, 150, 25, 0, 1
brown=rgb(90,80,0) : white=rgb(255,255,255)
rect win, 5, 40, 596, 3, brown, brown
for bb=1 to 99
  rect win, bb*6+1, 20, 3, 6, brown, brown
  rect win, bb*6, 26, 5, 10, brown, brown
next bb
aa=100
drink_one()
run = 1 : WAITUNTIL run = 0 : CLOSEWINDOW win : END

'=============================================
SUB winhandler
  SELECT @CLASS
	CASE @IDCLOSEWINDOW
		run = 0
	CASE @IDCONTROL
    select @controlid
     case 1
       if aa>0 then drink_one() else run=0
     endselect
  ENDSELECT
  RETURN
ENDSUB

'=============================================
SUB drink_one
  def a$, b$, music:string
  def x, xx:int
  aa=aa-1
  rect win, 4, 56, 596, 60, white, white
  rect win, 4, 19, 596-aa*6, 20, white, white
  move win, 5, 60

  select 1
    case (aa=0)
      x=2 : xx=2
      setcontroltext win, 1, "NO BEER  -  QUIT"
    case (aa>2)
      x=2 : xx=2
    case (aa=2)
      x=2 : xx=1
    case (aa=1)
      x=1 : xx=2
  endselect

  a$=st[0]+st[x]+st[3]
  if aa>0
    b$=str$(aa)
  else
    b$="No more"
  endif
  print win, b$+a$+st[4]+"... ",b$+a$+"... "
  move win, 10 , 85

  a$=st[0]+st[xx]+st[3]
  select aa
    case 0
      print win, "Go to the store and buy some more...99 bottles of beer."
    case 1
      print win, st[5]+"... "+"no more"+a$+st[4]
    default
      print win, st[5]+"... "+str$(aa-1)+a$+st[4]
  endselect
  'instrument is a glasswind (beer bottle)
  music="I75 O5G16 G16 G16 D16 D16 D16 G16 G16 G16 G16 R8 "
  music=music+"A16 A16 A16 E16 E16 E16 A8 R16 "
  music=music+"G16 F#16 F#16 F#16 F#16 F#16 F#16 F#16 F#16 F#16 F#8 R16 "
  music=music+"D16 D16 D16 D16 E16 F#16 G16 G16 G16 G8 R16"
  playmidi$ music, true
 return
ENDSUB

Download Source | Write Comment

Alternative Versions

VersionAuthorDateCommentsRate
original versionPhilipp Winterberg04/20/051

Comments

Download Source | Write Comment

Add Comment

Please provide a value for the fields Name, Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.

Please don't post large portions of code here! Use the form to submit new examples or updates instead!

Name:

eMail:

URL:

Security Code:
  
Comment: