!************************************************************************* !** BELLFRUIT SIMULATOR BY : W HARTGERS / OMEGON COMPUTERSYSTEMS * !** HOLLAND * !** * !** Sorry folks, the inside text of this program has to be translated * !** to your language. It's a bell-fruit simulator with hold-facility * !** and bonus-point. There is one bug in the program: the last bonus- * !** point is not giving. I don't have time to fix it. Maybe some other? * !** When done, let me know please! (Via the mailbox system - WYCH/AM) * !** The routines used within this program are PACMAN.SBR (Also on the * !** network) and VERIFY.SBR (on the network also). * !** * !** Ofcause the normal rules are here also: Let the author message in * !** the program and my employer has NOTHING to do with this program * !** It's for free... * !** * !** This program is working OK on an AM62A terminal, don't know the * !** the result when using another terminal. It should be ease to modify. * !** * !** Have fun with the program and hope we'll meet again * !** * !** When you enjoy it, please let me know via the mailbox of AMUS! * !** * !************************************************************************* RANDOMIZE STRSIZ 50 PRINT "FRUIT By W Hartgers / Arnhem (HOLLAND)" FOR I=1 TO 500 : NEXT I DIM BAR$(15) DIM TXT1$(30) MAP1 T$,S,45 PRINT TAB(-1,29); XCALL VERIFY,"PACMAN.SBR" XCALL PACMAN BAR$(01) ="KERS *1" BAR$(02) ="PEER 2" BAR$(03) ="KLOK *3" BAR$(04) ="B A R 4" BAR$(05) ="OMEGON*5" BAR$(06) ="APPEL 6" BAR$(07) ="KERS *1" BAR$(08) ="KLOK 3" BAR$(09) ="APPEL *6" BAR$(10) ="PEER 2" BAR$(15) ="KERS *1" BAR$(11) ="OMEGON*5" BAR$(12) ="APPEL 6" BAR$(13) ="KERS *1" BAR$(14) ="B A R 4" A1: READ TXT1$ IF TXT1$="END" GOTO A2 MES1=MES1+1 TXT1$(MES1)=TXT1$ GOTO A1 A2: INPUT "Instruktie j/n : ",I$ I$=UCS(I$) IF I$="J" GOSUB HELP BEG: PRINT TAB(-1,0);TAB(-1,36); PRINT TAB(-1,23) PRINT TAB(01,01);"2"; FOR I=1 TO 78 PRINT "<"; NEXT I PRINT TAB(01,80);"3"; FOR I=2 TO 09 PRINT TAB(I,1);">"; PRINT TAB(I,80);">"; NEXT I PRINT TAB(10,01); PRINT "4"; PRINT "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; PRINT "0"; PRINT "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; PRINT "9"; PRINT TAB(02,05); PRINT "77777 777777 7 7 777777 77777 7 7 77777 7777777"; PRINT TAB(03,05);"7 7 7 7 7 7 7 7 7 7 7 7" PRINT TAB(04,05);"7 7 7 7 7 7 7 7 7 7 7 7"; PRINT TAB(05,05);"77777 777777 7 7 77 777777 77777 7 7 7 7"; PRINT TAB(06,05);"7 7 7 7 7 7 7 7 7 7 7 7"; PRINT TAB(07,05);"7 7 7 7 7 7 7 7 7 7 7 7"; PRINT TAB(08,05);"77777 777777 777777 777777 7 7 7 777777 77777 7"; FOR I=11 TO 23 PRINT TAB(I,1);">"; PRINT TAB(I,45);"6"; PRINT TAB(I,80);">"; NEXT I PRINT TAB(23,01); PRINT "1"; PRINT "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; PRINT "="; PRINT "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; PRINT "5"; PRINT TAB(-1,24); PRINT TAB(11,3);" ROL 1 ROL 2 ROL 3 "; PRINT TAB(-1,23); PRINT TAB(12,3);"2<<<<<<<<<<3 2<<<<<<<<<<3 2<<<<<<<<<<3"; PRINT TAB(13,3);"62<<<<<<<<36 62<<<<<<<<36 62<<<<<<<<36"; PRINT TAB(14,3);"49 49 49 49 49 49"; PRINT TAB(15,3);"61<<<<<<<<56 61<<<<<<<<56 61<<<<<<<<56"; PRINT TAB(16,3);"1<<<<<<<<<<5 1<<<<<<<<<<5 1<<<<<<<<<<5"; ! PRINT TAB(-1,24);TAB(12,03);"DOOR W HARTGERS / OMEGON";TAB(-1,23); PRINT TAB(18,3);"2::::::::::::::::::::::::::::::::::::3"; PRINT TAB(19,3);"6 6"; PRINT TAB(20,3);"6 6"; PRINT TAB(21,3);"4::::::::::::::0::::::::::::0::::::::9"; PRINT TAB(22,3);"6 6 6 6"; PRINT TAB(23,3);"=<<<<<<<<<<<<<<=<<<<<<<<<<<<=<<<<<<<<="; PRINT TAB(-1,24);TAB(22,4);"SPELEN:";TAB(22,20);"BONUS: "; PRINT TAB(22,32);"WIN:"; IF SWHELP=0 THEN SPEL =15 IF SWHELP=0 THEN BONUS =00 GOSUB NUMBERS IF SWHELP=0 THEN SWVAST =0 IF SWHELP=0 THEN GOSUB INIT : SWVAST=1 GOSUB DISPL PRINT TAB(22,37);" "; PRINT TAB(11,48);"OMEGON OMEGON OMEGON 10 BONUS" PRINT TAB(12,48);"B A R B A R B A R 5 BONUS" PRINT TAB(13,48);"KLOK KLOK KLOK 5 BONUS" PRINT TAB(14,48);"PEER PEER PEER 20"; PRINT TAB(15,48);"APPEL APPEL APPEL 20"; PRINT TAB(16,48);"KERS KERS KERS 10"; PRINT TAB(17,48);"OMEGON OMEGON - 10"; PRINT TAB(18,48);"B A R B A R - 10"; PRINT TAB(19,48);"KERS KERS - 4"; PRINT TAB(21,48);"Bij bonus geldt elke ster voor"; PRINT TAB(22,48);"20 punten "; IF SWVALS=1 THEN PRINT TAB(22,70);"VALS"; IF SWHELP=0 THEN SWSIL=1 T$=" 2 3 4 " PRINT TAB(22,36);:PRINT " "; PRINT TAB(19,5);"GAMBLE: x ";T$;" of P(ak)";TAB(-1,37); BEGIN: BEGX: GOSUB ACCEPT PRINT TAB(-1,29); IF SWAUT=0 THEN SPEL=SPEL-1 SWX=0 : IF BONUS=1 THEN SWX=1 SWF=0 GOSUB NUMBERS GOSUB ROLL IF SWAUT=1 THEN FOR DEL=1 TO 10000 : NEXT DEL GOSUB WINNING GOSUB NUMBERS IF BONUS <>0 THEN BONUS=BONUS-1 PRINT TAB(22,36);:PRINT " "; SWVAST =0 IF VAST1=1 OR VAST2=1 OR VAST3=1 THEN SWVAST=1 IF WIN<>0 THEN SWVAST=1 IF SPEL=0 GOTO EIND GOTO BEGIN ROLL: PRINT TAB(24,01);SPACE(60); F=RND : F1=INT(F*15) IF F1>3 GOTO ROLLA XTXT=RND : YTXT=INT(XTXT*MES1) IF YTXT < 1 GOTO ROLLA IF YTXT > MES1 GOTO ROLLA T$=TXT1$(YTXT) PRINT TAB(24,01);TAB(-1,21); FOR XT=1 TO LEN(T$) PRINT T$[XT;1];" "; FOR XTT=1 TO 600 : NEXT XTT NEXT XT PRINT TAB(24,65);TAB(-1,22);" "; FOR XTT=1 TO 2000 : NEXT XTT ROLLA: DD=10 A=RND:AA=INT(A*40) : IF AA<4 GOTO ROLL IF VAST2 = 1 AND VAST3 = 1 THEN AA=AA*3 IF VAST2 = 1 AND VAST3 <> 1 THEN AA=AA*2 IF VAST2 <> 1 AND VAST3 = 1 THEN AA=AA*2 IF VAST1=1 AND VAST2=1 AND VAST3=1 THEN RETURN FOR I=1 TO AA IF TIME<>OT GOSUB TIM DD=DD+15 IF VAST1<>1 THEN ROL1=ROL1+1 : IF ROL1>15 THEN ROL1=1 PRINT TAB(14,6);BAR$(ROL1)[1;6]; IF VAST2<>1 THEN ROL2=ROL2+1 : IF ROL2>15 THEN ROL2=1 PRINT TAB(14,19);BAR$(ROL2)[1;6]; IF VAST3<>1 THEN ROL3=ROL3+1 : IF ROL3>15 THEN ROL3=1 PRINT TAB(14,32);BAR$(ROL3)[1;7]; NEXT I IF SWSIL=0 THEN PRINT CHR$(7); IF VAST2=1 AND VAST3=1 THEN RETURN ROLL2: A=RND:AA=INT(A*10) : IF AA<3 GOTO ROLL2 FOR I=1 TO AA IF TIME<>OT GOSUB TIM DD=DD+30 IF VAST2<>1 THEN ROL2=ROL2+1 : IF ROL2>15 THEN ROL2=1 PRINT TAB(14,19);BAR$(ROL2)[1;6]; B=RND : BB=INT(B*10) : IF INT(BB/2)=BB/2 THEN GOTO ROLL2A IF SPEL<25 GOTO ROLL2A IF BAR$(ROL1)[1;8]<>BAR$(ROL2)[1;8] GOTO ROLL2A IF ROL2=15 THEN ROL2=1 ELSE ROL2=ROL2+1 PRINT TAB(14,19);BAR$(ROL2)[1;6]; ROLL2A: IF VAST3<>1 THEN ROL3=ROL3+1 : IF ROL3>15 THEN ROL3=1 PRINT TAB(14,32);BAR$(ROL3)[1;7]; FOR Y=1 TO DD : NEXT Y IF TIME<>OT GOSUB TIM NEXT I IF SWSIL=0 THEN PRINT CHR$(7); IF VAST3=1 THEN RETURN ROLL3: A=RND:AA=INT(A*5) : IF AA<3 GOTO ROLL3 FOR I=1 TO AA IF TIME<>OT GOSUB TIM DD=DD+30 IF VAST3<>1 THEN ROL3=ROL3+1 : IF ROL3>15 THEN ROL3=1 PRINT TAB(14,32);BAR$(ROL3)[1;7]; FOR Y=1 TO DD : NEXT Y IF TIME<>OT GOSUB TIM NEXT I IF SWSIL=0 THEN PRINT CHR$(7); RETURN INIT: A=RND : AA=INT(A*16) : IF AA<1 GOTO INIT IF AA>15 GOTO INIT ROL1=AA INIT2: A=RND : AA=INT(A*16) : IF AA<1 GOTO INIT2 IF AA>15 GOTO INIT2 ROL2=AA INIT3: A=RND : AA=INT(A*16) : IF AA<1 GOTO INIT3 IF AA>15 GOTO INIT3 ROL3=AA RETURN ACCEPT: PRINT TAB(17,40);TAB(-1,35); VAST1=0 : VAST2=0 : VAST3=0 IF SWVAST=1 THEN PRINT TAB(17,03);& " ";:& PRINT TAB(24,65);:GOTO ACC2 PRINT TAB(-1,23); PRINT TAB(17,05);TAB(-1,21);TAB(-1,49);TAB(-1,49);& TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,22); PRINT TAB(17,18);TAB(-1,21);TAB(-1,49);TAB(-1,49);& TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,22); PRINT TAB(17,31);TAB(-1,21);TAB(-1,49);TAB(-1,49);& TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,49);TAB(-1,22); PRINT TAB(-1,24);TAB(24,65); ACC2: IF TIME<>OT GOSUB TIM XCALL PACMAN,P$: IF LEN(P$)=0 AND SWAUT=0 GOTO ACC2 IF P$=CHR$(27) THEN PRINT TAB(-1,28);TAB(-1,0);:GOTO EINDE IF P$=CHR$(13) THEN PRINT TAB(-1,29);TAB(24,65);:RETURN IF P$=CHR$(185) GOSUB HELP : SWHELP=1 : GOTO BEG P$ =UCS(P$) IF P$="S" AND SWSIL=0 THEN SWSIL=1 : PRINT TAB(22,78);" "; ELSE& IF P$="S" AND SWSIL=1 THEN SWSIL=0 : PRINT TAB(22,78);"S"; IF P$="A" AND SWAUT=0 THEN SWAUT=1 : PRINT TAB(22,77);"A"; ELSE& IF P$="A" AND SWAUT=1 THEN SWAUT=0 : PRINT TAB(22,77);" "; IF SWAUT=1 THEN RETURN IF P$="@" THEN SPEL=SPEL+10 : SWVALS=1 :& PRINT TAB(22,70);"VALS"; IF SWVAST=1 GOTO ACC2 IF P$="C" THEN GOTO ACCEPT IF P$<"1" OR P$>"3" GOTO ACC2 IF P$="1" THEN VAST1=1: PRINT TAB(17,05);" "; : GOTO ACC2 IF P$="2" THEN VAST2=1: PRINT TAB(17,18);" "; : GOTO ACC2 IF P$="3" THEN VAST3=1: PRINT TAB(17,31);" "; : GOTO ACC2 GOTO ACC2 NUMBERS: PRINT TAB(22,11);:PRINT USING "####";SPEL; PRINT TAB(22,26);:PRINT USING "####";BONUS; RETURN DISPL: PRINT TAB(14,6);BAR$(ROL1)[1;6]; PRINT TAB(14,19);BAR$(ROL2)[1;6]; PRINT TAB(14,32);BAR$(ROL3)[1;7]; RETURN WINNING: PRINT TAB(22,36);" "; XX$="" XX$=BAR$(ROL1)[8;1]+BAR$(ROL2)[8;1]+BAR$(ROL3)[8;1] BON=0:PNT=0:WIN=0 IF XX$="555" THEN BON=10:GOSUB FLASH: GOTO WIN5 IF XX$="444" THEN BON=5 :GOSUB FLASH: GOTO WIN5 IF XX$="333" THEN BON=5 :GOSUB FLASH: GOTO WIN5 IF (BONUS <> 0 OR SWX=1) AND BAR$(ROL3)[7;1]="*" THEN PNT=20 : GOTO WIN5 IF XX$="666" THEN PNT=20: GOTO WIN5 IF XX$="222" THEN PNT=20: GOTO WIN5 IF XX$="111" THEN PNT=10: GOTO WIN5 IF XX$[1;2]="55" THEN PNT=10 : GOTO WIN5 IF XX$[1;2]="44" THEN PNT=10: GOTO WIN5 IF XX$[1;2]="11" THEN PNT=4 : GOTO WIN5 GOTO WIN90 WIN5: IF PNT=0 GOTO WIN10 IF BONUS<1 AND SWAUT=0 GOSUB GAMBLE IF PNT=0 GOTO WIN10 WIN=1 FOR XXXX=SPEL TO SPEL+PNT-1 IF TIME<>OT GOSUB TIM PRINT TAB(22,11);:PRINT USING "####";XXXX; FOR Y=1 TO 800 : NEXT Y NEXT XXXX SPEL =XXXX GOTO WIN90 WIN10: IF BON=0 GOTO WIN90 WIN=1 FOR XXXX=BONUS TO BONUS+BON-1 IF TIME<>OT GOSUB TIM PRINT TAB(22,26);:PRINT USING "####";XXXX; FOR Y=1 TO 800 : NEXT Y NEXT XXXX BONUS =XXXX WIN90: RETURN FLASH: FOR II=1 TO BON*2 IF TIME<>OT GOSUB TIM PRINT TAB(24,70);TAB(-1,36); FOR Y=1 TO 380 : NEXT Y PRINT TAB(24,70);TAB(-1,37); FOR Y=1 TO 480 : NEXT Y NEXT II RETURN GAMBLE: T$=" 2 3 4 " : TX$=T$:P=0 PRINT TAB(22,36);:PRINT USING "####";PNT; PRINT TAB(19,5);"GAMBLE: x ";T$;" of P(ak)"; GAM1: P=P+1 : IF P=13 THEN P=1 PRINT TAB(20,14); XCALL PACMAN,POS$ IF LEN(POS$)<>0 GOTO GAM5 PRINT SPACE(P);TAB(-1,23);"!";TAB(-1,24);SPACE(12); GOTO GAM1 GAM5: IF POS$=CHR$(27) THEN PRINT TAB(-1,28);TAB(-1,0);:GOTO EINDE IF POS$=CHR$(13) GOTO GAM8 IF POS$="P" OR POS$="p" GOTO GAM9 GOTO GAM1 GAM8: LX=RND : LY=INT(LX*50) FOR LX=1 TO LY IF TIME<>OT GOSUB TIM P=P+1 : IF P=13 THEN P=1 PRINT TAB(20,14); PRINT SPACE(P);TAB(-1,23);"!";TAB(-1,24);SPACE(12); FOR DEL=1 TO LX*10 NEXT DEL NEXT LX IF T$[P;1]=" " THEN PNT=0 : GOTO GAM85 WW=VAL(T$[P;1]) PNT=PNT*WW FOR L=1 TO 5000 NEXT L GOTO GAMBLE GAM85: PRINT TAB(22,36);:PRINT " "; GAM9: WIN=1 RETURN EIND: PRINT TAB(24,1);TAB(-1,28); PRINT "Sorry, geen punten meer. Het was leuk met U te "; PRINT "spelen! - Druk enter : ";TAB(-1,9); INPUT "",J GOTO EINDE HELP: PRINT TAB(-1,36); PRINT TAB(-1,0);TAB(-1,30); PRINT "BELL-FRUIT door W Hartgers / Omegon"; TAB(-1,31) PRINT "Dit programma simuleert een fruit-machine. " PRINT "De volgende toetsen worden gebruikt : " PRINT "RETURN - Start draaien van de 'rollen' of bij gokken" PRINT " stoppen van het pijltje." PRINT "1/2/3 - Met deze toetsen kunnen, indien de blokjes onder" PRINT " de 'rollen' knipperen een of meerdere toetsen" PRINT " vastgezet worden." PRINT "C - De vastgezette toetsen weer vrijgeven" PRINT "ESC - Tussentijds stoppen van het spel" PRINT "A - Automatisch aan/uit (DEMO) " PRINT " " PRINT "De te behalen waardes zijn op het scherm zichtbaar." PRINT "Bij alle normale winsten is het mogelijk om te gokken op" PRINT "een hogere winst (x 1, 2, 3 of 4)." PRINT "Helaas loopt het pijltje altijd iets door, maar niet altijd" PRINT "even ver, zodat het echt gokken is." PRINT "Bij bonuspunten zijn per ster in de laaste 'rol' 20 punten" PRINT "te verdienen. Theoretisch is het dus mogelijk om na" PRINT "OMEGON OMEGON OMEGON 200 punten te verdienen." PRINT "Bij bonus-winsten is het niet mogelijk om te gokken" PRINT " " PRINT TAB(-1,37); PRINT "Druk op ENTER indien gezien : "; : INPUT I$ PRINT TAB(-1,36); PRINT TAB(3,1);TAB(-1,10); PRINT " " PRINT "Dit programma is een NIET ge-support produkt;" PRINT "derhalve is men vrij om het te gebruiken, maar " PRINT "de juiste werking wordt niet gegarandeerd!" PRINT " " PRINT "Dit programma werkt niet onder MULTI en" PRINT "ook niet op een MS/DOS PC onder OMATE" PRINT " " PRINT TAB(-1,37); PRINT "Druk op ENTER indien gezien : "; : INPUT I$ RETURN DATA1: DATA "Nieuwe ronde; Nieuwe kansen !" DATA "He're we go again!" DATA "Plop, Plop, Plop!" DATA "Draaien met die hap!" DATA "Spanning en sensatie" DATA "The pink panther strikes again" DATA "Leve de LOL!" DATA "Aaaaaarch" DATA "In de hemel is geen bier!" DATA "Ik wil op vakantie!" DATA "Dit gaat geld kosten !" DATA "Moet je niet aan't werk?" DATA "END" TIM: OT=TIME: PRINT TAB(24,70); UU=0 : MM=0 : SS=0 TIM1: IF OT > 3599 THEN UU=UU+1 : OT=OT-3600 : GOTO TIM1 TIM2: IF OT > 60 THEN MM=MM+1 : OT=OT-60 : GOTO TIM2 SS=OT PRINT USING "#Z";UU; : PRINT ":"; PRINT USING "#Z" ;MM; : PRINT ":"; PRINT USING "#Z";SS; OT=TIME RETURN EINDE: END