home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 6.0 KB | 185 lines |
- 1 REM STATES 8/83
- 2 REM
- 3 REM A U.S. GEOGRAPHY QUIZ
- 4 REM
- 5 REM
- 6 REM IBM MICROSOFT BASICA
- 7 REM
- 8 REM ADAPTED FROM APPLE SOFTSWAP
- 9 REM
- 10 REM
- 11 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 ***********************
- 150 SCREEN 0,1: WIDTH 40: COLOR 13,0,1: KEY OFF: CLS
- 160 LOCATE 6,1: PRINT " :::::::*** STATES & CAPITALS ***::::::: "
- 170 DIM A(50),B(4),C$(50),S$(50)
- 180 REM READ IN STATE & CAPITAL ARRAYS
- 190 FOR I = 1 TO 50
- 200 READ S$(I), C$(I) : NEXT I
- 210 FOR I = 1 TO 50 : A(I) = 0: NEXT I: G = 0: N = 0
- 220 LOCATE 12,3: PRINT "You have your choice of FILL-IN or": LOCATE 13,13: PRINT "MULTIPLE CHOICE."
- 230 LOCATE 16,3: PRINT "Would you like to FILL-IN answers?"
- 240 LOCATE 17,15: PRINT "<Y/N>"
- 250 Z$=INKEY$: IF Z$ = "" THEN 250
- 260 IF Z$ = "Y" OR Z$="y" THEN GOTO 320
- 270 CLS
- 280 LOCATE 5,3: PRINT "MULTIPLE CHOICE - Enter 1, 2, 3, OR 4."
- 290 PRINT
- 300 X = 1: LOCATE 6,13: PRINT "To stop, type 0 (ZERO)."
- 310 GOTO 350
- 320 CLS: LOCATE 5,4: PRINT "FILL-IN: you must spell exactly!": LOCATE 6,8: PRINT "(Saint is abbreviated ST.)"
- 330 LOCATE 7,5: PRINT "You must use all CAPITAL letters."
- 340 X = 2
- 350 LOCATE 12,3: PRINT "You have your choice of whether the": LOCATE 13,8: PRINT "STATE or CAPITAL is asked."
- 360 LOCATE 16,3: PRINT "Would you like to answer with the": LOCATE 17,10: PRINT "CAPITAL? <Y/N)"
- 370 Z$=INKEY$: IF Z$ = "" THEN 370
- 380 IF Z$ = "Y" OR Z$="y" THEN Y = 1: GOTO 400
- 390 Y = 2
- 400 REM
- 410 REM PICK A STATE
- 420 CLS : LOCATE 3,3
- 430 FOR I = 1 TO 10
- 440 R = INT ( RND (I) * 50) + 1
- 450 IF A(R) < > 2 THEN 510
- 460 NEXT I
- 470 REM DON'T WASTE TIME PICKING ONE
- 480 FOR R = 1 TO 50
- 490 IF A(R) < > 2 THEN 510
- 500 NEXT R: GOTO 1190
- 510 IF A(R) = 1 THEN PRINT "TRY THIS ONE AGAIN"
- 520 PRINT
- 530 IF X = 1 THEN 680
- 540 REM THIS SECTION ASKS FOR FILL-IN ANSWERS
- 550 IF Y = 2 THEN 600
- 560 A$ = C$(R)
- 570 CLS
- 580 LOCATE 8,5: COLOR 9,0: PRINT "What is the capital of ";S$(R);"?"
- 590 GOTO 630
- 600 A$ = S$(R)
- 610 LOCATE 8,5: COLOR 11,0: PRINT C$(R);" is the capital of ";
- 620 PRINT
- 630 LOCATE 10,5: LINE INPUT Z$:GOSUB 8000
- 640 PRINT
- 650 IF LEN (Z$) = 1 THEN 1130
- 660 IF Z$ = A$ THEN GOTO 1030
- 670 GOTO 1020
- 680 REM THIS SECTION ASKS MULTIPLE CHOICE QUESTIONS
- 690 REM THE VALUE4 OF C IS THE CORRECT ANSWER
- 700 CLS : LOCATE 3
- 710 C = INT ( RND (I) * 4) + 1
- 720 REM PICK FOUR STATES FOR THE CHOICES
- 730 FOR I = 1 TO 4
- 740 B(I) = INT ( RND (I) * 50) + 1
- 750 NEXT I
- 760 B(C) = R
- 770 REM MAKE SURE NONE ARE THE SAME
- 780 IF B(1) = B(2) OR B(1) = B(3) OR B(1) = B(4) THEN 730
- 790 IF B(2) = B(3) OR B(2) = B(4) OR B(3) = B(4) THEN 730
- 800 IF Y = 2 THEN 900
- 810 REM PRINT CAPITAL CHOICES
- 820 LOCATE 5,5: COLOR 9,0: PRINT "1.";C$(B(1))
- 830 LOCATE 6,5: PRINT "2.";C$(B(2))
- 840 LOCATE 7,5: PRINT "3.";C$(B(3))
- 850 LOCATE 8,5: PRINT "4.";C$(B(4))
- 860 PRINT
- 870 LOCATE 12,5: PRINT "The capital of ";S$(R);" is";
- 880 A$ = C$(B(C))
- 890 GOTO 980
- 900 REM PRINT STATE CHOICES
- 910 LOCATE 5,10: COLOR 14,0: PRINT "1.";S$(B(1))
- 920 LOCATE 6,10: PRINT "2.";S$(B(2))
- 930 LOCATE 7,10: PRINT "3.";S$(B(3))
- 940 LOCATE 8,10: PRINT "4.";S$(B(4))
- 950 PRINT
- 960 A$ = S$(B(C))
- 970 LOCATE 12,5: PRINT C$(R);" is the capital of ";
- 980 INPUT Z$:Z = INT ( ABS (VAL(Z$)))
- 990 IF Z < 1 OR Z > 4 THEN 1130
- 1000 IF Z = C THEN 1030
- 1010 PRINT
- 1020 A(R) = 1: LOCATE 16,5: PRINT "Wrong.": LOCATE 17,5: PRINT "The answer is ";A$;".": GOTO 1060
- 1030 A(R) = 2:N = N + 1
- 1040 PRINT
- 1050 LOCATE 16,5: PRINT "RIGHT!": LOCATE 17,5: PRINT "You have";N;"correct."
- 1060 PRINT :G = G + 1
- 1070 LOCATE 21,13: COLOR 1,0: PRINT "Press any key": LOCATE 22,11: COLOR 4,0: PRINT "Press <ESC> to end"
- 1080 A$=INKEY$: IF A$="" THEN GOTO 1080
- 1090 IF A$=CHR$(27) THEN GOTO 1120
- 1100 IF N < 50 THEN GOTO 410
- 1110 IF N = 50 THEN 1190
- 1120 CLS
- 1130 LOCATE 10,3: COLOR 4,0: PRINT "Do you want to stop? <Y/N>": COLOR 9,0
- 1140 A$=INKEY$: IF A$="" THEN GOTO 1140
- 1150 IF A$="Y" OR A$="y" THEN GOTO 1190
- 1160 IF A$="N" OR A$="n" THEN GOTO 1100
- 1170 GOTO 1140
- 1180 GOTO 1100
- 1190 CLS
- 1200 LOCATE 10,3: PRINT "You got";N;"RIGHT in";G;"guesses."
- 1210 LOCATE 15,3: PRINT "Would you like to try another part?": LOCATE 16,18: PRINT "<Y/N>"
- 1220 Z$=INKEY$: IF Z$ = "" THEN 1220
- 1230 IF Z$ = "Y" OR Z$="y" THEN RUN
- 1240 IF Z$="n" OR Z$="N" THEN GOTO 1260
- 1250 GOTO 1220
- 1260 LOCATE 18,3: PRINT "Is anyone else waiting to try? <Y/N>"
- 1270 Z$=INKEY$: IF Z$ = "" THEN 1270
- 1280 IF Z$ = "Y" OR Z$="y" THEN RUN
- 1290 IF Z$="n" OR Z$="N" THEN GOTO 1310
- 1300 GOTO 1270
- 1310 CLS : LOCATE 13,8: PRINT "* * * G O O D B Y E * * *"
- 1320 LOCATE 20,13: COLOR 14,0: PRINT "Loading menu...";: FOR I=1 TO 6: PRINT CHR$(2);: NEXT
- 1330 CHAIN "menu",170: RUN
- 1340 DATA "ALABAMA","MONTGOMERY","ALASKA","JUNEAU","ARIZONA"
- 1350 DATA "PHOENIX","ARKANSAS","LITTLE ROCK","CALIFORNIA"
- 1360 DATA "SACRAMENTO","COLORADO","DENVER","CONNECTICUT","HARTFORD"
- 1370 DATA "DELAWARE","DOVER","FLORIDA","TALLAHASSEE","GEORGIA"
- 1380 DATA "ATLANTA","HAWAII","HONOLULU","IDAHO","BOISE","ILLINOIS"
- 1390 DATA "SPRINGFIELD","INDIANA","INDIANAPOLIS","IOWA"
- 1400 DATA "DES MOINES","KANSAS","TOPEKA","KENTUCKY","FRANKFORT"
- 1410 DATA "LOUISIANA","BATON ROUGE","MAINE","AUGUSTA","MARYLAND"
- 1420 DATA "ANNAPOLIS","MASSACHUSETTS","BOSTON","MICHIGAN"
- 1430 DATA "LANSING","MINNESOTA","ST.PAUL","MISSISSIPPI","JACKSON"
- 1440 DATA "MISSOURI","JEFFERSON CITY","MONTANA","HELENA","NEBRASKA"
- 1450 DATA "LINCOLN","NEVADA","CARSON CITY","NEW HAMPSHIRE"
- 1460 DATA "CONCORD","NEW JERSEY","TRENTON","NEW MEXICO","SANTA FE"
- 1470 DATA "NEW YORK","ALBANY","NORTH CAROLINA","RALEIGH"
- 1480 DATA "NORTH DAKOTA","BISMARK","OHIO","COLUMBUS","OKLAHOMA"
- 1490 DATA "OKLAHOMA CITY","OREGON","SALEM","PENNSYLVANIA"
- 1500 DATA "HARRISBURG","RHODE ISLAND","PROVIDENCE","SOUTH CAROLINA"
- 1510 DATA "COLUMBIA","SOUTH DAKOTA","PIERRE","TENNESSEE"
- 1520 DATA "NASHVILLE","TEXAS","AUSTIN","UTAH","SALT LAKE CITY"
- 1530 DATA "VERMONT","MONTPELIER","VIRGINIA","RICHMOND","WASHINGTON"
- 1540 DATA "OLYMPIA","WEST VIRGINIA","CHARLESTON","WISCONSIN"
- 1550 DATA "MADISON","WYOMING","CHEYENNE"
- 1560 CLS: LOCATE 20,13: COLOR 14,0: PRINT "Loading menu...";: FOR I=1 TO 3: PRINT CHR$(2);: NEXT
- 1570 CHAIN "menu",170: RUN
- 8000 REM
- 8005 SS$=""
- 8010 FOR II= 1 TO LEN(Z$)
- 8020 AA$=MID$(Z$,II,1)
- 8030 IF AA$<>"" THEN IF ASC(AA$)>96 THEN SS$=SS$+CHR$(ASC(AA$)-32):GOTO 8050
- 8035 SS$=SS$+AA$
- 8050 NEXT II
- 8060 Z$=SS$
- 8070 RETURN
-