home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 7.0 KB | 197 lines |
- 1 REM NATIONS & CAPITALS
- 2 REM
- 3 REM A WORLD GEOGRAPHY PROGRAM
- 4 REM
- 5 REM
- 6 REM IBM MICROSOFT BASICA
- 8 REM ADAPTED FROM APPLE SOFTSWAP
- 9 REM
- 10 REM
- 11 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 SCREEN 0,1: WIDTH 40: COLOR 11,0,11: CLS
- 110 LOCATE 6,1: PRINT ":::****::: NATIONS & CAPITALS :::****:::"
- 120 DIM A(114),B(4),C$(114),S$(114)
- 130 REM READ IN NATION & CAPITAL ARRAYS
- 140 FOR I = 1 TO 114
- 150 READ S$(I), C$(I) : NEXT I
- 160 FOR I = 1 TO 114 : A(I) = 0: NEXT I:G = 0:N = 0
- 170 LOCATE 12,3: PRINT "You have your choice of fill-in or": LOCATE 13,13: PRINT "multiple choice."
- 180 LOCATE 16,3: PRINT "Would you like to fill in answers?"
- 190 LOCATE 17,15: PRINT "<Y/N>=>";
- 200 Z$=INKEY$: IF Z$ = "" THEN 200
- 210 IF Z$="n" OR Z$="N" THEN GOTO 240
- 220 IF Z$ = "Y" OR Z$="y" THEN CLS : GOTO 280
- 230 GOTO 200
- 240 CLS : LOCATE 3
- 250 LOCATE 5,3: PRINT "MULTIPLE CHOICE - Enter 1,2,3, or 4."
- 260 X = 1: LOCATE 6,16: PRINT "To stop, type 0 (ZERO)."
- 270 GOTO 300
- 280 CLS : LOCATE 5,4: PRINT "Fill-in. You must spell exactly!": LOCATE 6,8: PRINT "(Saint is abbreviated St.)"
- 290 X = 2: LOCATE 7,15: PRINT "To stop, type S."
- 300 LOCATE 12,3: PRINT "You have your choice of whether the": LOCATE 13,8: PRINT "NATION or CAPITAL is asked."
- 310 PRINT
- 320 LOCATE 16,3: PRINT "Would you like to answer with the": LOCATE 17,10: PRINT "CAPITAL? <Y/N>=>";
- 330 Z$=INKEY$: IF Z$ = "" THEN 330
- 340 IF Z$="n" OR Z$="N" THEN GOTO 380
- 350 IF Z$ = "Y" OR Z$="y" THEN Y = 1: GOTO 390
- 360 IF Z$ < > "N" THEN 330
- 370 GOTO 330
- 380 Y = 2
- 390 PRINT
- 400 REM PICK A NATION
- 410 CLS : LOCATE 3
- 420 FOR I = 1 TO 10
- 430 R = INT ( RND (I) * 114) + 1
- 440 IF A(R) < > 2 THEN 500
- 450 NEXT I
- 460 REM DON'T WASTE TIME PICKING ONE
- 470 FOR R = 1 TO 114
- 480 IF A(R) < > 2 THEN 500
- 490 NEXT R: GOTO 1170
- 500 IF A(R) = 1 THEN PRINT "Try this one again."
- 510 PRINT
- 520 IF X = 1 THEN 670
- 530 REM THIS SECTION ASKS FOR FILL-IN ANSWERS
- 540 IF Y = 2 THEN 590
- 550 A$ = C$(R):Z3$=A$:GOSUB 10000:A$=Z3$
- 560 LOCATE 8,5: COLOR 11,0: PRINT "What is the capital of ";S$(R);"?"
- 570 PRINT
- 580 GOTO 620
- 590 A$ = S$(R):Z3$=A$:GOSUB 10000:A$=Z3$
- 600 LOCATE 8,5: COLOR 10,0: PRINT C$(R);" is the capital of ";
- 610 PRINT
- 620 LOCATE 10,5: LINE INPUT Z$:Z3$=Z$:GOSUB 10000:Z$=Z3$
- 630 PRINT
- 640 IF Z$ = "S" THEN 1110
- 650 IF Z$ = A$ THEN GOTO 1010
- 660 GOTO 1000
- 670 REM THIS SECTION ASKS MULTIPLE CHOICE QUESTIONS
- 680 REM THE VALUE4 OF C IS THE CORRECT ANSWER
- 690 CLS : LOCATE 3
- 700 C = INT ( RND (I) * 4) + 1
- 710 REM PICK FOUR NATIONS FOR THE CHOICE
- 720 FOR I = 1 TO 4
- 730 B(I) = INT ( RND (I) * 114) + 1
- 740 NEXT I
- 750 B(C) = R
- 760 REM MAKE SURE NONE ARE THE SAME
- 770 IF B(1) = B(2) OR B(1) = B(3) OR B(1) = B(4) THEN 720
- 780 IF B(2) = B(3) OR B(2) = B(4) OR B(3) = B(4) THEN 720
- 790 IF Y = 2 THEN 890
- 800 REM PRINT CAPITAL CHOICES
- 810 LOCATE 5,5: COLOR 13,0: PRINT "1. ";C$(B(1))
- 820 LOCATE 6,5: PRINT "2. ";C$(B(2))
- 830 LOCATE 7,5: PRINT "3. ";C$(B(3))
- 840 LOCATE 8,5: PRINT "4. ";C$(B(4))
- 860 LOCATE 11,5: PRINT "The capital of ";S$(R);" is";
- 870 A$ = C$(B(C)):Z3$=A$:GOSUB 10000:A$=Z3$
- 880 GOTO 960
- 890 REM PRINT NATION CHOICES
- 900 LOCATE 5,5: COLOR 14,0: PRINT "1. ";S$(B(1))
- 910 LOCATE 6,5: PRINT "2. ";S$(B(2))
- 920 LOCATE 7,5: PRINT "3. ";S$(B(3))
- 930 LOCATE 8,5: PRINT "4. ";S$(B(4))
- 940 LOCATE 12,5: PRINT C$(R);" is the capital of ";
- 950 A$ = S$(B(C)):Z3$=A$:GOSUB 10000:A$=Z3$
- 960 INPUT Z4$:Z = INT ( ABS (VAL(Z4$)))
- 970 IF Z < 1 OR Z > 4 THEN 1110
- 980 IF Z = C THEN 1010
- 990 PRINT
- 1000 A(R) = 1: LOCATE 16,5: PRINT "Wrong.":LOCATE 17,5: PRINT "The correct answer is ";A$;".": GOTO 1030
- 1010 A(R) = 2:N = N + 1
- 1020 LOCATE 16,5: PRINT "RIGHT!": LOCATE 17,5: PRINT "You have";N;"correct!"
- 1030 PRINT :G = G + 1
- 1040 LOCATE 21,13: COLOR 1,0: PRINT "Press any key": LOCATE 22,11 :COLOR 4,0: PRINT "Press <ESC> to end"
- 1060 Z$=INKEY$: IF Z$="" THEN GOTO 1060
- 1070 IF Z$=CHR$(27) THEN GOTO 1100
- 1080 GOTO 400
- 1090 GOTO 1170
- 1100 CLS
- 1110 LOCATE 10,3: COLOR 4,0: PRINT "Do you want to stop? <Y/N>"
- 1120 Z$=INKEY$: IF Z$ = "" THEN 1120
- 1130 IF Z$ = "Y" OR Z$="y" THEN 1170
- 1140 IF Z$="n" OR Z$="N" THEN GOTO 400
- 1160 GOTO 1120
- 1170 CLS
- 1180 LOCATE 10,3: PRINT "You got";N;"RIGHT in";G;"guesses."
- 1190 LOCATE 15,3: PRINT "Would you like a different section?": LOCATE 16,18: PRINT "<Y/N>"
- 1200 Z$=INKEY$: IF Z$ = "" THEN 1200
- 1210 IF Z$ = "Y" OR Z$="y" THEN RUN
- 1212 IF Z$="N" OR Z$="n" THEN GOTO 1220
- 1215 GOTO 1200
- 1220 LOCATE 18,3: PRINT "Is anyone else waiting to play? <Y/N>"
- 1230 Z$=INKEY$: IF Z$ = "" THEN 1230
- 1240 IF Z$ = "Y" OR Z$="y" THEN RUN
- 1245 IF Z$="n" OR Z$="N" THEN GOTO 1250
- 1246 GOTO 1230
- 1250 LOCATE 21,13: PRINT "Loading menu..."
- 1260 CHAIN "menu",170: RUN
- 1270 DATA Afghanistan,Kabul,Albania,Tirana,Algeria,Algiers
- 1280 DATA Angola,Luanda,Argentina,Buenos Aires,Australia,Canberra
- 1290 DATA Austria,Vienna,The Bahamas,Nassau,Bangladesh,Dacca
- 1300 DATA Barbados,Bridgetown,Belgium,Brussels,Bolivia,Sucre
- 1310 DATA Botswana,Gaborone,Brazil,Brasilia,Bulgaria,Sofia
- 1320 DATA Burma,Rangoon,Cambodia,Phnom Penh,Canada,Ottawa
- 1330 DATA Chile,Santiago,People's Republic of China,Peking
- 1340 DATA Republic of China,Taipei,Colombia,Bogota,Costa Rica,San Jose
- 1350 DATA Cuba,Havana,Cyprus,Nicosia,Czechoslovakia,Prague
- 1360 DATA Denmark,Copenhagen,Dominican Republic,Santo Domingo
- 1370 DATA Ecuador,Quito,Egypt,Cairo,El Salvador,San Salvador
- 1380 DATA Ethiopia,Addis Ababa,Fiji,Suva,Finland,Helsinki
- 1390 DATA France,Paris,Germany,Berlin,Ghana,Accra,Greece,Athens
- 1400 DATA Guatemala,Guatemala City,Haiti,"Port-au-Prince",Honduras,Tegucigalpa
- 1410 DATA Hungary,Budapest,Iceland,Reykjavik,India,New Delhi
- 1420 DATA Indonesia,Jakarta,Iran,Tehran,Iraq,Baghdad
- 1430 DATA Ireland,Dublin,Israel,Jerusalem,Italy,Rome
- 1440 DATA Jamaica,Kingston,Japan,Tokyo,Jordon,Amman,Kenya,Nairobi
- 1450 DATA South Korea,Seoul,Kuwait,Kuwait City,Laos,Vientiane
- 1460 DATA Lebanon,Beirut,Liberia,Monrovia,Libya,Tripoli
- 1470 DATA Liechtenstein,Vaduz,Madagascar,Tananarive,Malaysia,Kuala Lumpur
- 1480 DATA Mali,Bamako,Malta,Valetta,Mauritania,Nouakchott
- 1490 DATA Mexico,Mexico City,Mongolia,Ulan Bator,Morocco,Rabat
- 1500 DATA Mozambique,Maputo,Nepal,Katmandu,The Netherlands,Amsterdam
- 1510 DATA New Zealand,Wellington,Nicaragua,Managua,Niger,Niamey
- 1520 DATA Nigeria,Lagos,Norway,Oslo,Oman,Muscat,Pakistan,Islambad
- 1530 DATA Panama,Panama,Paraguay,Asuncion,Peru,Lima
- 1540 DATA Philippines,Quezon City,Poland,Warsaw,Portugal,Lisbon
- 1550 DATA Rhodesia,Salisbury,Romania,Bucharest,Saudi Arabia,Riyadh
- 1560 DATA Senegal,Dakar,Sierra Leone,Freetown,Somalia,Mogadishu
- 1570 DATA Republic of South Africa,Pretoria and Cape Town,Spain,Madrid
- 1580 DATA Sri Lanka,Colombo,Sudan,Khartoum,Sweden,Stockholm
- 1590 DATA Switzerland,Bern,Syria,Damascus,Tanzania,Dar es Salaam
- 1600 DATA Thailand,Bangkok,Togo,Lome,Tonga,Nukualofa
- 1610 DATA Trinidad and Tobago,Port of Spain,Tunisia,Tunis,Turkey,Ankara
- 1620 DATA Uganda,Kampala,"Russia (USSR)",Moscow,United Arab Emirates,Abu Dhabi
- 1630 DATA United Kingdom,England,Uruguay,Montevideo,Venezuela,Caracas
- 1640 DATA Vietnam,Hanoi,Yugoslavia,Belgrade,Zaire,Kinshasa,Zambia,Lusaka
- 10000 REM
- 10010 Z2$="":FOR VI=1 TO LEN(Z3$)
- 10020 Z1 =ASC(MID$(Z3$,VI,1))
- 10030 IF Z1>96 AND Z1 < 123 THEN Z2$=Z2$+CHR$(Z1-32):GOTO 10050
- 10040 Z2$=Z2$+CHR$(Z1)
- 10050 NEXT VI
- 10060 Z3$=Z2$
- 10070 RETURN
-