'=========================================================================== ' Subject: FADES, FONTS & FUN Date: 05-18-96 (00:00) ' Author: John Rodgers Code: QB, QBasic, PDS ' Origin: www.flinet.com/~coolfool Packet: DEMOS.ABC '=========================================================================== 'EIGHTBAL.BAS 'Wizard Productions 'John Rodgers 'Too Cool Fool 'coolfool@flinet.com 'Eightball is a take off on the Plastic 8 ball you asked questions, 'turned upside down and a different answer floated to the triangle 'on the bottom. 'Magic Eightball was an attempt to add a little dimension to the old plastic 'toy and then to incorporate some of the neat code I have picked up on the 'FIDO Quick Basic Sub. The fade and font routines and the getKey$ function 'were posted in the FIDO sub and I extracted the code and deleted the mail 'so I don't know who wrote what. Sorry guys but great code. Thanks! 'This program and the source code are released to the Public Domain. 'Code is released as is and is not guaranteed for any purpose. 'If I get enough response I will update this with greater depth of 'answers and better graphics. 'Thanks to Rick and Ruth, Dale and all the gang at AFAN for thier help. 'FADES FONTS AND FUN DEFINT A-Z DECLARE SUB am () DECLARE SUB who () DECLARE SUB was () DECLARE SUB what () DECLARE SUB would () DECLARE SUB should () DECLARE SUB could () DECLARE SUB how () DECLARE SUB when () DECLARE SUB will () DECLARE SUB where () DECLARE SUB why () DECLARE SUB did () DECLARE SUB isQ () DECLARE SUB ifQ () DECLARE SUB have () DECLARE SUB were () DECLARE SUB can () DECLARE SUB does () DECLARE SUB tellTime () 'the subs above this line cover the questions DECLARE SUB yes () 'yes answers DECLARE SUB no () 'no answers DECLARE SUB amb () 'ambiguous answers DECLARE SUB tri () DECLARE SUB delay (a!) DECLARE SUB ballFade () DECLARE SUB getAns () DECLARE SUB getQuestKey () DECLARE SUB parseAnswer () DECLARE SUB displayAns () DECLARE SUB getName () DECLARE SUB getQuerry () DECLARE SUB eye (xp%, yp%) DECLARE SUB delay (a!) DECLARE SUB title () DECLARE SUB drawBall () DECLARE SUB triangle () DECLARE SUB getTime () 'Great SUBs & FUNCTIONs I got from the FIDO QuickBasic sub [TCF] DECLARE SUB deFont () DECLARE SUB fadeinit () DECLARE SUB fadin (d%) DECLARE SUB fade (d%) DECLARE SUB font () DECLARE FUNCTION getKey$ (row%, col%, prompt$, default$, maxx!, minn!, blanker$, limit$) 'you need to DIM colourPalette for fade to work DIM SHARED ColourPalette(1 TO 1024) AS INTEGER COMMON SHARED kpres%, k$, f$, name$, querry$ COMMON SHARED prTime$, answer$, fir$, sec$ 'a$(letter) is the array that holds the font DIM SHARED a$(122) deFont 'define font k$ = INKEY$ 'Alfred Hitchcock theme song PLAY "MB" 'background PLAY "O2 L12 D N0 >D l32 E L12 DC+C+ N0 DE< N0" kpres% = 0 SCREEN 9 COLOR 7, 0 RANDOMIZE TIMER PLAY "AD N0 >D l32 E l12 D C+C+ N0 DE N0" CLS title PLAY " N0 FA..GF N0 A >C..< A+A N0 >CEDC+ N0 D l32 E l12 DC+C+ N0 DE< N0" eye 110, 56 PLAY "AD N0 >D L32 E L12 DC+C+ N0 DE N0.. F N0 A >C< A+AGF" PLAY "D+GA+DC+DE N0 F L9 E. L12 D" DRAW "c14;s4 bm15,79" 'set cursor for font f$ = "Wizard Productions" 'c = color, s = size font 'bm15,79 = positions fadeinit 'I sorta know how this works fade 100 ' but I plugged it in and it does CLS delay 2 getName fade 100 CLS ballFade DO 'main loop getQuerry fade 100 CLS getAns ballFade tri displayAns fadin 100 delay 3 fade 100 CLS tri ' play again? f$ = name$ + ", need more answers?" DRAW "c13;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",40" font DO LOOP WHILE LEN(INKEY$) again$ = getKey$(14, 35, "Y/n : ", "Y", 2, 1, " ", "yYnN") IF UCASE$(again$) = "Y" OR UCASE$(again$) = "YY" THEN CLS ballFade END IF LOOP UNTIL UCASE$(again$) = "N" OR UCASE$(again$) = "YN" OR UCASE$(again$) = "NN" CLS PLAY "D+GA+DC+DE N0 F L9 E. L12 D" ballFade eye 300, 20 f$ = "Wizard Productions" DRAW "c15;s12 bm" + STR$(100 - ((LEN(f$) / 2) * 6)) + ",45" font f$ = "Thanks for playing " DRAW "c14;s10 bm" + STR$(160 - ((LEN(f$) / 2) * 6)) + ",110" font f$ = name$ DRAW "c13;s10 bm" + STR$(300 - ((LEN(f$) / 2) * 20)) + ",170" font fadin 100 delay 2 fade 100 SCREEN 0 'reset old machines COLOR 7, 0 SYSTEM SUB am RANDOMIZE TIMER qNum% = INT(RND * 3) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb END SELECT END SUB SUB amb RANDOMIZE TIMER ansNum% = INT(RND * 8) + 1 SELECT CASE ansNum% CASE 1 answer$ = name$ + ", the answer is dark." CASE 2 answer$ = "It is you! " + name$ + ", that covet my icecream bar." CASE 3 answer$ = "It is possible " + name$ + ", that no one cares." CASE 4 answer$ = "Do not ask " + name$ + " it is not good." CASE 5 answer$ = name$ + " your questions weary me." CASE 6 answer$ = name$ + " " + name$ + " " + name$ CASE 7 answer$ = " The tree grows on the side of the mountain." CASE 8 answer$ = "Seek that answer in the stars." END SELECT END SUB SUB ballFade drawBall fadin 100 delay 1 fade 100 CLS END SUB SUB can RANDOMIZE TIMER qNum% = INT(RND * 3) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb END SELECT END SUB SUB could RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "Coulda Woulda Shoulda " CASE 5 answer$ = "It is not for " + name$ + " to know." CASE 6 answer$ = "Could be." CASE 7 answer$ = "No " + name$ + ", it couldn't." END SELECT END SUB DEFSNG A-Z SUB deFont 'define font 'font is from FIDO QuickBasic sub a$(32) = "BR8" a$(33) = "BR2G2RED8BD2D2HR2HBU2U3LU3R2D3U5FBU2BR2" a$(34) = "BRBUGDRND2RULBR3DRND2RULUBR3" a$(35) = "BR7G2D6LDU6L2GR3D3L3GR3ND2R4UNL2D3EU5NL3UL2NUR3UD" a$(35) = a$(35) + "5R2EL3U3R3EL3U2EBR5" a$(36) = "BR5DND15G4D4RNU4E3R3D6LNU6DLDL3HL2NDE2GR2DR2U10RF" a$(36) = a$(36) + "URUNL3EBUBR3" a$(37) = "BR4LG3DED2ED2EDE3LEL2EL2EBR6G2RDLD2HD3HD3HD3HD2UB" a$(37) = a$(37) + "R6REL3EL2ELE3DED2ED3EUBU7BR2" a$(38) = "BR6RF2NG3L2UL2G2RGDEDRND3G2NR3G3RGDERGDERGD2EURE3" a$(38) = a$(38) + "H2R2D2F5REUGLNH4UH4E2R2D2RENL5BU8BR3" a$(39) = "BRD4UHR2UL2BUBR5" a$(40) = "BR6G4REG3REG3R2UG2ND5RD7RU4D5RU3FDBU16BR3" a$(41) = "BD17E4LGE3LGE3LGUE2DHENU3LNU5HNU5UHU3GDBU2BR7" a$(42) = "BR3D3ND3NL3NR3NG2NH2NF2E2BUBR3" a$(43) = "BR5BD4D4ND4NL4LND5NU3DL4R8UL3R4BU8BR3" a$(44) = "BRBD13D3GE2UL2RBU14BR5" a$(45) = "BD9NR6ER6BU8BR3" a$(46) = "BD15R2GU2BU14BR5" a$(47) = "BD16E2LELE2DHE2DHE2DHE2DHE2DHE2BR3" a$(48) = "BR4G3D8UHU4E4NR2DNR3FNR3FR2GR2D4LU4D6G3UNE3L2H2ED" a$(48) = a$(48) + "RDRBU12BR8" a$(49) = "BD2E2ND13GR2UD13H2R4GE2BU11BR3" a$(50) = "BD4E4L2D3HUR2ER2DRND5FD3NG3LNG7LG5D3GUENR6FNR4FR2" a$(50) = a$(50) + "E2HREBU10BR3" a$(51) = "BR3G3NF2RE2RNG3DRF2DHD2HD4H2ED2R2D4ENU2G4H3LE2D2E" a$(51) = a$(51) + "D2ED2EBU13BR6" a$(52) = "BR6D14FU14LG6DR8FL8R6D3FDEBU13BR3" a$(53) = "BR9G3L4U2R5GL4D6E3RG2RERGR2FND3L3FRD3G3LHNR3HNR5H" a$(53) = a$(53) + "LR4H2GRBU10BR10" a$(54) = "BR5F2RGH2LF2DH2LG2D9HNU6UE5D2EUD3EUND5FD3G5U3LU3B" a$(54) = a$(54) + "U11BR9" a$(55) = "BD3E2R7GNL7G2RG2RG2ERG3ERG2ERG2D2FU3ED4E2LBU13BR6" a$(56) = "BDBR6L3G3R2DL2FRED3HR3HD2R3HD3HR3ND3GD3G2NH4L2UR2" a$(56) = a$(56) + "NH4L3ULULUE8L2DEUL2UBR6" a$(57) = "BUBR4G4D3FNU4EUD3RU2FE4ND5GD6G2NL5G2HRU2L2EBU7BR4" a$(57) = a$(57) + "R2UH2LF2LNH2LHU2BR7" a$(58) = "BD7R2GU2BD6D2HR2BU13BR4" a$(59) = "BD7R2HD2BD4D3GE2UL2BU13BR6" a$(61) = "BD6R6EL6BD3R6GNL6BU9BR5" a$(63) = "BR3G3ER4HLD2R3DL2FRG4DBD2D2HR2BU13BR6" a$(65) = "BD6U3NE2RE3NR3DR4G3L2DEUR3EG2DGDG2NH3NR7DNR7G2NR3" a$(65) = a$(65) + "DNR4DFBR3HR2E3D3FNE2U14GND9E2BR3" a$(66) = "BD3UEDRUR3EG3D4L2GDER2D5LG2NDE2REU9FED8EU8EDER3GR" a$(66) = a$(66) + "2D2HD2G2HUND9D2R3ND5FD4LG2L5GE3R3DL3BU13BR8" a$(67) = "BDBR4G3RG2ND4RD6FNU4RNU2ED2NR4UR6NE2NUL3U12G3D6EU" a$(67) = a$(67) + "6ER5GLU2LUBR6" a$(68) = "BDBR2NR7FR8GR2GRD2NL2D3NL2D3GNL6GL6GE3U10G3D7G2E3" a$(68) = a$(68) + "U2L3GE2R2U4E2R2D5RGD2RGDBU11BR7" a$(69) = "BR4G3ND8RG2D4RED4RNU2FNU2NR4ER5NE2NUL3U12G3D6EU6E" a$(69) = a$(69) + "NR7ER2D2R3G4R4UNL3BU5BR3" a$(70) = "BD6E2DR3UL2EU2D14L2GR2ERURUHU11R7NUL2UL3ED13GU8R3" a$(70) = a$(70) + "EL4U4BUBR8" a$(71) = "BD6D4FDU8E3D9G2U2D3NR7ERD2R4HU12L2ND8R5HD2R2GR2G4" a$(71) = a$(71) + "R4HLD2R2ND3LD3G2BU13BR6" a$(72) = "BD3UNR5ER5EG4D9GRENU9FRNU11EU11E2NRG2D4RE3D2END9R" a$(72) = a$(72) + "D7G2LEBU13BR5" a$(73) = "BD3URUR2D12L2GDR2UEU11EBR3G2D12L2DRE2U12EBR3" a$(74) = "BD5BRRUL2U2E2R3DL4R6DL3R5LG3D9GL3G2ER3DRUR3U2RU10" a$(74) = a$(74) + "ED9BL3DU9E2RERBUBR3" a$(75) = "BD3E2R3NEGL2FD8G2LGE5DU8BR2NE2D8G3R4HLD2FURE3D2FU" a$(75) = a$(75) + "2FRDH4LF2EH2E3LEL3GE2RBU3BR6" a$(76) = "BD2E2R4EG2NL4D11L2G2ERENU9RNE3R2F2RNE3HRNE2UE2LHB" a$(76) = a$(76) + "L3NU7FU7EBU3BR7" a$(77) = "BR6LG4D11LUREU5L2UR2U4ERD11NG2U5R6D5EG3H2R3GNU12H" a$(77) = a$(77) + "U6LNR5RU5LHR2DR6H2GRGND5R2DR2D12NEHU11E2BUBR3" a$(78) = "BD3E2D2R3H2D14L3NDER2EU10RED11NG2U4E3R4GDGDGDGDR4" a$(78) = a$(78) + "EG2L2U2RHEUEUEU3L3FRU2L3G3E4RL5E2RGR2BUBR7" a$(79) = "BR9L4G5ND6RD8R8LGL4U2LUE2NU8LU7ER6FL3HGD10UE3R3DG" a$(79) = a$(79) + "3REU5FUL3NG2RE2DHULBU3BR6" a$(80) = "BUBD3E3D2LR2HD2LR2ND14GND13DG3R2GRDFGLNG2DR2D4R3U" a$(80) = a$(80) + "3NU13R4GU2L3R5EL2E2DNU7HU2L2G3FRLHE3REUL3NGR" a$(80) = a$(80) + "2EU2GU2GL2E2NDBR8" a$(81) = "BR8L3G5ND6RD8R10GR2EGHL3GL4UHUF2R2NU13R2E4G2DEU9L" a$(81) = a$(81) + "3HR3D2LFNG3DERD4L3G3UBL3NU8EU8EBR11" a$(82) = "BD14E5U8EG2L2GE2RD10G2E3FG2R5G2HRU2LUENU8ENE4F4DN" a$(82) = a$(82) + "E3H2R3H3LNF3UE2U4L4E2D3FR2UL2U2BUBR8" a$(83) = "BR11G6H3UE2R3D2REL6GF3NR6L2HG2DED2ED2NR7ENR5RE2L2" a$(83) = a$(83) + "R8GR2ND3GD3G3UGU4RNDG5L3HU2R7DH2RL5R2UBU10BR13" a$(84) = "BD3E2DE2NR5DR9EG2L5D6G3NU3LU7NE3RG2D3F2E2NU5G2NR2" a$(84) = a$(84) + "DR8NE2NULGNL4U12BUBR7" a$(85) = "BD3E2R6EG2L6R4G4ND4RNED6FU3FD2FU2FR3NE4GNL2U13G2D" a$(85) = a$(85) + "6GU5EBR4E3D13E2L3DU11FRBU3BR4" a$(86) = "BD3UE2RG2RD10NLENU11D2F2NE6H2R3GUHRUNE3U3NE3U6H2B" a$(86) = a$(86) + "R7NG3D9ENL3U3NL3U3NL2UHBR4" a$(87) = "BD3E3D14H2RU9LE2RFD12GU3FRE2U10GE2D14HUF2DU3RD2NE" a$(87) = a$(87) + "4U13BR2UED11EU9HBR4" a$(88) = "BD3E3D4FU4LGR2D6L3ER3U4D6GDG2ND2L3NDERFRBR4R4EG3R" a$(88) = a$(88) + "EL2U2LND2LU5R3GL3D3R2UL2U5EUE2LED3FU3FDE" a$(88) = a$(88) + "BU2BR4" a$(89) = "R3GRD10NG3LG2D2ED2NR3ER4HR5DGBU3L2BU2RL4U10FRUD9U" a$(89) = a$(89) + "E3R3D2G2LEURU4L3NGR4DU3GU2GU2GUL2BR8" a$(90) = "BD3UE2D2LR8U2GNL7D2NG5LG3L3R8L2GLDR3L8R4G2RERG3UG" a$(90) = a$(90) + "D2GUR8GU2R2L7RER5EBU11BR3" a$(97) = "BD6NE3F2G2D2F2U3HD2RFUR3D2EL2NU9EU8NEL3F2DGNLEU3H" a$(97) = a$(97) + "BU3BR6" a$(98) = "RD12NLFNU13FU2FURENU7RU6L2U2G3U6EBR7" a$(99) = "BD6NE3RD5GR5EG2LGU3LRU6E2D2ED2EBU5BR3" a$(100) = "BFGDERGR2GR2G4ND4RD5FU3FD3E3NU6LNGU5NE2ULURBU5BR5" a$(101) = "BD7RNE3D4GRFNU6F2NE3UEL2ELU2E4L3FU2LBU5BR6" a$(102) = "BR3G2D12LR3GU9L2R4L2U4EDED2EBU2BR3" a$(103) = "BD17R5EL5E6D5L2EU2L2GLEL2NU5EU4E3D2ED5EU4EBU4BR3" a$(104) = "BDFD13E2NL3HU10NE2D6E4GDED9G3ERE2U9BU5BR3" a$(105) = "BD6ED9FE2LGU9RHBU2URBUBR4" a$(106) = "BD5ED2ED10GE2U8H2BU2URBUBR4" a$(107) = "BDFD12HR4G2U13NE2D6E3R2FL3FRG4ER2GR2D4EUL2U3BU10" a$(107) = a$(107) + "BR5" a$(108) = "BDFD11NL2DFELU13EBR3" a$(109) = "BD6UED10HF2ELU9FNRE2D10FU10FNRE2D10RNE2U9FBU6BR3" a$(110) = "BD5NE2RED9FE2LGU9FNE2RED2RU2D9FE2LGU8EBU4BR4" a$(111) = "BD7NE4ND4RD5F2UHUF2E2NU6LU4H2EDFU2BU4BR4" a$(112) = "BD5E2D13LR2NFU5NL2U7FE2D2ED9GH3R5DL3FE2U6BU5BR3" a$(113) = "BD6NE3ND6RNE2D7FU2FE2D5NGR2HU9FG2DU5L2EBU4BR6" a$(114) = "BD5NE2RED8HF3E2LGU2GU8FE2D2ED3EUBU5BR3" a$(115) = "BD13NE8R6GLU2NL3BR3ENU2LU3LD2HL3EL2NU2EU2E2DR4GN" a$(115) = a$(115) + "L2E2BU3BR3" a$(116) = "BD4NE3RD9HR2D2EDNE2HU10FRBU4BR4" a$(117) = "BD5NE2RED8FNU9FU3FDEF2E2L3FU10G2R3G2D5U8BU4BR6" a$(118) = "BR3G3RDEUD10NLF2NE4U2RL2ELU7BR4NHD7EU5BU5BR3" a$(119) = "BR2G2D2RU3D12HF2EUGU9FE2ND9FD8F2E2RGNHEU9NG3FND8" a$(119) = a$(119) + "BU4BR3" a$(120) = "BD6E3DGRD2RU2D5G4U3FRE2RD2RD2E3GLHUHUE4D2HLE2BU3BR3" a$(121) = "BD5NE2RED10GDFR3EUGBH3RNU10EDE4NU6LU5G2BU6BR6" a$(122) = "BD7UE3D2ED2EDG4R4HLD2R3DL2D2EL2DL2GDFR2EBU16BR5" END SUB SUB delay (a!) 'real time delay, if a = 1 then delay = 1 second dela! = TIMER outvar = 0 DO lt& = lt& + 1 IF lt& >= 65500 THEN outvar = 1 'MIDNIGHT FIX IF TIMER - dela! >= a! THEN outvar = 1 k$ = INKEY$ IF k$ = CHR$(27) THEN CLS : SYSTEM IF LEN(k$) THEN outvar = 1 LOOP UNTIL outvar = 1 END SUB DEFINT A-Z SUB did RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = name$ + ", things do not just happen." CASE 5 answer$ = "Well, Somethings do just happen " + name$ + "." CASE 6 answer$ = "If it was possible." CASE 7 answer$ = "No, you must ask something else " + name$ + "!" END SELECT END SUB SUB displayAns tri PLAY "MB" PLAY "D+GA " IF LEN(answer$) <= 25 THEN triangle f$ = answer$ DRAW "c14;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",40" font ELSE parseAnswer END IF delay 4 END SUB SUB does RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "Things do as they must " + name$ CASE 5 answer$ = name$ + ", it does" CASE 6 answer$ = "Only if you are watching, " + name$ CASE 7 answer$ = "You may believe otherwise, " + name$ END SELECT END SUB DEFSNG A-Z SUB doQ RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = name$ + ", things do not just happen." CASE 5 answer$ = "Well, Somethings do just happen " + name$ + "." CASE 6 answer$ = "If it was possible." CASE 7 answer$ = "Silence is golden, " + name$ + "!" END SELECT END SUB SUB drawBall a8$ = "ллллллл" b8$ = "лпмммпл" c8$ = "лпмммпл" d8$ = "ллмммлл" CIRCLE (315, 157), 57, 15 PAINT STEP(1, 1), 15, 15 COLOR 15 LOCATE 10, 37 PRINT a8$ LOCATE 11, 37 PRINT b8$ LOCATE 12, 37 PRINT c8$ LOCATE 13, 37 PRINT d8$ FOR x% = 56 TO 129 CIRCLE (315, 157), x%, 15 NEXT x% FOR t% = 55 TO 126 CIRCLE (315, 157), t%, 0 NEXT t% END SUB SUB eye (xp%, yp%) 'logo graphic CIRCLE (xp%, yp%), 32, 14, , , 2 / 9 PAINT STEP(0, 0), 14 CIRCLE STEP(0, -1), 11, 0 PAINT STEP(0, 0), 0, 0 CIRCLE STEP(3, 2), 1, 12 END SUB REM $DYNAMIC DEFINT A-Z SUB fade (d%) FOR a = 0 TO 63 ' --- in mode 13, use I=0 to 255 FOR I = 0 TO 63 OUT &H3C7, I p1 = INP(&H3C9) p2 = INP(&H3C9) p3 = INP(&H3C9) OUT &H3C8, I IF p1 - 1 >= 0 THEN OUT &H3C9, p1 - 1 ELSE OUT &H3C9, p1 IF p2 - 1 >= 0 THEN OUT &H3C9, p2 - 1 ELSE OUT &H3C9, p2 IF p3 - 1 >= 0 THEN OUT &H3C9, p3 - 1 ELSE OUT &H3C9, p3 FOR delayer = 1 TO d%: NEXT delayer NEXT I FOR delayer = 1 TO d%: NEXT delayer NEXT a END SUB DEFSNG A-Z SUB fadeinit FOR I = 0 TO 255 '--- Save all colours although text mode only uses 0-63 ' If time is important, reduce 255 to 63 OUT &H3C7, I ColourPalette(I * 4 + 1) = I ColourPalette(I * 4 + 2) = INP(&H3C9) ColourPalette(I * 4 + 3) = INP(&H3C9) ColourPalette((I + 1) * 4) = INP(&H3C9) NEXT I END SUB DEFINT A-Z SUB fadin (d%) FOR a = 0 TO 63 ' --- in mode 13, use I=0 to 255 FOR I = 0 TO 63 OUT &H3C7, I p1 = INP(&H3C9) p2 = INP(&H3C9) p3 = INP(&H3C9) OUT &H3C8, I IF p1 + 1 <= ColourPalette(I * 4 + 2) THEN OUT &H3C9, p1 + 1 ELSE OUT H3C9, p1 IF p2 + 1 <= ColourPalette(I * 4 + 3) THEN OUT &H3C9, p2 + 1 ELSE OUT &H3C9, p2 IF p3 + 1 <= ColourPalette((I + 1) * 4) THEN OUT &H3C9, p3 + 1 ELSE OUT &H3C9, p3 NEXT I FOR delayer = 1 TO d%: NEXT delayer NEXT a END SUB REM $STATIC DEFSNG A-Z SUB font 'print(DRAW) f$ to screen FOR x = 1 TO LEN(f$) y = ASC(MID$(f$, x, 1)) DRAW a$(y) NEXT END SUB DEFINT A-Z SUB getAns querry$ = UCASE$(querry$) IF INSTR(querry$, "TIME ") THEN tellTime EXIT SUB END IF IF INSTR(querry$, "WHO ") OR INSTR(querry$, "WHOM ") THEN who EXIT SUB END IF IF INSTR(querry$, "WAS ") THEN was EXIT SUB END IF IF INSTR(querry$, "IF ") THEN ifQ EXIT SUB END IF IF INSTR(querry$, "WHERE ") THEN where EXIT SUB END IF IF INSTR(querry$, "AM ") THEN am EXIT SUB END IF IF INSTR(querry$, "WHAT ") THEN what EXIT SUB END IF IF INSTR(querry$, "WHY ") THEN why EXIT SUB END IF IF INSTR(querry$, "WILL ") THEN will EXIT SUB END IF IF INSTR(querry$, "WERE ") THEN were EXIT SUB END IF IF INSTR(querry$, "DID ") THEN did EXIT SUB END IF IF INSTR(querry$, "WHEN ") THEN when EXIT SUB END IF IF INSTR(querry$, "HOW ") THEN how EXIT SUB END IF IF INSTR(querry$, "IS") THEN isQ EXIT SUB END IF IF INSTR(querry$, "CAN ") THEN can EXIT SUB END IF IF INSTR(querry$, "HAVE ") THEN have EXIT SUB END IF IF INSTR(querry$, "WOULD ") THEN would EXIT SUB END IF IF INSTR(querry$, "SHOULD ") THEN should EXIT SUB END IF IF INSTR(querry$, "COULD ") THEN could EXIT SUB END IF amb END SUB DEFSNG A-Z ' Get Key Function from FidoNet Quick Basic SUB FUNCTION getKey$ (row%, col%, prompt$, default$, maxx, minn, blanker$, limit$) fadin 150 DO LOCATE row%, col% + LEN(prompt$): PRINT STRING$(maxx, blanker$); LOCATE row%, col%, 1, 10, 11 PRINT prompt$; default$ = LTRIM$(RTRIM$(default$)) IF default$ = STRING$(LEN(default$), 0) THEN default$ = "" IF LEN(default$) <> 0 THEN LOCATE row%, col% + LEN(prompt$): PRINT default$; queue$ = default$ LOCATE row%, col% + (LEN(prompt$) + LEN(default$)) END IF start: DO tmp$ = INKEY$ triangle IF tmp$ <> "" THEN IF tmp$ = CHR$(27) THEN CLS : SYSTEM IF tmp$ = CHR$(13) THEN tmp$ = "" EXIT DO ELSEIF tmp$ = CHR$(8) THEN tmp$ = "" IF LEN(queue$) >= 1 THEN LOCATE , POS(0) - 1: PRINT blanker$; : LOCATE , POS(0) - 1 queue$ = LEFT$(queue$, LEN(queue$) - 1) ELSE SOUND 500, 1 WHILE INKEY$ <> "": WEND END IF ELSEIF LEN(tmp$) > 1 THEN SOUND 500, 1 WHILE INKEY$ <> "": WEND tmp$ = "" ELSEIF ASC(tmp$) < 32 OR ASC(tmp$) > 126 THEN SOUND 500, 1 WHILE INKEY$ <> "": WEND tmp$ = "" ELSEIF LEN(queue$) < maxx THEN IF limit$ <> "" THEN IF NOT INSTR(limit$, tmp$) <> 0 THEN GOTO start END IF queue$ = queue$ + tmp$ PRINT tmp$; ELSE c% = INT(RND * 10) + 1 k% = row% m% = col% COLOR 14 LOCATE 16, 30 PRINT "USE BACKSPACE TO CHANGE" SOUND 500, 1 LOCATE k%, m% + LEN(prompt$) + 1 + LEN(queue$) - 1 WHILE INKEY$ <> "": WEND tmp$ = "" END IF END IF LOOP IF LEN(queue$) >= MinLen% THEN EXIT DO ELSE SOUND 500, 1 END IF LOOP getKey$ = queue$ 'LOCATE , , 0 END FUNCTION SUB getName tri delay 1 PLAY "MB" PLAY "D+GA " DRAW "c13;s7 bm180,10" f$ = "What is your name?" font DO LOOP WHILE LEN(INKEY$) name$ = getKey$(7, 26, "NAME: ", " ", 22, 1, "_", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890") PLAY "D+GA+DC+DE N0 F L9 E. L12 D" END SUB SUB getQuerry PLAY "MB" PLAY "D+GA " tri f$ = name$ + ", state your querry." DRAW "c12;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",30" 'DRAW "c13;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",40" font DO LOOP WHILE LEN(INKEY$) DO querry$ = getKey$(6, 12, " ", " ", 55, 1, "_", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890?") LOOP UNTIL querry$ > "" PLAY "D+GA+DC+DE N0 F L9 E. L12 D" END SUB DEFINT A-Z SUB getTime 'convert SYSTEM time and date to prTime$ and prDate$ 'for program use t$ = TIME$ Hr = VAL(t$) IF Hr < 12 THEN Ampm$ = " AM" ELSE Ampm$ = " PM" IF Hr > 12 THEN Hr = Hr - 12 IF Hr = 0 THEN Hr = 12 prgTime$ = STR$(Hr) + RIGHT$(t$, 6) + Ampm$ IF Ampm$ = " AM" THEN ' convert prgTime$ to 5 characters prTime$ = LEFT$(prgTime$, 5) + " AM" 'for AM END IF ' convert prgTime$ to 6 characters IF Ampm$ = " AM" AND VAL(LEFT$(prgTime$, 3)) >= 10 THEN prTime$ = LEFT$(prgTime$, 6) + " AM" 'for AM after 10 END IF IF Ampm$ = " PM" THEN ' convert prgTime$ to 5 characters prTime$ = LEFT$(prgTime$, 5) + " PM" 'for PM END IF ' convert prgTime$ to 6 characters IF Ampm$ = " PM" AND VAL(LEFT$(prgTime$, 3)) >= 10 THEN prTime$ = LEFT$(prgTime$, 6) + " PM" 'for PM after 10 END IF END SUB SUB have RANDOMIZE TIMER qNum% = INT(RND * 5) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "No they haven't, " + name$ CASE 5 answer$ = "Yes I have" END SELECT END SUB SUB how RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 answer$ = "You know." CASE 2 answer$ = "If you don't know by now..." CASE 3 amb CASE 4 answer$ = "No how " + name$ CASE 5 answer$ = "By hook and by crook." CASE 6 answer$ = "With outside aid," + name$ CASE 7 answer$ = "Not by any known method." END SELECT END SUB SUB ifQ RANDOMIZE TIMER qNum% = INT(RND * 5) + 1 SELECT CASE qNum% CASE 1 answer$ = "If wishes were horses-..." CASE 2 answer$ = "If? HA! " + name$ CASE 3 amb CASE 4 answer$ = "No " + name$ + " not hardly." CASE 5 answer$ = "Yes " + name$ + "IF." END SELECT END SUB SUB isQ RANDOMIZE TIMER qNum% = INT(RND * 5) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "No it isn't." CASE 5 answer$ = "Yes it is." END SELECT END SUB SUB no RANDOMIZE TIMER ansNum% = INT(RND * 10) + 1 SELECT CASE ansNum% CASE 1 answer$ = "No" CASE 2 answer$ = "Not really " CASE 3 answer$ = "Never." CASE 4 answer$ = name$ + ", the probabitlity is less than 2%" CASE 5 answer$ = "Not if you think about it." CASE 6 answer$ = "Can't be." CASE 7 answer$ = "That's a negatory Good Buddy." CASE 8 answer$ = "Impossible " + name$ + "." CASE 9 answer$ = "The answer is no." CASE 10 answer$ = name$ + ", the probabitlity is less than 2%" END SELECT END SUB SUB parseAnswer triangle FOR x% = 29 TO 21 STEP -1 IF MID$(answer$, x%, 1) = " " THEN fir$ = LEFT$(answer$, (x% - 1)) sec$ = MID$(answer$, (x% + 1), (LEN(answer$))) EXIT FOR ELSE fir$ = LEFT$(answer$, 24) sec$ = MID$(answer$, 25, (LEN(answer$))) END IF NEXT x% f$ = fir$ DRAW "c13;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",40" font f$ = sec$ DRAW "c13;s7 bm" + STR$(300 - ((LEN(f$) / 2) * 14)) + ",90" font END SUB SUB should RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "Shoudda woudda coudda" CASE 5 answer$ = "Somethings just should." CASE 6 answer$ = "Shouldn't ask." CASE 7 answer$ = "Not supposed to," + name$ END SELECT END SUB SUB tellTime RANDOMIZE TIMER getTime qNum% = INT(RND * 4) + 1 SELECT CASE qNum% CASE 1 answer$ = name$ + " it is" + prTime$ CASE 2 answer$ = prTime$ + " is the time." CASE 3 amb CASE 4 answer$ = name$ + " you should not be so obsessed with time" END SELECT END SUB SUB test CLS eye 300, 20 f$ = "Wizard Productions" DRAW "c13;s12 bm" + STR$(100 - ((LEN(f$) / 2) * 6)) + ",45" font f$ = "Thanks for playing " DRAW "c14;s10 bm" + STR$(160 - ((LEN(f$) / 2) * 6)) + ",100" font f$ = name$ DRAW "c13;s10 bm" + STR$(220 - ((LEN(f$) / 2) * 6)) + ",160" font fadin 100 END SUB DEFSNG A-Z SUB title 'display animated title page r% = INT(RND * 15) + 1 k$ = INKEY$ IF r% = 8 THEN r% = 15 COLOR r% LOCATE 1, 1 PRINT PRINT " мллллллм млллллм млллллм оллн млллллм" PRINT " лл лл лл ллмммлл лл ммм лл лл" PRINT " лл лл лл ллппплл лл лл лл лл" PRINT " лл лл лл лл лл плллллп оллн плллллп" r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT "млллллл " PRINT "ллмммм " PRINT "ллпппп " PRINT "плллллл " r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT " оллн " PRINT " лл " PRINT " лл " PRINT " оллн " r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT " млллллм " PRINT " лл ммм " PRINT " лл лл " PRINT " плллллп " r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT " лл лл " PRINT " ллмммлл " PRINT " ллппплл " PRINT " лл лл " r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT " ллллллл " PRINT " олн " PRINT " олн " PRINT " олн " r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT " ллллллм млллллм лл лл" PRINT " ллмммлп ллмммлл лл лл" PRINT " ллппплл ллппплл лл лл" PRINT " ллллллп лл лл ллллллл ллллллл" r% = INT(RND * 15) + 1 IF r% = 8 THEN r% = 15 COLOR r% delay .3 LOCATE 18, 1 PRINT "млллллл оллн млллллм лл лл ллллллл ллллллм млллллм лл лл" PRINT "ллмммм лл лл ммм ллмммлл олн ллмммлп ллмммлл лл лл" PRINT "ллпппп лл лл лл ллппплл олн ллппплл ллппплл лл лл" PRINT "плллллл оллн плллллп лл лл олн ллллллп лл лл ллллллл ллллллл" delay .3 END SUB DEFINT A-Z SUB tri DO t = t + 1 c% = INT(RND * 15) LINE (x1pos%, y1pos%)-(x2pos%, y2pos%), c% LINE (x2pos%, y2pos%)-(x3pos%, y3pos%), c% LINE (x3pos%, y3pos%)-(x1pos%, y1pos%), c% x1pos% = x1pos% + 1 y1pos% = y1pos% - 1 x2pos% = x2pos% - 1 y2pos% = y2pos% - 1 y3pos% = y3pos% + 1 LOOP UNTIL t >= 12 t = 0 LINE (2, 2)-(638, 2), 15 LINE (638, 2)-(319, 348), 15 LINE (319, 348)-(2, 2), 15 END SUB DEFSNG A-Z SUB triangle 'triangle draws an animated triangle and plays prompt music STATIC v%, b% v% = v% + 1 'STATIC variables keep events from happening everytime b% = b% + 1 ' triangle is called 'play every 31000th time IF b% >= 31000 THEN b% = 0 END IF x1pos% = 2 y1pos% = 2 x2pos% = 638 y2pos% = 2 x3pos% = 319 y3pos% = 348 RANDOMIZE TIMER 'draw triangle every 5250th time IF v% = 1 OR v% >= 5250 THEN DO t = t + 1 c% = INT(RND * 15) LINE (x1pos%, y1pos%)-(x2pos%, y2pos%), c% LINE (x2pos%, y2pos%)-(x3pos%, y3pos%), c% LINE (x3pos%, y3pos%)-(x1pos%, y1pos%), c% x1pos% = x1pos% + 1 y1pos% = y1pos% - 1 x2pos% = x2pos% - 1 y2pos% = y2pos% - 1 y3pos% = y3pos% + 1 LOOP UNTIL t >= 12 t = 0 LINE (2, 2)-(638, 2), 15 LINE (638, 2)-(319, 348), 15 LINE (319, 348)-(2, 2), 15 IF v% = 1 THEN v% = 2 IF v% >= 5250 THEN v% = 0 END IF END SUB DEFINT A-Z SUB was RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "Time is a fickle thing." CASE 5 answer$ = "Not in the real sense." CASE 6 answer$ = "No, " + name$ + " it wasn't." CASE 7 answer$ = name$ + ", the probabitlity is less than 18%" END SELECT END SUB SUB were RANDOMIZE TIMER qNum% = INT(RND * 6) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 answer$ = "Yes, " + name$ + " there were" CASE 3 amb CASE 4 answer$ = "There were kittens." CASE 5 answer$ = "Not then, " + name$ CASE 6 answer$ = "If there were, would you care?" END SELECT END SUB SUB what RANDOMIZE TIMER qNum% = INT(RND * 6) + 1 SELECT CASE qNum% CASE 1 answer$ = "What do I care, " + name$ CASE 2 answer$ = name$ + ", seek your answer elsewhere" CASE 3 amb CASE 4 answer$ = "What do you think?" CASE 5 answer$ = "No one knows what." CASE 6 answer$ = "Whatever." END SELECT END SUB SUB when RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 answer$ = name$ + ", someday." CASE 2 answer$ = "Some other time " + name$ CASE 3 amb CASE 4 answer$ = "You should not be obsessed with time." CASE 5 answer$ = "Time is fleeting, " + name$ CASE 6 answer$ = "When you give up." CASE 7 answer$ = "Whenever " + name$ END SELECT END SUB SUB where RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 answer$ = "Did you look in your hand?" CASE 2 answer$ = "Where you last left it." CASE 3 amb CASE 5 answer$ = "Over there." CASE 6 answer$ = "On the cusp." CASE 7 answer$ = name$ + " look within." END SELECT END SUB SUB who RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 answer$ = "The one you think " + name$ + "." CASE 2 answer$ = name$ + " it is the one you least suspect." CASE 3 amb CASE 4 answer$ = "One close to " + name$ + "." CASE 5 answer$ = "A mere ghost." CASE 6 answer$ = "Think about it " + name$ + "." CASE 7 answer$ = "Silence is best " + name$ + "." END SELECT END SUB SUB why RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 answer$ = name$ + "! Why not!" CASE 2 answer$ = name$ + "because" CASE 3 amb CASE 4 answer$ = "Why not, " + name$ + "?" CASE 5 answer$ = "Well." CASE 6 answer$ = "Think about it " + name$ + "." CASE 7 answer$ = "Because " + name$ + "." END SELECT END SUB SUB will RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "Never " + name$ + "." CASE 5 answer$ = "Soon." CASE 6 answer$ = "Not for you, " + name$ + "." CASE 7 answer$ = "Silence is best " + name$ + "." END SELECT END SUB SUB would RANDOMIZE TIMER qNum% = INT(RND * 7) + 1 SELECT CASE qNum% CASE 1 yes CASE 2 no CASE 3 amb CASE 4 answer$ = "woulda shoulda coulda" CASE 5 answer$ = "If it could." CASE 6 answer$ = "Maybe, " + name$ + "." CASE 7 answer$ = "Would you, " + name$ + "?" END SELECT END SUB SUB yes RANDOMIZE TIMER ansNum% = INT(RND * 5) + 1 SELECT CASE ansNum% CASE 1 answer$ = "Possibly" CASE 2 answer$ = "Yes, " + name$ CASE 3 answer$ = "Maybe." CASE 4 answer$ = "Well of course." CASE 5 answer$ = "It is a happening, " + name$ END SELECT END SUB