Listing of file='LEM.BAS;01' on disk='vmedia/snakes_and_ladders-sector.ccvf'
1 REM K 10 REM THIS IS LEMONADE STAND 20 REM MODIFIED FOR COMPUCOLOR 30 REM BY GREG HUBBARD 40 REM V1 22/6/81 50 REM (C) COPYRIGHT 1981 100 SK= 38:GD= 19:GOSUB 10000 110 CLEAR 500 120 XX= PEEK (33209):IF XX= 0THEN 120 130 XX= RND (- XX) 140 P9= 10:S3= .15:S2= 30:A2= 2:C9= .5:C2= 1 150 C1$= " " 160 C1$= C1$+ "wwuuut t v v v" 170 C2$= " " 180 C2$= C2$+ "wwuuut t v v v" 190 SU$= "tu wv h j g |b~ijf" 200 RA$= "| | | |" 210 DIM A(30),L(30),H(30),B(30),S(30),P(30),G(30) 300 REM START OF GAME 310 TM= PEEK (32940)+ PEEK (32941)* 256+ 1 320 POKE TM,50:POKE TM+ 2,15:POKE TM+ 4,0 330 RESTORE 15250:GOSUB 16000 340 GOSUB 12000:FOR I= 1TO N:B(I)= 0:A(I)= A2:NEXT 350 IF A$= "Y"THEN GOSUB 13000:GOTO 400 360 GOSUB 14000 400 REM WEATHER REPORT 410 SC= RND (1) 420 IF SC< .6THEN SC= 2:GOTO 460 430 IF SC< .8THEN SC= 3:GOTO 460 440 SC= 1 450 REM 460 IF D< 3THEN SC= 2 470 ON SCGOSUB 15100,15200,15300,15400 480 PLOT 6,6,12,27,11 1000 REM START OF NEW DAY 1010 D= D+ 1 1020 PRINT "ON DAY";D;", THE COST OF LEMONADE IS"; 1030 C= 2:IF D> 2THEN C= 4 1040 IF D> 6THEN C= 5 1050 PRINT C" CENTS":PRINT 1060 C1= C* .01 1070 R1= 1 1100 REM CURRENT EVENTS 1110 IF D< > 3THEN 1130 1120 PRINT "(YOUR MOTHER QUIT GIVING YOU FREE SUGAR)" 1130 IF D< > 7THEN 1150 1140 PRINT "(THE PRICE OF LEMONADE MIX JUST WENT UP)" 1150 REM AFTER 2 DAYS THINGS CAN HAPPEN 1160 IF D> 2THEN 3000 1170 REM INPUT VALUES 1180 PRINT 1190 FOR I= 1TO N 1200 A(I)= A(I)+ .000000001 1210 G(I)= 1:H(I)= 0:C5= 0 1220 STI= A(I):GOSUB 4000:PRINT "LEMONADE STAND";I;TAB( 26);"ASSETS ";STI$ 1230 PRINT 1240 IF B(I)= 0THEN 1300 1250 PRINT "YOU ARE BANKRUPT, NO DECISIONS" 1260 PRINT "FOR YOU TO MAKE." 1270 PRINT :INPUT "HIT RETURN TO CONTINUE ";A$ 1280 IF N= 1AND A(I)< CTHEN 20000 1290 GOTO 1700 1300 PRINT "HOW MANY GLASSES OF LEMONADE DO YOU" 1310 PRINT "WISH TO MAKE? "; 1320 XX= CALL (0):INPUT "";L(I) 1330 IF L(I)< 0OR L(I)> 1000THEN 1350 1340 GOTO 1380 1350 PRINT :PRINT "COME ON, LET'S BE REASONABLE NOW!!!" 1360 PRINT "TRY AGAIN" 1370 GOTO 1300 1380 IF L(I)< > INT (L(I))THEN 1350 1390 IF L(I)* C1< = A(I)THEN 1440 1400 PRINT :PRINT "THINK AGAIN!!! YOU HAVE ONLY ";STI$ 1410 PRINT "IN CASH AND TO MAKE ";L(I);" GLASSES OF" 1420 PRINT "LEMONADE YOU NEED $";L(I)* C1;" IN CASH." 1430 GOTO 1300 1440 PRINT 1450 PRINT "HOW MANY ADVERTISING SIGNS (";S3* 100;" CENTS" 1460 PRINT "EACH ) DO YOU WANT TO MAKE? "; 1470 XX= CALL (0):INPUT "";S(I) 1480 IF S(I)< 0OR S(I)> 50THEN 1500 1490 GOTO 1520 1500 PRINT :PRINT "COME ON, BE REASONABLE!!! TRY AGAIN." 1510 GOTO 1440 1520 IF S(I)< > INT (S(I))THEN 1500 1530 IF S(I)* S3< = A(I)- L(I)* C1THEN 1590 1540 PRINT 1550 STI= A(I)- L(I)* C1:GOSUB 4000 1560 PRINT "THINK AGAIN, YOU HAVE ONLY ";STI$ 1570 PRINT "IN CASH LEFT AFTER MAKING YOUR LEMONADE." 1580 GOTO 1440 1590 PRINT :PRINT "WHAT PRICE (IN CENTS) DO YOU WISH TO" 1600 PRINT "CHARGE FOR LEMONADE? "; 1610 XX= CALL (0):INPUT "";P(I) 1620 IF P(I)< 0OR P(I)> 100THEN 1640 1630 GOTO 1660 1640 PRINT :PRINT "COME ON, BE REASONABLE!!! TRY AGAIN." 1650 GOTO 1590 1660 IF P(I)< > INT (P(I))THEN 1640 1670 IF C5= 1THEN 1700 1680 XX= CALL (0):PRINT :INPUT "WOULD YOU LIKE TO CHANGE ANYTHING? ";A$ 1690 IF LEFT$ (A$,1)= "Y"THEN PLOT 12:C5= 1:GOTO 1220 1700 PLOT 12 1710 NEXT I 1720 C5= 0:PLOT 6,3,12,27,24 1730 PRINT :IF SC= 3AND RND (1)< .5THEN 3250 1740 PRINT " $$ LEMONSVILLE DAILY FINANCIAL REPORT $$" 1750 DATA 95,126,56,428,0,5,71,170,63,190,56,428,0,0 1760 RESTORE 1750:GOSUB 16000 2000 REM CALCULATE PROFITS 2010 IF R2= 2THEN 3210 2020 IF R3= 3THEN 3300 2030 FOR I= 1TO N:PLOT 6,3,12:PRINT " $$ LEMONSVILLE DAILY FINANCIAL REPORT $$" 2040 IF A(I)< 0THEN A(I)= 0 2050 IF R2= 2THEN 2150 2060 IF P(I)> = P9THEN 2090 2070 N1= (P9- P(I))/ P9* .8* S2+ S2 2080 GOTO 2100 2090 N1= ((P9+ 2)* S2/ P(I)+ 2) 2100 W= - S(I)* C9 2110 V= 1- (EXP (W)* C2) 2120 N2= R1* (N1+ (N1* V)) 2130 N2= INT (N2* G(I)) 2140 IF N2< = L(I)THEN 2160 2150 N2= L(I) 2160 M= N2* P(I)* .01 2170 E= S(I)* S3+ L(I)* C1 2180 P1= M- E 2190 A(I)= A(I)+ P1 2200 IF N(I)= 1THEN 3250 2210 PRINT 2220 IF B(I)< > 1THEN 2250 2230 PRINT "STAND ";I;:PRINT " BANKRUPT":GOSUB 18000 2240 GOTO 2330 2250 GOSUB 5000 2260 IF A(I)> C/ 100THEN 2330 2270 PRINT "STAND ";I 2280 PLOT 12:PRINT " ...YOU DON'T HAVE ENOUGH MONEY LEFT" 2290 PRINT " TO STAY IN BUSINESS - YOU'RE BANKRUPT!" 2300 B(I)= 1 2310 GOSUB 18000:PLOT 12 2320 IF N= 1AND B(I)= 1THEN 20000 2330 NEXT I 2340 R1= 1 2350 R2= 0 2360 GOTO 400 3000 REM RANDOM EVENTS 3010 IF SC= 3THEN 3060 3020 IF SC= 1THEN 3360 3030 IF RND (1)< .25THEN 3130 3040 GOTO 1180 3050 IF X1= 1THEN 1180 3060 J= 30+ INT (RND (1)* 5)* 10 3070 PRINT "THERE IS A ";J;"% CHANCE OF LIGHT RAIN," 3080 PRINT "AND THE WEATHER IS COOLER TODAY." 3090 R1= 1- J/ 100 3100 X1= 1 3110 GOTO 1180 3120 IF X2= 1THEN 1180 3130 PRINT "THE STREET DEPARTMENT IS WORKING TODAY." 3140 PRINT "THERE WILL BE NO TRAFFIC ON YOUR STREET." 3150 IF RND (1)< .5THEN 3180 3160 R2= 2 3170 GOTO 3190 3180 R1= .1 3190 X2= 1 3200 GOTO 1180 3210 PLOT 3,2,5,14:PRINT "THE STREET CREWS BOUGHT ALL YOUR" 3220 PRINT " LEMONADE AT LUNCH TIME!!" 3230 XX= CALL (0):FOR IX= 0TO 1000:NEXT IX 3240 GOTO 2030 3250 REM THUNDER STORM! 3260 X3= 1:R3= 0 3270 SC= 4:GOSUB 15400:PLOT 14,6,1,12 3280 PRINT "WEATHER REPORT: A SEVERE THUNDER STORM" 3290 PRINT "HIT LEMONSVILLE EARLIER TODAY, JUST AS" 3300 PRINT "THE LEMONADE STANDS WERE BEING SET UP." 3310 PRINT "UNFORTUNATELY, EVERYTHING WAS RUINED!!" 3320 FOR J= 1TO N:G(J)= 0:NEXT 3330 GOSUB 18000 3340 GOTO 2030 3350 IF X4= 1THEN 1180 3360 X4= 1 3370 PRINT "A HEAT WAVE IS PREDICTED FOR TODAY!" 3380 R1= 2 3390 GOTO 1180 4000 REM STI => DOLLARS, CENTS 4010 STI= INT (STI* 100+ .5)/ 100 4020 STI$= "$"+ STR$ (STI) 4030 IF STI= INT (STI)THEN STI$= STI$+ ".0" 4040 IF STI= INT (STI* 10+ .5)/ 10THEN STI$= STI$+ "0" 4050 RETURN 5000 PLOT 3,5,6 5010 PRINT " DAY ";D;TAB( 23);"STAND ";I:PRINT "" 5020 PRINT " ";N2;TAB( 7);"GLASSES SOLD":PRINT 5030 STI= P(I)/ 100:GOSUB 4000:PRINT STI$;TAB( 7);"PER GLASS"; 5040 STI= M:GOSUB 4000:PRINT TAB( 27);"INCOME ";STI$ 5050 PRINT :PRINT :PRINT " ";L(I);TAB( 7);"GLASSES MADE":PRINT 5060 STI= E:GOSUB 4000:PRINT " ";S(I);TAB( 7);"SIGNS MADE";TAB( 25);"EXPENSES ";STI$:PRINT :PRINT 5070 STI= P1:GOSUB 4000:PRINT TAB( 16);"PROFIT ";STI$:PRINT 5080 STI= A(I):GOSUB 4000:PRINT TAB( 16);"ASSETS ";STI$ 5090 GOSUB 18000 5100 REM 5110 FOR IX= 31TO 2STEP - 1:PLOT 3,0,IX,11:NEXT IX:RETURN 10000 REM DRAW LEMONADE STAND 10010 PLOT 15,27,24,6,SK,12,6,GD 10020 FOR IX= 17TO 31:PLOT 3,0,IX 10030 PRINT "````````````````````````````````````````````````````````````````":NEXT IX 10040 PLOT 6,9,3,14,10:PRINT SPC( 37) 10050 PLOT 27,10,3,17,11:PRINT " ":PLOT 3,47,11:PRINT " ":PLOT 27,24 10060 FOR IX= 16TO 23:PLOT 3,17,IX:PRINT " ":NEXT IX 10070 PLOT 6,11,3,21,17:PRINT "a {e pq tu pb tu nu {e" 10080 PLOT 3,21,18:PRINT "l l ab vw as no lw l" 10090 PLOT 3,25,20:PRINT "cf en tu pb nu" 10100 PLOT 3,25,21:PRINT "gd a no as lw" 10110 REM 10120 PLOT 6,SK,3,22,15:PRINT "u tvvwwcad dbdteeeusnr" 10130 REM 10140 PLOT 3,30,15:PRINT "jyjyjy jzabd " 10150 RETURN 12000 REM TITLE PAGE 12010 PLOT 14,6,3,12 12020 PRINT "HI! WELCOME TO LEMONSVILLE!":PLOT 6,6,10 12030 PRINT "IN THIS SMALL TOWN, YOU ARE IN CHARGE OF" 12040 PRINT "RUNNING YOUR OWN LEMONADE STAND. YOU CAN" 12050 PRINT "COMPETE WITH AS MANY OTHER PEOPLE AS YOU" 12060 PRINT "WISH, BUT HOW MUCH PROFIT YOU MAKE IS UP" 12070 PRINT "TO YOU (THE OTHER STANDS' SALES WILL NOT" 12080 PRINT "AFFECT YOUR BUSINESS IN ANY WAY). IF YOU" 12090 PRINT "MAKE THE MOST MONEY, YOU'RE THE WINNER!!":PRINT 12100 PRINT "ARE YOU STARTING A NEW GAME? (YES OR NO)" 12110 Y= CALL (0):INPUT "TYPE YOUR ANSWER AND HIT RETURN ==> ";A$ 12120 A$= LEFT$ (A$,1):IF A$< > "Y"AND A$< > "N"THEN PLOT 28,11:GOTO 12110 12130 Y= CALL (0):INPUT "HOW MANY PEOPLE WILL BE PLAYING? ==> ";N$ 12140 N= VAL (N$):IF N< 1OR N> 30THEN PLOT 28,11:GOTO 12130 12150 RETURN 13000 REM NEW BUSINESS 13010 PLOT 12 13020 PRINT "TO MANAGE YOUR LEMONADE STAND, YOU WILL" 13030 PRINT "NEED TO MAKE THESE DECISIONS EVERY DAY:":PRINT 13040 PRINT "1. HOW MANY GLASSES OF LEMONADE TO MAKE" 13050 PRINT TAB( 3)"(ONLY ONE BATCH IS MADE EACH MORNING)" 13060 PRINT "2. HOW MANY ADVERTISING SIGNS TO MAKE" 13070 PRINT TAB( 3)"(THE SIGNS COST FIFTEEN CENTS EACH)" 13080 PRINT "3. WHAT PRICE TO CHARGE FOR EACH GLASS":PRINT 13090 PRINT "YOU WILL BEGIN WITH $2.00 CASH (ASSETS)." 13100 PRINT "BECAUSE YOUR MOTHER GAVE YOU SOME SUGAR," 13110 PRINT "YOUR COST TO MAKE LEMONADE IS TWO CENTS" 13120 PRINT "A GLASS (THIS MAY CHANGE IN THE FUTURE).":PRINT 13130 GOSUB 18000:PLOT 12 13140 PRINT "YOUR EXPENSES ARE THE SUM OF THE COST OF" 13150 PRINT "THE LEMONADE AND THE COST OF THE SIGNS.":PRINT 13160 PRINT "YOUR PROFITS ARE THE DIFFERENCE BETWEEN" 13170 PRINT "THE INCOME FROM SALES AND YOUR EXPENSES.":PRINT 13180 PRINT "THE NUMBER OF GLASSES YOU SELL EACH DAY" 13190 PRINT "DEPENDS ON THE PRICE YOU CHARGE, AND ON" 13200 PRINT "THE NUMBER OF ADVERTISING SIGNS YOU USE.":PRINT 13210 PRINT "KEEP TRACK OF YOUR ASSETS, BECAUSE YOU" 13220 PRINT "CAN'T SPEND MORE MONEY THAN YOU HAVE!":PRINT 13230 GOSUB 18000:PLOT 12:RETURN 13240 RETURN 14000 REM CONTINUE OLD GAME 14010 PLOT 12,27,11 14020 PRINT "HI AGAIN! WELCOME BACK TO LEMONSVILLE!":PRINT 14030 PRINT "LET'S CONTINUE YOUR LAST GAME FROM WHERE" 14040 PRINT "YOU LEFT IT LAST TIME. DO YOU REMEMBER" 14050 PRINT "WHAT DAY NUMBER IT WAS? "; 14060 XX= CALL (0):INPUT "";A$:A= VAL (A$):PRINT :IF A< > 0THEN 14100 14070 A$= LEFT$ (A$,1):IF A$= "Y"THEN PRINT "GOOD! WHAT DAY WAS IT? ";:GOTO 14060 14080 IF A$= "N"THEN 14120 14090 PRINT "YES OR NO? ";:GOTO 14060 14100 IF A< 1OR A> 99OR A< > INT (A)THEN 14120 14110 D= A 14120 PRINT "OKAY - WE'LL START WITH DAY NO.";D+ 1:PRINT 14130 FOR I= 1TO N 14140 PRINT "PLAYER NO.";I;", HOW MUCH MONEY (ASSETS)" 14150 PRINT "DID YOU HAVE? "; 14160 XX= CALL (0):INPUT "";A$:A= VAL (A$) 14170 IF A< 2THEN PRINT "O.K. - WE'LL START YOU OUT WITH $2.00":A= 2:GOTO 14190 14180 IF A> 10THEN PRINT "JUST TO BE FAIR, LET'S MAKE THAT $10.00":A= 10 14190 A(I)= INT (A* 100+ .5)/ 100:PRINT :NEXT I 14200 XX= CALL (0):INPUT "READY TO BEGIN? ";A$:PLOT 27,24 14210 IF LEFT$ (A$,1)= "N"THEN 13000 14220 RETURN 15000 REM WEATHER DISPLAY 15100 REM HOT AND DRY 15110 SK= 38:GD= 25:GOSUB 10000 15120 PLOT 3,50,0:PRINT SU$ 15130 PLOT 3,22,23,6,11:PRINT "TODAY IS HOT AND DRY!" 15140 DATA 94,255,100,240,94,510,0,125,100,240,119,201,100,240,94,255,119,201,141,510,189,510,0,0 15150 RESTORE 15140:GOSUB 16000 15160 RETURN 15200 REM SUNNY 15210 SK= 38:GD= 19:GOSUB 10000 15220 PLOT 3,10,0:PRINT C1$ 15230 PLOT 3,50,0:PRINT SU$ 15240 PLOT 3,25,23,6,11:PRINT "TODAY IS SUNNY!" 15250 DATA 189,95,150,120,150,120,168,107,150,120,126,143,126,285,0,0 15260 RESTORE 15250:GOSUB 16000 15270 RETURN 15300 REM CLOUDY 15310 SK= 52:GD= 18:GOSUB 10000 15320 PLOT 3,10,1:PRINT C2$:PLOT 3,40,1:PRINT C2$ 15330 PLOT 3,24,23,6,11:PRINT "TODAY IS CLOUDY!" 15340 DATA 94,255,94,127,94,127,84,142,94,127,106,112,112,106,94,255,0,0 15350 RESTORE 15340:GOSUB 16000 15360 RETURN 15400 REM THUNDER STORMS 15410 SK= 52:GD= 16:GOSUB 10000 15420 PLOT 3,10,1:PRINT C2$:PLOT 3,40,1:PRINT C2$ 15430 PLOT 3,20,23,6,11,7:PRINT "WARNING - THUNDER STORMS!" 15440 PLOT 3,13,6:PRINT RA$:PLOT 3,43,6:PRINT RA$:PLOT 3,15,7:PRINT RA$:PLOT 3,45,7:PRINT RA$ 15450 PLOT 3,14,8:PRINT RA$:PLOT 3,42,8:PRINT RA$:PLOT 3,16,9:PRINT RA$:PLOT 3,46,9:PRINT RA$ 15460 FOR II= 1TO 2:FOR JJ= 48TO 54 15470 PLOT 6,JJ,2,45,127,242,60,110,55,120,80,95,255 15480 PLOT 2,127,127,242,115,119,122,120,90,90,255 15490 NEXT JJ 15500 DATA 189,127,94,255,112,107,126,95,141,85,168,142,0,70,189,127,141,170,150,80,141,85,112,107,94,255,0,0 15510 RESTORE 15500:GOSUB 16000 15520 NEXT II 15530 PLOT 6,6 15540 RETURN 16000 REM SOUND 16010 FOR IX= 0TO 100:READ PI,DU 16020 IF PI= 0AND DU= 0THEN RETURN 16030 IF PI= 0THEN FOR IY= 0TO DU:NEXT IY:NEXT IX 16040 IF DU> 255THEN DU= DU- 255:POKE TM+ 3,1 16050 POKE TM,PI:POKE TM+ 2,DU 16060 XX= CALL (0):NEXT IX 16070 RETURN 18000 REM CONTINUE? 18010 PLOT 3,0,31:PRINT "PRESS RETURN TO CONTINUE, ESC TO END..."; 18020 XX= CALL (0):IN= CALL (2):IF IN< > 13AND IN< > 27THEN 18020 18030 PRINT 18040 IF IN= 27THEN 20000 18050 RETURN 20000 REM PLAY AGAIN? 20010 FOR I= 0TO 500:NEXT :PLOT 12,3,17,10:PRINT "WOULD YOU LIKE TO PLAY AGAIN? " 20020 XX= CALL (0):IN= CALL (2):IF IN= 89THEN RUN 20030 PLOT 1