10 REM MARKT.ECB 100 REM ... CONVERTED FROM MANKATO LIBRARY ON 07/14/75 BY B. HANSON 110 REM ... === LAST CHANGE 4-10-78 R.E.H. === 120 REM ... MARKET - SIMULATION OF MARKET COMPETITION BETWEEN 2 COMPANIES 130 REM ... DEVELOPED BY S. FINKELSTEIN, J. MCGRATH, I. STAW, D. SOBIN 140 REM ... ALSO DEVELOPED BY D. KLASSEN - PROGRAMMED BY D. SOBIN 150 REM ... LATEST REVISION 8-29-72 160 REM ... COPYRIGHT 1972 - STATE UNIVERSITY OF NEW YORK 170 PRINT 180 PRINT TAB(15);"$$$$$$$$$$$$$$$$$$$$$$$" 190 PRINT TAB(15);"$$$ $$$" 200 PRINT TAB(15);"$$$ M A R K E T $$$" 210 PRINT TAB(15);"$$$ $$$" 220 PRINT TAB(15);"$$$$$$$$$$$$$$$$$$$$$$$" 230 PRINT 240 PRINT " SIMULATION OF MARKET COMPETITION BETWEEN 2 COMPANIES" 250 PRINT 260 DEF FNR(X)=.01*INT(100*X+.5) 270 DIM C(2),I(2),T(2),A(2),L(2),D(2),P(2),V(2),W(2),B(2),E(5) 280 PRINT " DO YOU NEED INSTRUCTIONS ? (Y OR N)---=>"; 290 INPUT H$ 300 READ K2,N,K,K3,C(1),C(2),I(1),I(2),F,U,R,G1,G2,G3,M1,K4 310 LET Q=0 320 PRINT 330 IF H$="Y" THEN 410 340 PRINT " MARKET SIMULATES THE COMPETITION BETWEEN TWO COMPANIES" 350 PRINT " SELLING A PRODUCT DIFFERENTIATED BY BRAND ADVERTISING." 360 PRINT " THE QUANTITY EACH COMPANY SELLS IS DEPENDENT UPON PRICE" 370 PRINT " AND ADVERTISING BUDGET. THE GAME ENDS WHEN" 380 PRINT " ONE COMPANY GOES BANKRUPT OR REACHES ";.001*M1 390 PRINT " MILLION IN TOTAL ASSETS." 400 PRINT 410 PRINT " ARE YOU BEGINNING THE GAME OR CONTINUING" 420 PRINT " (TYPE 1 FOR BEGINNING, 2 FOR CONTINUING)"; 430 INPUT A 440 PRINT 450 IF A=1 THEN 560 460 FOR J=1 TO 2 470 PRINT " COMPANY";J;" ENTER PREVIOUS CASH ON HAND, PREVIOUS INVENTORY"; 480 INPUT C(J),I(J) 490 PRINT 500 NEXT J 510 PRINT " ENTER VARIABLE PRODUCTION COST"; 520 INPUT U 530 PRINT " ENTER THE NUMBER OF YOUR LAST COMPLET ED QUARTER"; 540 INPUT Q 550 GOTO 640 560 PRINT 570 PRINT " FIXED PRODUCTION COST=$";F*1000;" / QUARTER" 580 PRINT " VARIABLE PRODUCTION COST=$";U;" /UNIT" 590 PRINT " WITH NO ADVERTISING AND A SELLING PRICE OF $50/UNIT" 600 PRINT " A COMPANY WILL SELL ";K2*500;" UNITS (PRINT ED AS ";K2/2;")" 610 PRINT " WAREHOUSE CHARGE FOR INVENTORY = ";R*100;" PERCENT." 620 PRINT " INTEREST CHARGE ON BORROWED MONEY = ";K3*100;" PERCENT." 630 PRINT 640 PRINT 650 REM ....RANDOMIZE 660 PRINT 670 PRINT 680 PRINT " UNITS AND DOLLARS BELOW ARE IN THOUSANDS" 690 PRINT 700 PRINT 710 FOR J=1 TO 5 720 LET E(J)=0 730 NEXT J 740 LET P4=0 750 IF A=2 THEN 770 760 GOSUB 1910 770 FOR J=1 TO 2 780 LET W(J)=0 790 LET D(J)=0 800 LET T(J)=0 810 LET B(J)=U*I(J)+C(J) 820 IF A=2 THEN 840 830 GOSUB 1960 840 NEXT J 850 PRINT 860 LET Q=Q+1 870 GOSUB 2190 880 GOSUB 1390 890 GOSUB 1890 900 REM ...... COMPUTE DEMAND 910 FOR J=1 TO 2 920 LET D(J)=(1-E(5))*.5*(K2+2*V(J)*D1)/(P(J)/50)^N 930 NEXT J 940 GOSUB 2070 950 FOR J=1 TO 2 960 IF D(J)>I(J) THEN 990 970 LET T(J)=D(J) 980 GOTO 1000 990 LET T(J)=I(J) 1000 LET T(J)=INT(T(J)) 1010 LET C(J)=C(J)+T(J)*P(J) 1020 LET I(J)=I(J)-T(J) 1030 NEXT J 1040 FOR J=1 TO 2 1050 LET C(J)=C(J)-R*I(J)*U-K3*C(J)*(SGN(C(J))-SGN(C(J))^2)/2 1060 LET C(J)=INT(C(J)) 1070 IF E(5)=0 THEN 1100 1080 LET W(J)=0 1090 GOTO 1120 1100 IF T(1)+T(2)=0 THEN 1080 1110 LET W(J)=INT(10000*T(J)/(T(1)+T(2)))/100 1120 NEXT J 1130 FOR J=1 TO 2 1140 GOSUB 1960 1150 LET B(J)=C(J)+U*I(J) 1160 IF B(J)>0 THEN 1200 1170 PRINT 1180 GOSUB 2020 1190 PRINT 1200 IF B(J)17 THEN 860 1310 PRINT 1320 PRINT " DO YOU WANT TO PLAY AGAIN(TYPE 1 FOR YES, 0 FOR NO)"; 1330 INPUT H 1340 IF H=0 THEN 1380 1350 RESTORE 1360 PRINT 1370 GOTO 280 1380 STOP 1390 PRINT 1400 LET F0=0 1410 FOR J=1 TO 2 1420 PRINT 1430 PRINT 1440 PRINT " COMPANY ";J 1450 IF E(2)<>1 THEN 1480 1460 PRINT " NO PRODUCTION POSSIBLE DUE TO STRIKE" 1470 GOTO 1510 1480 PRINT " PRODUCTION LEVEL"; 1490 INPUT L(J) 1500 IF L(J)<0 THEN 1480 1510 PRINT " ADVERTISING BUDGET"; 1520 INPUT A(J) 1530 IF A(J)<0 THEN 1510 1540 LET C(J)=C(J)-F-L(J)*U-A(J) 1550 IF E(2)=1 THEN 1570 1560 LET I(J)=I(J)+L(J) 1570 PRINT " UNIT PRICE"; 1580 INPUT A 1590 IF E(1)<>1 THEN 1650 1600 IF A<=P(J) THEN 1650 1610 PRINT 1620 PRINT " YOU MAY NOT RAISE PRICES DURING THE WAGE-PRICE FREEZE" 1630 PRINT 1640 GOTO 1570 1650 LET P(J)=A 1660 IF A>200 THEN 1570 1670 IF P(J)<=0 THEN 1570 1680 IF F0=1 THEN 1700 1690 NEXT J 1700 REM ...... ==== CHECK TO SEE ALL DATA IS CORRECT 1710 PRINT "ARE ALL ENTRIES CORRECT - YES OR NO"; 1720 INPUT A$ 1730 IF A$="YES" THEN 1800 1740 PRINT " FOR WHICH COMPANY DO YOU WISH TO RE-INPUT DATA "; 1750 INPUT J 1760 LET C(J)=C(J)+F+L(J)*U+A(J) 1770 LET I(J)=I(J)-L(J) 1780 LET F0=1 1790 GOTO 1420 1800 LET A2=A(1)+A(2) 1810 IF A2>0 THEN 1850 1820 LET V(1)=0 1830 LET V(2)=0 1840 GOTO 1870 1850 LET V(1)=A(1)/A2 1860 LET V(2)=A(2)/A2 1870 LET D1=(K2-K2*EXP(-K*A2))*K4 1880 RETURN 1890 PRINT 1900 PRINT 1910 PRINT " QUARTER ";Q 1920 PRINT 1930 PRINT " PROFIT MARKET SHARE CASH ON HAND NUMBER SOLD "; 1940 PRINT " INVENTORY ASSETS" 1950 RETURN 1960 PRINT U*I(J)+C(J)-B(J);TAB(9);W(J);TAB(23);C(J);TAB(37); 1970 PRINT T(J);TAB(50);I(J);TAB(61);U*I(J)+C(J) 1980 RETURN 2000 DATA 50,2,.001,.05,5000,5000,100,100,250,20,.05 2010 DATA .2,.4,.4,12000,1.5 2020 PRINT TAB(7);" ********************" 2030 PRINT " COMPANY ";J;" YOU HAVE GONE BANKRUPT" 2040 PRINT TAB(7);" ********************" 2050 LET P4=17 2060 RETURN 2070 IF P(1)0 THEN 2210 2260 GOSUB 2670 2270 LET E(1)=1 2280 LET Q1=Q 2290 GOTO 2210 2300 LET I=INT(RND(1)+1.5) 2310 IF Q-W2<=2 THEN 2220 2320 IF C(I)<0 THEN 2220 2330 IF C(I)>200 THEN 2360 2340 LET C(I)=.75*C(I) 2350 GOTO 2370 2360 LET C(I)=C(I)-200 2370 GOSUB 2720 2380 LET W2=Q 2390 GOTO 2220 2400 LET J=INT(RND(1)+1.5) 2410 IF Q-W3<=2 THEN 2230 2420 GOSUB 2770 2430 LET C(J)=C(J)+U*I(J)*.75 2440 LET I(J)=0 2450 LET W3=Q 2460 GOTO 2230 2470 IF E(1)=1 THEN 2530 2480 IF Q-W4<=2 THEN 2530 2490 LET W4=Q 2500 GOSUB 2820 2510 LET E(5)=1 2520 LET Q2=Q 2530 IF INT((Q-1)/4)*4<>Q-1 THEN 2920 2540 IF Q=1 THEN 2920 2550 IF E(1)=1 THEN 2920 2560 IF RND(1)>.25 THEN 2630 2570 IF Q<6 THEN 2630 2580 GOSUB 2870 2590 LET E(2)=1 2600 LET U=INT(U*(1.1+.1*RND(1))) 2610 LET Q3=Q 2620 GOTO 2920 2630 LET U=INT(U*(1.05+.1*RND(1))) 2640 PRINT " NEW LABOR CONTRACT - VARIABLE PRODUCTION COST NOW="; 2650 PRINT " $";U;" /UNIT" 2660 GOTO 2920 2670 PRINT " THE PRESIDENT HAS JUST IMPOSED A WAGE-PRICE FREEZE ON THE" 2680 PRINT " ECONOMY, AND YOU MAY NOT RAISE THE PRICE OF YOUR PRODUCT" 2690 PRINT " OVER THE NEXT 2 QUARTERS." 2700 PRINT 2710 RETURN 2720 PRINT " COMPANY ";I;" HAS BEEN THE VICTIM OF EMBEZZLEMENT BY THE" 2730 PRINT " VICE PRESIDENT OF THE COMPANY. YOUR CASH ON HAND IS NOW "; 2740 PRINT " $";C(I) 2750 PRINT 2760 RETURN 2770 PRINT " COMPANY";J;" HAS SUFFERED FIRE DAMAGE IN ITS WAREHOUSE" 2780 PRINT " ALL UNITS WERE DESTROYED. YOUR INSURANCE WILL REIMBURSE YOU" 2790 PRINT " IN THE AMOUNT OF $";INT(U*I(J)*.75);" FOR THESE UNITS" 2800 PRINT 2810 RETURN 2820 PRINT " A TRANSPORTATION STRIKE HAS OCCURED, AND YOU ARE UNABLE TO" 2830 PRINT " MOVE YOUR GOODS TO THE DISTRIBUTORS. NEGOTIATIONS HAVE" 2840 PRINT " BEGUN, BUT HOPE OF A SETTLEMENT LOOKS DIM ." 2850 PRINT 2860 RETURN 2870 PRINT " THERE HAS BEEN A STRIKE AND YOUR PRODUCTION HAS BEEN" 2880 PRINT " HALTED. NEGOTIATIONS HAVE BEEN STARTED, BUT HOPE OF" 2890 PRINT " A SETTLEMENT LOOKS DIM ." 2900 PRINT 2910 RETURN 2920 IF E(1)<>1 THEN 2970 2930 IF Q1 THEN 3020 2980 IF Q2=Q THEN 3020 2990 LET E(5)=0 3000 PRINT " TRANSPORTATION STRIKE SETTLED. NORMAL DELIVERIES RESUMED" 3010 PRINT 3020 IF E(2)<>1 THEN 3080 3030 IF Q3=Q THEN 3080 3040 PRINT " STRIKE SETTLED. NORMAL PRODUCTION RESUMED" 3050 PRINT " NEW VARIABLE COST=$";U;" / UNIT DUE TO INCREASED WAGES" 3060 PRINT 3070 LET E(2)=0 3080 RETURN 3090 END