Do you know that awful feeling when you have been put in charge of the drinks purchase at your friend's wedding?
You can be sure that you will get a soft drink for the big fellow in the corner or, even worse, a double whisky with pint chaser for someone's grandmother.
Anyway, it's your turn to buy the drinks and the order is on the bar. If you remember to get everyone the correct drink you will receive a whisky from each of them as they will be so pleased with your effort. If you get the total round correct, they will all pitch in and pay for the drinks themselves.
All the drinks are £1 each, so everytime you get the round right you make £1 per drink for yourself.
Oh, we almost forgot, everytime you get it right someone else joins your circle of friends.
How to play
Five different types of drinks can be ordered as follows:-
Beer | Red Mug | B |
Lager | Yellow Mug | L |
Red Wine | Red Glass | R |
White Wine | White Glass | W |
Whisky | Yellow Glass | - |
When the drink runs out, you can go home - by taxi.
Programming hints
This program is a good example of the use of user-defined graphics. Just two shapes are defined, a glass and a mug shape, but as they are displayed in many different colours there appears to be a large number of shapes. Remember to use COLOUR and not GCOL for user-defined graphics, as they are handled in the same way as text.
You may wish to add some more drinks in the appropriate shaped glass or mug. For example, a white beer mug could represent lemonade, or you could define a brandy or sherry glass shape. If you add more drinks you must allow W in line 320 to have a larger maximum value. Check for the letter that represents the new drinks in line 480. Display the new drinks after line 250.
10 REM WHAT'S YOURS? 20 REM COPYRIGHT (C) G. LUDINSKI 1983 30 MODE 5 40 DIM W(20) 50 GOTO 160 60 DEF FNB(N$) 70 TF=0 80 FOR L=0 TO 7 90 TF=TF+(2^L)*VAL(MID$(N$,8-L,1)) 100 =TF 110 CLS 120 REM 130 REM DEFINE GLASS AND BEER MUG SHAP E 140 REM 150 VDU 23,224,FNB("00111110"),FNB("00 111110"),FNB("00111110"),FNB("00011100") ,FNB("00001000"),FNB("00001000"),FNB("00 001000"),FNB("00111110") 160 VDU 23,225,FNB("01111000"),FNB("01 111000"),FNB("01111110"),FNB("01111010") ,FNB("01111010"),FNB("01111010"),FNB("01 111110"),FNB("01111000") 170 MG$=CHR$(225):GL$=CHR$(224) 180 REM 190 REM DRAW BAR AND NOTEPADS 200 REM 210 CLS 220 GCOL0,1:PROC_BLOCK(0,520,1279,240) 230 GCOL0,3:PROC_BLOCK(250,0,255,280) 240 GCOL0,3:PROC_BLOCK(755,0,270,280) 250 COLOUR0:COLOUR131:PRINTTAB(4,24)"B ill"TAB(12,24)"Back"TAB(4,26)"`"TAB(12,2 6)"`":COLOUR3:COLOUR128 260 REM 270 REM DRAW DRINKS ORDERED 280 REM 290 M=0:OW=0 300 FORJ=2TO20 310 FORI=1TOJ 320 W(I)=INT(RND(1)*4) 330 IFW(I)=0 THEN CL=1:C$=GL$ 340 IFW(I)=1 THEN CL=1:C$=MG$ 350 IFW(I)=2 THEN CL=2:C$=MG$ 360 IFW(I)=3 THEN CL=3:C$=GL$ 370 COLOUR CL:PRINTTAB(I-1,7);C$:P RINTTAB(I-1,16)" "; 380 NEXTI 390 EI=0 400 COLOUR3:COLOUR128:PRINTTAB(0,18) "What's your order? B=Beer L=Lager R=Red & W=White Wine" 410 OW=OW+J:VDU19,1,1;0;19,2,3;0;19, 3,7;0; 420 REM 430 REM DRAW DRINKS BOUGHT 440 REM 450 FORK=1TOJ 460 I$=GET$ 470 IFK=1 THEN PRINTTAB(0,7);STRIN G$(20," "); 480 IFI$<>"B" AND I$<>"L" AND I$<> "R" AND I$<>"W" THEN 460 490 IFI$="R" THEN COLOUR1:PRINTTAB (K-1,7)GL$:IP=0 500 IFI$="W" THEN COLOUR3:PRINTTAB (K-1,7)GL$:IP=3 510 IFI$="B" THEN COLOUR1:PRINTTAB (K-1,7)MG$:IP=1 520 IFI$="L" THEN COLOUR2:PRINTTAB (K-1,7)MG$:IP=2 530 IFIP=W(K) THEN COLOUR2:PRINTTA B(K-1,16)GL$:M=M+1:GOTO550 540 EI=1 550 COLOUR0:COLOUR131:PRINTTAB(5,2 6);OW;TAB(13,26);M:COLOUR128 560 NEXTK 570 IF EI=0 THEN M=M+J:COLOUR0:COLOU R131:PRINTTAB(13,26);M:COLOUR128 580 RB$=INKEY$(50*J) 590 *FX 15,1 600 IF EI=1 THEN GOTO 310 610 NEXTJ 620 PRINTTAB(0,16)"You did it! You will need a real drink after that "; 630 END 640 DEFPROC_BLOCK(X,Y,W,H) 650 MOVE X,Y:MOVEX+W,Y 660 PLOT 85,X,Y+H 670 PLOT 85,X+W,Y+H 680 ENDPROC