home *** CD-ROM | disk | FTP | other *** search
Wrap
AmigaBASIC Source Code | 1987-04-02 | 12.2 KB | 383 lines
DIM S$(50),C$(50),SP$(50),CP$(50) CLS LOCATE 2,22:PRINT "** UNITED STATES **" LOCATE 5,6:PRINT "You will see an outline of a state." LOCATE 7,6:PRINT "Type the name of the state, then its capital city." LOCATE 9,6:PRINT"If you get the state and capital correct," LOCATE 11,11:PRINT"it will not appear again." LOCATE 13,6:PRINT "The quiz consists of all 50 states in a random order." LOCATE 15,6:PRINT "PLEASE MAKE SURE CAPS LOCK IS ON." A$="PLEASE TYPE IN YOUR NAME.":GOSUB talk LOCATE 17,6:INPUT "Please type in your NAME--->";N$ A$="Thank you "+N$ GOSUB talk FOR C=1 TO 50:READ S$(C),SP$(C),C$(C),CP$(C):NEXT C DATA ALABAMA,AL A BAM UH,MONTGOMERY,MONTGOMARY,ALASKA,uhlaska,JUNEAU,JEW NO DATA ARIZONA,air uh zoana,PHOENIX,FEENIX,ARKANSAS,ARKCANSAW,LITTLE ROCK DATA LITTLE ROCK,CALIFORNIA,california,SACRAMENTO,SACRAMIN TOe DATA COLORADO,CALL ORODO,DENVER,DENVER,CONNECTICUT,conne et eh cut DATA HARTFORD,HEARTFeRD DATA DELAWARE,DELLAWARE,DOVER,DOe VER,FLORIDA,FLORIDA,TALLAHASSEE,talahassee DATA GEORGIA,jorge uh,ATLANTA,ATLANTA,HAWAII,ha wa yee,HONOLULU,hawno LULU DATA IDAHO,I dahho,BOISE,BOYZEE,ILLINOIS,ILL ANOISE,SPRINGFIELD,SPRING FIELD DATA INDIANA,INDY ANA,INDIANAPOLIS,INDY AN APOLIS DATA IOWA,EYE O WAY,DES MOINES,Da MOYNE,KANSAS,CAN SUS,TOPEKA,TOPEEKA DATA KENTUCKY,CAIN TUCKY,FRANKFORT,FRANKFORT,LOUISIANA,LOW EAZY ANA DATA BATON ROUGE,BAT taN RUGE DATA MAINE,MAIN,AUGUSTA,uH GUST uH,MARYLAND,MERRY LUND,ANNAPOLIS,ANN APOLIS DATA MASSACHUSETTS,MASS A CHEW SUTS,BOSTON,BOST TON,MICHIGAN,MISH AGAIN DATA LANSING, LANCING DATA MINNESOTA,min uh sooda,ST. PAUL,SAINT PAUL,MISSISSIPPI,mississippee DATA JACKSON,JACK SUN,MISSOURI,muh zoo re,JEFFERSON CITY,JEFF ER SUN CITY DATA MONTANA,MON TAN uH DATA HELENA,HELL uh NA,NEBRASKA,NUH BRASK UH,LINCOLN,LINkun DATA NEVADA,NA VA DA,CARSON CITY,CAR SUN CITY,NEW HAMPSHIRE,NEW HAMP sure DATA CONCORD,cawn CORD,NEW JERSEY,NEW JOYee ZEE DATA TRENTON,TREN TON,NEW MEXICO,NEW MEX E COE,SANTA FE,SANTA FAY DATA NEW YORK,NEW YAWK,ALBANY,ALL BANY,NORTH CAROLINA,NORTH CAROLine UH DATA RALEIGH,RAW LEE DATA NORTH DAKOTA,NORTH DUH coeda,BISMARCK,BIZ MARK,OHIO,O HI O DATA COLUMBUS,CO LUM BUS,OKLAHOMA,OAK la home uh,OKLAHOMA CITY,OAK la home uh CITY DATA OREGON,OR A GUN,SALEM,SAY LuM DATA PENNSYLVANIA,PEN SA VAINYA,HARRISBURG,HAIRrISBURG,RHODE ISLAND DATA ROAD I LAND,PROVIDENCE,PRaw VIDENCE,SOUTH CAROLINA,SOUTH CAROLine UH DATA COLUMBIA,ca lumb b uh DATA SOUTH DAKOTA,SOUTH DUH COEDA,PIERRE,PE AIR,TENNESSEE,TEN AH C DATA NASHVILLE,NASH VEAL,TEXAS,TEX US,AUSTIN,AW STiN,UTAH,U TA DATA SALT LAKE CITY,SALT LAKE CITY DATA VERMONT,VER MONT,MONTPELIER,MONT PEEL YOUR,VIRGINIA,vir gin ya DATA RICHMOND,RICH MUND,WASHINGTON,WASHIN TON,OLYMPIA,O LIMP E uH DATA WEST VIRGINIA,WEST VIRGINYA,CHARLESTON,CHARLES TuN DATA WISCONSIN,WISS CON SUN,MADISON,MADison,WYOMING,WHY O MING DATA CHEYENNE,SHY ANN LOCATE 22,14:PRINT "press the space bar to start." A$="PLEASE PRESS THE SPACE BAR TO START":GOSUB talk 300 A$=INKEY$:IF A$<>" " THEN 300 RANDOMIZE TIMER G=0 FOR N=1 TO 50 340 f=0 CLS REM draw map RESTORE 370 370 DATA 280,32,356,32,356,28,364,28,360,32,398,35,380,42,390,42 DATA 410,37,406,40,420,43,432,40,444,43,436,43,448,46,446,53 DATA 448,54,454,51,460,56,456,64,466,63,486,54,486,53,502,48 DATA 512,40,536,36,540,28,542,22,546,23,555,21,566,31,568,30 DATA 568,33,550,40,548,46,555,51,558,51,558,49,558,51,555,51 DATA 528,61,532,63,526,79,532,85,528,91,492,110,492,118,512,135 DATA 512,142,508,145,496,140,486,133,484,126,472,123,460,125 DATA 454,123,420,126,420,129,424,131,404,131,404,129,396,128 DATA 392,130,380,130,344,138,344,147,350,149,332,148,324,144 DATA 326,142,306,130,296,130,288,133,278,130,272,123,268,123 DATA 260,119,246,118,246,120,216,118,186,110,186,108,166,108 DATA 164,104,158,101,140,95,128,80,134,76,128,76,124,72,120,62 DATA 126,54,128,50,142,35,144,24,156,26,160,23 LINE (160,23)-(224,28) FOR t=1 TO 97 READ x,y:LINE-(x,y) NEXT t REM draw state 540 RANDOMIZE TIMER:r=INT(50*RND+1 ):IF S$(r)="" THEN 540 IF r>25 THEN 580 ON r GOSUB ala,als,az,ak,ca,col,con,de,fl,ga,ha,id,il,in,io,ka,ky,la,me,md,mas,mich,minn,miss,mo GOTO 590 580 ON r-25 GOSUB mont,neb,nev,nh,nj,nm,ny,nc,nd,oh,okl,ore,pa,ri,sc,sd,tn,tx,ut,vt,vir,wa,wv,wi,wy 590 READ x1,y1,x2,y2,C:LINE(x1,y1)-(x2,y2) FOR j=1 TO C READ x,y: LINE -(x,y) NEXT j IF r=1 THEN PAINT (230,110),2,1:GOTO 630 IF r=2 THEN PAINT (30,20),2,1:PAINT (105,35),2,1:GOTO 630 IF r=11 THEN PAINT (60,82),2,1:GOTO 630 IF r=19 THEN PAINT (500,50),2,1:GOTO 630 PAINT (430,110),2,1:PAINT (540,30),2,1 630 SOUND 1300,2:G=G+1 GOSUB pickask GOSUB talk numleft=51-N:LOCATE 21,40:PRINT "Number of States Remaining ";numleft LOCATE 21,2:INPUT "state";ss$:ss$=UCASE$(ss$) IF ss$=S$(r) THEN 740 SOUND 330,2:SOUND 262,2 f=f+1:IF f=2 THEN 700 LINE (0,160)-(400,199),0,bf GOTO 630 700 A$="THE STATE IS "+SP$(r)+"." GOSUB talk PRINT "the state is ";S$(r) 710 PRINT:PRINT "press the space bar to continue."; A$="thats o k "+N$+". try again.":GOSUB talk 720 A$=INKEY$ IF A$=" " THEN 340 :ELSE 720 740 SOUND 262,2: SOUND 330,2 SOUND 392,2:SOUND 523,4:f2=0 A$="WHAT IS THE CAPITAL OF "+SP$(r)+"." GOSUB talk 760 G=G+1:LOCATE 22,2:INPUT"capital";cc$:cc$=UCASE$(cc$) IF cc$=C$(r) THEN 840 SOUND 330,2: SOUND 262,2 f2=f2+1: IF f2=2 THEN 820 LINE(0,168)-(400,199),0,bf GOTO 760 820 A$="THE CAPITAL IS "+CP$(r)+"." GOSUB talk PRINT " the capital is ";C$(r) GOTO 710 840 SOUND 262,2:SOUND 330,2 SOUND 392,2:SOUND 523,4 A$=CP$(r)+ " IS CORRECT" GOSUB talk S$(r)="": FOR d=1 TO 2000: NEXT d NEXT N win: CLS PRINT:PRINT "a perfect score is 100." PRINT:PRINT PRINT "you had";G;"guesses." PRINT:PRINT:PRINT IF G=100 THEN A$="PERFECT!"+N$+". YOU CANT GET ANY BETTER THAN THAT!" :ELSE A$="GOOD WORK "+N$+". YOU GOT THROUGH ALL FIFTY STATES AND CAPITOLS. THANKS FOR PLAYING AND TRY IMPROVING YOUR SCORE NEXT TIME.":GOSUB talk:GOTO morewin GOSUB talk morewin: FOR C=1 TO 40 SOUND 500*RND+300,1 NEXT C GOTO 2740 ala: RESTORE a1 a1:DATA 426,124,426,99,5,448,99 DATA 456,112,458,119,436,119,438,123 RETURN als: RESTORE a2 a2:DATA 80,26,76,5,27,48,1,28,6,38,12,22,12,24,16,34,16 DATA 34,18,20,21,20,26,26,24,24,29,38,31,32,35,0,40 DATA 32,36,48,32,56,25,52,30,66,27,76,29,84,29 DATA 106,40,106,36,114,39,96,28,88,29,80,26 LOCATE 2,8:PRINT "?" RETURN az:RESTORE a3 a3:DATA 236,119,242,91,7,200,88,196,93,192,92 DATA 192,102,188,106,190,108,186,110 RETURN ak:RESTORE a4 a4:DATA 368,94,406,94,9,406,96,412,96 DATA 410,100,400,107,400,112,374,112 DATA 374,110,368,110,368,94 RETURN ca:RESTORE c1 c1:DATA 125,55,160,58,6,152,73,190,98 DATA 192,102,186,109,166,108,164,104 RETURN col:RESTORE c2 c2:DATA 248,72,304,72,3,304,92,248,92,248,72 RETURN con:RESTORE c3 c3:DATA 534,58,532,52,2,546,51,546,55 LOCATE 8,69:PRINT "\" LOCATE 9,70:PRINT "?" RETURN de:RESTORE d1 d1:DATA 530,69,520,67,2,515,80,528,80 LOCATE 9,70:PRINT "<?" RETURN fl:RESTORE f1 f1:DATA 438,123,434,119,6,456,119,456,120 DATA 484,120,486,121,486,117,492,117 RETURN ga:RESTORE g1 g1:DATA 492,110,468,97,8,448,97,456,111,454,115,460,119,484,119 DATA 486,121,486,117,492,117 RETURN ha:RESTORE h1 h1:DATA 56,80,60,80,4,64,84,54,86,50,81,56,80 LOCATE 10,2:PRINT "O o ." LOCATE 9,9:PRINT "?" RETURN id:RESTORE i1 i1:DATA 200,27,194,40,11,198,41,188,48,184,56,232,57,236,50 DATA 220,51,216,45,212,46,214,40,206,36,208,27 RETURN il:RESTORE i2 i2:DATA 418,62,396,62,10,400,66,390,74,398,82 DATA 402,80,402,84,414,90,424,86 DATA 426,80,424,66,418,62 RETURN in:RESTORE i3 i3:DATA 446,64,428,64,7,422,66,426,79 DATA 424,85,438,83,442,79,446,78,446,64 RETURN io:RESTORE i4 i4:DATA 390,58,350,58,7,348,63,356,74 DATA 390,74,394,69,400,66,390,61,390,58 RETURN ka:RESTORE k1 k1:DATA 360,77,304,77,4,304,92 DATA 368,92,366,82,360,77 RETURN ky:RESTORE k2 k2:DATA 402,93,402,90,10,424,85,438,83 DATA 442,79,460,80,464,83,474,86 DATA 464,91,412,91,412,93,402,93 RETURN la:RESTORE l1 l1:DATA 421,127,416,122,7,398,122 DATA 404,116,400,111,376,111 DATA 376,117,380,123,378,129 RETURN me:RESTORE m1 m1:DATA 536,34,548,45,0 LOCATE 4,74:PRINT "?" RETURN md:RESTORE m2 m2:DATA 529,72,522,72,9,526,67,490,69 DATA 490,72,504,70,512,72,512,74,522,75,528,75,528,72 RETURN mas:RESTORE m3 m3:DATA 548,48,532,48,3,532,52,548,52,548,54 RETURN mich:RESTORE m4 m4:DATA 392,42,410,45,8,416,48,418,45 DATA 436,44,424,51,424,56 DATA 430,60,428,64,456,64 RETURN minn:RESTORE m5 m5:DATA 342,32,346,47,6,342,48,348,59 DATA 392,59,378,52,376,47,380,42 RETURN miss:RESTORE m6 m6:DATA 428,125,426,100,7,406,100 DATA 400,107,400,111,404,115 DATA 398,122,416,122,420,126 RETURN mo:RESTORE m7 m7:DATA 392,74,356,74,11,366,82,368,95 DATA 406,95,406,97,410,97,416,92 DATA 416,90,402,84,402,80,398,82,392,74 RETURN mont:RESTORE m8 m8:DATA 208,27,206,36,7,214,40,212,46 DATA 216,45,220,52,236,50,290,50,290,32 RETURN neb:RESTORE n1 n1:DATA 288,62,288,72,6,304,72,304,78 DATA 360,78,350,64,332,62,288,62 RETURN nev:RESTORE n2 n2:DATA 204,61,156,60,5,156,74,192,96 DATA 196,92,202,94,204,61 RETURN nh:RESTORE n3 n3:DATA 536,34,548,45,2,534,48,536,36 LOCATE 6,72:PRINT "<?" RETURN nj:RESTORE n4 n4:DATA 534,58,522,58,4,522,62,526,64 DATA 520,67,530,69 LOCATE 9,70:PRINT "?" RETURN nm:RESTORE n5 n5: DATA 238,120,240,91,4,296,91 DATA 296,117,260,117,260,119 RETURN ny:RESTORE n6 n6:DATA 476,59,516,55,6,532,59,528,60 DATA 548,56,532,59,530,47,524,38 LOCATE 7,65:PRINT "?" RETURN nc:RESTORE n7 n7: DATA 529,83,478,87,4,460,96,488,94 DATA 502,95,512,98 RETURN nd:RESTORE n8 n8: DATA 290,32,290,47,2,346,47,342,32 RETURN oh:RESTORE o1 o1: DATA 456,63,446,63,4,446,76,468,79 DATA 480,71,480,58 RETURN okl:RESTORE o2 o2: DATA 294,92,368,92,5,372,108,320,106 DATA 320,96,294,96,294,92 RETURN ore:RESTORE o3 o3: DATA 142,33,152,38,5,200,41,188,48 DATA 190,50,184,60,125,55 RETURN pa:RESTORE p1 p1: DATA 480,59,480,69,6,522,67,526,63 DATA 524,62,524,57,516,56,480,59 RETURN ri:RESTORE r1 r1: DATA 548,54,548,50,2,542,50,542,55 LOCATE 8,70:PRINT "\" LOCATE 9,71:PRINT "?" RETURN sc:RESTORE s1 s1: DATA 492,110,468,97,4,488,94 DATA 492,96,502,95,514,99 RETURN sd: RESTORE s2 s2: DATA 344,47,288,47,5,288,61,334,61 DATA 350,63,348,62,344,47 RETURN tn: RESTORE t1 t1: DATA 424,90,480,90,5,456,98,404,98 DATA 412,92,424,92,424,90 RETURN tx: RESTORE t2 t2: DATA 260,118,296,118,9,296,92,320,95 DATA 320,106,340,108,366,108,374,110 DATA 376,118,380,122,378,130 RETURN ut: RESTORE u1 u1: DATA 232,63,204,63,5,204,90,248,90 DATA 248,71,232,71,232,63 RETURN vt: RESTORE v1 v1: DATA 536,36,534,49,2,528,49,524,38 RETURN vir: RESTORE v2 v2: DATA 527,75,512,74,9,512,72,504,70 DATA 496,76,492,76,488,82,480,84 DATA 472,84,462,88,530,84 RETURN wa: RESTORE w1 w1: DATA 200,26,196,40,2,152,38,144,33 RETURN wv: RESTORE w2 w2: DATA 492,70,482,70,13,480,68,480,72,468,78,470,82 DATA 478,84,488,82,492,76,496,77 DATA 500,71,506,71,506,69,492,72,492,70 RETURN wi: RESTORE w3 w3: DATA 380,42,376,47,11,378,53,390,57 DATA 390,61,396,63,418,63,416,55 DATA 420,47,412,51,414,47,408,45,392,42 RETURN wy: RESTORE w4 w4: DATA 288,52,224,52,3,224,71,288,71,288,52 RETURN 2740 END talk: B$=TRANSLATE$ (A$) SAY B$ RETURN pickask: RANDOMIZE TIMER ask$(1)="which state is this?" ask$(2)=" now guess this state?" ask$(3)=" o k "+N$+". now what state is this ?" ask$(4)=" good "+N$+". try this one." ask$(5)=" here is another state." ask$(6)=" what state duz this look like?" ask$(7)=" no. try again." pp=INT(RND*7) IF pp=0 THEN pickask IF f=1 THEN pp=7 A$=ask$(pp) RETURN