home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 10.5 KB | 427 lines |
- 1 REM ROMANS 8/83
- 2 REM
- 3 REM PRACTICE WITH ROMAN NUMERALS
- 4 REM
- 5 REM IBM BASICA 64 KB
- 6 REM
- 7 REM
- 8 REM ADAPTED FROM APPLE SOFTSWAP
- 9 REM
- 10 REM
- 12 REM ***********************
- 13 REM * *
- 14 REM * SAN MATEO COUNTY *
- 15 REM * OFFICE OF EDUCATION *
- 16 REM * *
- 17 REM * COMPUTER-USING *
- 18 REM * EDUCATORS *
- 19 REM * *
- 20 REM * SOFTSWAP *
- 21 REM * *
- 22 REM * 333 MAIN STREET *
- 23 REM * REDWOOD CITY *
- 24 REM * CA 94063 *
- 25 REM * (415)363-5472 *
- 26 REM * *
- 28 REM * *
- 29 REM ***********************
- 30 REM *PROGRAM MAY BE COPIED*
- 31 REM *FOR EDUCATIONAL USE &*
- 32 REM *MAY NOT BE SOLD.COPY-*
- 33 REM *RIGHT 1983 CUE,INC *
- 34 REM ***********************
- 100 DIM A$(5,1)
- 104 SCREEN 0,1: WIDTH 40: KEY OFF: COLOR 14,0: CLS
- 120 GOSUB 1570
- 130 LOCATE 5,5 :PRINT " TODAY WE ARE GOING TO WORK":LOCATE 6,5 :PRINT " WITH ROMAN NUMERALS"
- 140 FOR DL = 1 TO 1000: NEXT DL
- 150 PRINT : PRINT : PRINT
- 160 LOCATE 10,5 :PRINT " DO YOU HAVE A FRIEND THAT":LOCATE 11,5:PRINT " MIGHT LIKE TO WORK WITH YOU?"
- 170 PRINT
- 180 LOCATE 13,5:PRINT " I WOULD LIKE TO PLAY WITH" : LOCATE 14,5:PRINT " TWO OF YOU TODAY!"
- 190 PRINT
- 200 PRINT :LOCATE 16,5: PRINT " PRESS <RETURN> WHEN YOU":LOCATE 17,5 :PRINT " ARE READY!";
- 210 A$=INKEY$ : IF A$ = "" THEN 210
- 230 REM
- 240 CLS
- 245 REM
- 250 PRINT : PRINT : PRINT " GREAT!!"
- 260 PRINT : PRINT : PRINT "WHAT IS THE FIRST PLAYER'S": PRINT "NAME";: INPUT N$: IF N$ = "" THEN PRINT : PRINT "COME ON NOW...": GOTO 260
- 270 IF LEN (N$) > 10 THEN CLS : PRINT "THAT'S TOO LONG!": GOTO 260
- 280 CLS : PRINT "HI, ";N$
- 290 PRINT "WHAT'S YOUR PARTNER'S":PRINT "NAME";: INPUT M$: IF M$ = "" THEN PRINT : PRINT "COME ON NOW...": GOTO 290
- 300 IF LEN (N$) > 10 THEN CLS : PRINT "THAT'S TOO LONG!": GOTO 290
- 310 IF N$ = M$ THEN PRINT : PRINT "THAT'S THE SAME AS YOUR'S!": PRINT "TRY A DIFFERENT ONE.": GOTO 290
- 320 CLS : LOCATE 6
- 330 PRINT "WELL, ";N$;" AND ";M$
- 340 PRINT
- 350 PRINT : INPUT "WOULD YOU LIKE TO SEE THE INSTRUCTIONS?(YES OR NO)";A$:A$= LEFT$(A$,1)
- 360 IF A$ = "Y" OR A$="y" THEN 3480
- 370 IF A$ < > "N" AND A$<>"n" THEN CLS : GOTO 340
- 380 CLS: LOCATE 1: PRINT "ARE YOU READY TO START?"
- 390 PRINT "(YES OR NO)";: INPUT A$:A$=LEFT$(A$,1)
- 400 IF A$ = "Y" OR A$="y" THEN 490
- 410 IF A$ < > "N" AND A$<>"n" THEN 380
- 420 CLS : PRINT "WOULD YOU LIKE TO SEE THE INSTRUCTIONS AGAIN?"
- 430 PRINT "(YES OR NO)";: INPUT A$:A$=LEFT$(A$,1)
- 440 IF A$ = "Y" OR A$="y" THEN 3480
- 450 IF A$ < > "N" AND A$<>"n" THEN 420460 CLS : PRINT "WELL, I GUESS YOU JUST AREN'T READY FOR THIS TODAY!"
- 460 CLS : PRINT "WELL, I GUESS YOU JUST AREN'T READY FOR THIS TODAY!"
- 470 FOR DL = 1 TO 2000: NEXT DL
- 480 GOTO 1520
- 490 REM START QUESTIONS
- 500 CLS
- 510 LOCATE 20: PRINT N$;" HAS ";S;" ";M$;" HAS ";T
- 520 LOCATE 5
- 525 C = C + 1
- 527 P = INT ( RND (1) * 5) + 1
- 530 PRINT N$;", WHAT NUMERAL IS";
- 560 GOSUB 2330
- 570 Q = 1: REM STUDENT #1 RESPONSE
- 580 INPUT C$:Z3$=C$:GOSUB 10000:C$=Z3$
- 590 GOSUB 3750
- 600 GOTO 530
- 610 IF C$ = R$ THEN GOTO 1480
- 620 GOSUB 2890
- 630 PRINT : PRINT
- 635 R = INT (5 * RND (1)) + 1
- 638 IF R = P THEN 635
- 640 PRINT M$;", WHAT NUMERAL IS ";
- 660 GOSUB 2320
- 670 Q = 2: REM STUDENT #2 RESPONSE
- 680 INPUT C$:Z3$=C$:GOSUB 10000:C$=Z3$
- 690 GOSUB 3750
- 700 GOTO 640
- 710 IF C$ = R$ THEN GOTO 1500
- 720 GOSUB 2890
- 725 REM
- 730 GOSUB 9000
- 740 REM
- 750 REM
- 755 CLS
- 760 IF C < > 5 THEN GOTO 490
- 770 REM IN CASE OF A TIE -
- 780 IF S = T THEN GOTO 3020
- 790 REM REPORT RESULTS
- 800 REM
- 810 REM
- 820 REM
- 830 REM
- 840 REM
- 860 REM
- 870 REM
- 880 REM
- 890 REM
- 900 REM
- 910 REM
- 920 REM
- 930 REM
- 940 REM
- 950 REM
- 960 REM
- 970 REM
- 980 REM
- 990 REM
- 1000 REM
- 1010 REM
- 1020 REM
- 1030 REM
- 1040 REM
- 1050 REM
- 1060 REM
- 1070 REM
- 1080 REM
- 1090 REM
- 1100 REM
- 1110 GOTO 1330:PRINT TAB( 3)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVXLCDMIV"
- 1120 PRINT TAB( 3)"V"; TAB( 39)"V"
- 1130 PRINT TAB( 3)"X"; TAB( 39)"X"
- 1140 PRINT TAB( 3)"L"; TAB( 39)"L"
- 1150 PRINT TAB( 3)"C"; TAB( 39)"C"
- 1160 PRINT TAB( 3)"D"; TAB( 39)"D"
- 1170 PRINT TAB( 3)"M"; TAB( 39)"M"
- 1180 PRINT TAB( 3)"I"; TAB( 39)"I"
- 1190 PRINT TAB( 3)"V"; TAB( 39)"V"
- 1200 PRINT TAB( 3)"X"; TAB( 39)"X"
- 1210 PRINT TAB( 3)"L"; TAB( 39)"L"
- 1220 PRINT TAB( 3)"C"; TAB( 39)"C"
- 1230 PRINT TAB( 3)"D"; TAB( 39)"D"
- 1240 PRINT TAB( 3)"M"; TAB( 39)"M"
- 1250 PRINT TAB( 3)"I"; TAB( 39)"I"
- 1260 PRINT TAB( 3)"V"; TAB( 39)"V"
- 1270 PRINT TAB( 3)"X"; TAB( 39)"X"
- 1280 PRINT TAB( 3)"L"; TAB( 39)"L"
- 1290 PRINT TAB( 3)"C"; TAB( 39)"C"
- 1300 PRINT TAB( 3)"D"; TAB( 39)"D"
- 1310 PRINT TAB( 3)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVXLCDMIV"
- 1320 REM
- 1330 CLS:LOCATE 10
- 1340 PRINT TAB( 3)"WOULD YOU LIKE TO TRY AGAIN"
- 1350 PRINT "(YES OR NO)";: INPUT A$:A$=LEFT$(A$,1)
- 1360 IF A$ = "Y" OR A$="y" THEN 1390
- 1370 IF A$ < > "N" AND A$<>"n" THEN 1330
- 1380 GOTO 1520
- 1390 C = 0:R = 0:S = 0:T = 0:A = 0
- 1400 B = 0:P = 0
- 1410 CLS : GOTO 510
- 1420 PRINT "IS THERE SOMEONE ELSE WAITING TO TRY?"
- 1430 INPUT A$:A$=LEFT$(A$,1)
- 1440 IF A$ = "Y" OR A$="y" THEN GOTO 260
- 1450 : CLS : LOCATE 10
- 1460 PRINT "OK - COME AND SEE ME AGAIN SOON!"
- 1470 GOTO 3920
- 1480 S = S + 1
- 1490 GOTO 630
- 1500 T = T + 1
- 1510 GOTO 760
- 1520 LOCATE 12:PRINT "O.K., IS ANYONE ELSE WAITING TO TRY?"
- 1530 PRINT "(YES OR NO)";: INPUT A$ :A$=LEFT$(A$,1)
- 1540 IF A$ = "Y" OR A$="y" THEN RUN
- 1550 IF A$ < > "N" AND A$<>"n" THEN 1520
- 1560 GOTO 3920
- 1570 CLS : LOCATE 7
- 1580 PRINT TAB( 10)"IVXLCDMIVXLCDMIVXLCDM1V"
- 1590 PRINT TAB( 10)"V"; TAB( 32)"V"
- 1600 PRINT TAB( 10)"X"; TAB( 32)"X"
- 1610 PRINT TAB( 10)"L"; TAB( 32)"L"
- 1620 PRINT TAB( 10)"C MEET THE ROMANS"; TAB( 32)"C"
- 1630 PRINT TAB( 10)"D"; TAB( 32)"D"
- 1640 PRINT TAB( 10)"M"; TAB( 32)"M"
- 1650 PRINT TAB( 10)"D"; TAB( 32)"D"
- 1660 PRINT TAB( 10)"IVXLCDMIVXLCDMIVXLCDM1V"
- 1670 FOR DL = 1 TO 300: NEXT DL
- 1680 LOCATE 5
- 1690 PRINT TAB( 8)"IVXLCDMIVXLCDMIVXLCDMIVXLCD"
- 1700 PRINT TAB( 8)"V"; TAB( 34)"V"
- 1710 PRINT TAB( 8)"X"; TAB( 34)"X"
- 1720 PRINT TAB( 8)"L"; TAB( 34)"L"
- 1730 PRINT TAB( 8)"C"; TAB( 34)"C"
- 1740 PRINT TAB( 8)"C"; TAB( 34)"C"
- 1750 PRINT TAB( 8)"D MEET THE ROMANS"; TAB( 34)"D"
- 1760 PRINT TAB( 8)"M"; TAB( 34)"M"
- 1770 PRINT TAB( 8)"I"; TAB( 34)"I"
- 1780 PRINT TAB( 8)"V"; TAB( 34)"V"
- 1790 PRINT TAB( 8)"X"; TAB( 34)"X"
- 1800 PRINT TAB( 8)"L"; TAB( 34)"L"
- 1810 PRINT TAB( 8)"IVXLCDMIVXLCDMIVXLCDMIVXLCD"
- 1820 FOR DL = 1 TO 300: NEXT DL
- 1830 LOCATE 3
- 1840 PRINT TAB( 6)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVX"
- 1850 PRINT TAB( 6)"V"; TAB( 36)"V"
- 1860 PRINT TAB( 6)"X"; TAB( 36)"X"
- 1870 PRINT TAB( 6)"V"; TAB( 36)"V"
- 1880 PRINT TAB( 6)"X"; TAB( 36)"X"
- 1890 PRINT TAB( 6)"L"; TAB( 36)"L"
- 1900 PRINT TAB( 6)"C"; TAB( 36)"C"
- 1910 PRINT TAB( 6)"D"; TAB( 36)"D"
- 1920 PRINT TAB( 6)"M MEET THE ROMANS"; TAB( 36)"M"
- 1930 PRINT TAB( 6)"I"; TAB( 36)"I"
- 1940 PRINT TAB( 6)"V"; TAB( 36)"V"
- 1950 PRINT TAB( 6)"X"; TAB( 36)"X"
- 1960 PRINT TAB( 6)"L"; TAB( 36)"L"
- 1970 PRINT TAB( 6)"C"; TAB( 36)"C"
- 1980 PRINT TAB( 6)"D"; TAB( 36)"D"
- 1990 PRINT TAB( 6)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVX"
- 2000 FOR DL = 1 TO 300: NEXT DL
- 2010 LOCATE 1: PRINT
- 2020 PRINT TAB( 3)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVXLCDMIV"
- 2030 PRINT TAB( 3)"V"; TAB( 39)"V"
- 2040 PRINT TAB( 3)"X"; TAB( 39)"X"
- 2050 PRINT TAB( 3)"L"; TAB( 39)"L"
- 2060 PRINT TAB( 3)"C"; TAB( 39)"C"
- 2070 PRINT TAB( 3)"D"; TAB( 39)"D"
- 2080 PRINT TAB( 3)"M"; TAB( 39)"M"
- 2090 PRINT TAB( 3)"I"; TAB( 39)"I"
- 2100 PRINT TAB( 3)"V"; TAB( 39)"V"
- 2110 PRINT TAB( 3)"X"; TAB( 39)"X"
- 2120 PRINT TAB( 3)"L"; TAB( 39)"L"
- 2130 PRINT TAB( 3)"C"; TAB( 39)"C"
- 2140 PRINT TAB( 3)"D"; TAB( 39)"D"
- 2150 PRINT TAB( 3)"M"; TAB( 39)"M"
- 2160 PRINT TAB( 3)"I"; TAB( 39)"I"
- 2170 PRINT TAB( 3)"V"; TAB( 39)"V"
- 2180 PRINT TAB( 3)"X"; TAB( 39)"X"
- 2190 PRINT TAB( 3)"L"; TAB( 39)"L"
- 2200 PRINT TAB( 3)"C"; TAB( 39)"C"
- 2210 PRINT TAB( 3)"D"; TAB( 39)"D"
- 2220 PRINT TAB( 3)"IVXLCDMIVXLCDMIVXLCDMIVXLCDMIVXLCDMIV"
- 2240 LOCATE 6
- 2250 RETURN
- 2260 REM SELECTION OF QUESTIONS
- 2320 P = R
- 2330 ON C GOTO 2340,2450,2560,2670,2780
- 2340 ON P GOTO 2350,2370,2390,2410,2430
- 2350 PRINT " VIII"
- 2360 R$ = "8": RETURN
- 2370 PRINT " XII"
- 2380 R$ = "12": RETURN
- 2390 PRINT " XV"
- 2400 R$ = "15": RETURN
- 2410 PRINT " LX"
- 2420 R$ = "60": RETURN
- 2430 PRINT " LVI"
- 2440 R$ = "56": RETURN
- 2450 ON P GOTO 2460,2480,2500,2520,2540
- 2460 PRINT " XXII"
- 2470 R$ = "22": RETURN
- 2480 PRINT " DCX"
- 2490 R$ = "610": RETURN
- 2500 PRINT " LXXI"
- 2510 R$ = "71": RETURN
- 2520 PRINT " CXV"
- 2530 R$ = "115": RETURN
- 2540 PRINT " MCL"
- 2550 R$ = "1150": RETURN
- 2560 ON P GOTO 2570,2590,2610,2630,2650
- 2570 PRINT " IX"
- 2580 R$ = "9": RETURN
- 2590 PRINT " IV"
- 2600 R$ = "4": RETURN
- 2610 PRINT " XL"
- 2620 R$ = "40": RETURN
- 2630 PRINT " XC"
- 2640 R$ = "90": RETURN
- 2650 PRINT " IL"
- 2660 R$ = "49": RETURN
- 2670 ON P GOTO 2680,2700,2720,2740,2760
- 2680 PRINT " 36";" (IN ROMAN)"
- 2690 R$ = "XXXVI": RETURN
- 2700 PRINT " 52";" (IN ROMAN)"
- 2710 R$ = "LII": RETURN
- 2720 PRINT " 19";" (IN ROMAN)"
- 2730 R$ = "XIX": RETURN
- 2740 PRINT " 490";" (IN ROMAN)"
- 2750 R$ = "XD": RETURN
- 2760 PRINT " 655";" (IN ROMAN)"
- 2770 R$ = "DCLV": RETURN
- 2780 ON P GOTO 2790,2810,2830,2850,2870
- 2790 PRINT " 240"
- 2800 R$ = "CCXL": RETURN
- 2810 PRINT " 1090"
- 2820 R$ = "MXC": RETURN
- 2830 PRINT " 2010"
- 2840 R$ = "MMX": RETURN
- 2850 PRINT " 2400"
- 2860 R$ = "MMCD": RETURN
- 2870 PRINT " 3119"
- 2880 R$ = "MMMCXIX": RETURN
- 2890 REM ERROR MESSAGES
- 2900 X = INT (3 * RND (1))
- 2910 ON X GOTO 2920,2950,2980
- 2920 PRINT "OOPS, YOU MISSED THAT ONE!"
- 2930 PRINT "IT SHOULD HAVE BEEN ";R$
- 2940 RETURN
- 2950 PRINT "NO, THINK CAREFULLY -"
- 2960 PRINT "THE RIGHT ANSWER IS ";R$
- 2970 RETURN
- 2980 PRINT "SORRY, THAT'S WRONG - "
- 2990 PRINT "IT WOULD BE ";R$
- 3000 RETURN
- 3010 : REM STUDENT #2 RESPONSE
- 3020 REM - TIE BREAKER!!
- 3030 PRINT : PRINT "YOU BOTH DID VERY WELL!"
- 3040 PRINT : PRINT "HOW ABOUT ONE MORE QUESTION TO TRY TO BREAK THE TIE!"
- 3050 PRINT : PRINT "YOU WILL BOTH HAVE THE SAME QUESTION - WORK THE PROBLEM AND TELL ME YOUR ANSWER!"
- 3060 FOR DL = 1 TO 1000: NEXT DL
- 3070 C = C + 1
- 3080 PRINT "YOUR QUESTION IS - "
- 3090 P = INT (3 * RND (1)) + 1
- 3100 ON P GOTO 3110,3140,3170
- 3110 PRINT : PRINT " XXXVI + XCVIII= ?"
- 3120 R$ = "CXXXIV":H$ = "134"
- 3130 GOTO 3200
- 3140 PRINT : PRINT " CXXXIV+XCIX= ?"
- 3150 R$ = "CCXXXIII":H$ = "233"
- 3160 GOTO 3200
- 3170 PRINT : PRINT " CCXLVII+CLIV = ?"
- 3180 R$ = "CDI":H$ = "401"
- 3190 GOTO 3200
- 3200 PRINT : PRINT N$;", WHAT IS YOUR ANSWER?"
- 3210 INPUT C$
- 3220 PRINT : PRINT "NOW, ";M$;", WHAT DID YOU GET?"
- 3230 INPUT D$
- 3240 IF C$ = R$ THEN GOTO 3370
- 3250 IF C$ = H$ THEN GOTO 3370
- 3260 IF D$ = R$ THEN GOTO 3320
- 3270 IF D$ = H$ THEN GOTO 3320
- 3280 PRINT : PRINT " SORRY, YOU BOTH MISSED IT !"
- 3290 PRINT : PRINT "BUT THIS WAS GOOD PRACTICE!"
- 3300 FOR DL = 1 TO 1500: NEXT DL
- 3310 GOTO 3470
- 3320 T = T + 1
- 3330 PRINT : PRINT "GOOD WORK, ";M$
- 3340 PRINT : PRINT " YOU GOT IT RIGHT ! !"
- 3350 FOR DL = 1 TO 1500: NEXT DL
- 3360 GOTO 3470
- 3370 S = S + 1
- 3380 IF D$ = R$ THEN GOTO 3440
- 3390 IF D$ = R$ THEN GOTO 3440
- 3400 PRINT " CONGRATULATIONS, ";N$
- 3410 PRINT : PRINT " YOU WIN ! !"
- 3420 FOR DL = 1 TO 1500: NEXT DL
- 3430 GOTO 3470
- 3440 T = T + 1
- 3450 PRINT "YOU BOTH GOT IT RIGHT ! !"
- 3460 FOR DL = 1 TO 1500: NEXT DL
- 3470 GOSUB 9000
- 3474 GOTO 790
- 3480 CLS
- 3490 PRINT : PRINT "I AM GOING TO ASK EACH OF YOU TWO KINDS OF QUESTIONS - "
- 3500 GOSUB 3730
- 3510 PRINT : PRINT "IF I SHOW YOU A ROMAN NUMERAL YOU SHOULD TELL ME WHAT YOU THINK IT MEANS - LIKE THIS -"
- 3520 GOSUB 3730
- 3530 PRINT : PRINT "IF YOU SEE ";
- 3540 REM
- 3550 PRINT "XXIII -"
- 3560 REM
- 3570 PRINT : PRINT "YOU WOULD ENTER ";
- 3580 REM
- 3590 PRINT "23"
- 3600 REM
- 3610 GOSUB 9000
- 3640 CLS
- 3650 PRINT : PRINT "IF I SHOW YOU A NUMBER LIKE 37, YOU WOULD ENTER ";
- 3660 FOR DL = 1 TO 1000: NEXT DL
- 3670 SPEED= 50
- 3680 PRINT "XXXVII."
- 3690 SPEED= 255
- 3700 GOSUB 3730
- 3710 PRINT : PRINT : PRINT "YOU CAN TAKE TURNS ANSWERING MY QUESTIONS AND I WILL KEEP SCORE. GOOD LUCK!"
- 3720 GOTO 380
- 3730 FOR DL = 1 TO 2000: NEXT DL
- 3740 RETURN
- 3750 IF C$ = "" THEN C$ = " "
- 3755 FOR Z = 1 TO LEN (C$):Z2$ = MID$ (C$,Z,1):Z2 = ASC (Z2$)
- 3760 IF VAL (R$) = 0 THEN 3810
- 3770 IF Z2 = > 48 AND Z2 < = 57 THEN 3912
- 3772 PRINT "THAT'S NOT A VALID ANSWER"
- 3774 PRINT "TRY AGAIN"
- 3778 GOSUB 9000:RETURN
- 3810 IF Z2 = 73 OR Z2 = 86 OR Z2 = 88 OR Z2 = 76 OR Z2 = 67 OR Z2 = 68 OR Z2 = 77 THEN 3912
- 3860 PRINT "THAT'S NOT A VALID ANSWER!"
- 3890 GOSUB 9000
- 3910 RETURN
- 3912 NEXT Z
- 3913 REM
- 3914 ON Q GOTO 610,710
- 3920 CLS
- 3930 CHAIN "MENU",170: RUN
- 9000 REM
- 9010 AA$="Press any key to continue"
- 9020 AB$="Or press 'ESC' to end"
- 9030 LOCATE 23,20-(LEN(AA$)/2)
- 9040 PRINT AA$;
- 9050 LOCATE 24,20-(LEN(AB$)/2)
- 9060 PRINT AB$;
- 9070 II$=INKEY$:IF II$="" THEN 9070
- 9080 IF ASC(II$)=27 THEN 1390
- 9090 CLS:RETURN
- 10000 REM
- 10010 Z2$="":FOR VI=1 TO LEN(Z3$)
- 10020 Z1 =ASC(MID$(Z3$,VI,1))
- 10030 IF Z1 =>97 AND Z1 =<122 THEN Z2$=Z2$+CHR$(Z1-32):GOTO 10050
- 10040 Z2$=Z2$+CHR$(Z1)
- 10050 NEXT VI
- 10060 Z3$=Z2$
- 10070 RETURN
-