1 REM Ins{nd av Lennart Einarsson <6554> 1987-05-27 18.09.13 (DUMP) 10 REM +-----------------------------+ 20 REM ! H[NGMAN.BAS ABC80 & 16k ! 30 REM ! (C)Lennart Einarsson ! 40 REM ! Tidigare gjort av ! 50 REM ! Stefan Persson ! 60 REM ! Jordgubbsv{gen 13 ! 70 REM ! 734 00 Hallstahammar ! 80 REM ! 0220/126 93 ! 90 REM +-----------------------------+ 100 IF PEEK(590%)<>40% ; INP(3%) 110 ; CHR$(12%)CUR(10%,0%)"Vill du ha instruktioner (N)"; : GET F$ 120 IF F$="j" OR F$="J" GOTO 130 ELSE 260 130 ; CHR$(12%) : ; TAB(7%)"*** H [ N G M A N ***" : ; 140 ; "I detta program ska du f|rs|ka gissa ocht{nka dig fram till de r{tta bokst{vernai ett ord." 150 ; : ; "Det ordet kan (om det {r tv} vid Datorn)den ena av er skriva in och sedan den andra f|rs|ka gissa." 160 ; : ; "[r du ensam s} har jag ord i Datasatser som jag slumpar mellan." 170 ; : ; "Det {r bara STORA bokst{ver allts} inga siffror eller andra tecken i ordet, t.ex. $/&%#." 180 ; : ; "Tryck p} n{r du l{st f{rdigt!"; : GET F$ 190 ; CHR$(12%) : ; TAB(7%)"*** H [ N G M A N ***" : ; 200 ; "Punkterna mitt p} sk{rmen motsvarar antalet bokst{ver i ordet." 210 ; : ; "Var g}ng du skriver in en bokstav kollarjag om den finns med i det hemliga ordet,{r bokstaven"; 220 ; " r{tt skrivs den in p}r{tt plats." 230 ; : ; "Om du gissar fel s} ritar jag upp en delav gubben, och skriver ut den bokstaven som {r fel l{ngst"; 240 ; " upp p} sk{rmen." : ; : ; "Du kan gissa fel 8 g}nger den 9 g}ngen blir du h{ngd!" 250 ; : ; "Tryck p} n{r du l{st f{rdigt!"; : GET F$ : ; CHR$(12%) 260 ; : ; : ; "Vill du skriva in ett eget ord? (N)"; : GET F$ 270 IF F$="J" OR F$="j" ; CHR$(12%) : Q2%=1 ELSE 350 280 ; : ; : ; "Det f}r vara h|gst 20 bokst{ver l}ngt!" 290 ; : ; "---->> "; : INPUTLINE A$ 300 A$=LEFT$(A$,LEN(A$)-2%) : L%=LEN(A$) : IF L%>20 OR L%<1 GOTO 340 310 FOR A%=1 TO L% : B$=MID$(A$,A%,1) : IF ASC(B$)<64 OR ASC(B$)>94 GOTO 330 ELSE NEXT A% 320 GOTO 350 330 ; CHR$(7%)CUR(20%,4%)"Endast STORA BOKST[VER sa jag !" : ; : ; TAB(8%)"Tryck p} "; : GET F$ 340 ; CHR$(12%) : GOTO 280 350 DIM F$(30%)=1 : FOR \%=0 TO 30 : F$(\%)="" : NEXT \% 360 ; CHR$(12%) : FOR I%=3 TO 23 : ; CUR(I%,0%);CHR$(151%); : NEXT I% 370 ; CUR(6%,0%)CHR$(131%) 380 IF Q2%=1 GOTO 410 : REM EGET ORD 390 RANDOMIZE : I=INT(RND*450)+1 400 RESTORE 750 : FOR A=1 TO I : READ A$ : NEXT A 410 Q2%=0 : L%=LEN(A$) : FOR A%=1 TO L% : ; CUR(11,A%);"_"; : NEXT A% 420 I%=0 : I=0 : A=0 : J1%=0 : A1%=0 430 B%=0 : \%=0 : D%=0 : B1%=0 : H%=0 : K%=0 : B$="" : A2=0 : S%=0 : R%=0 : G%=0 : L1%=0 440 FOR \%=0 TO 30 450 H%=1 : A=A+1 : ; CUR(1%,22%+I%); : GET F$(\%) 460 IF ASC(F$(\%))<64 OR ASC(F$(\%))>94 GOTO 470 ELSE 480 470 ; CHR$(7%)CUR(22%,0%)"Du m}ste skriva in STORA bokst{ver!" : A=A-1 : GOTO 450 480 ; CUR(22%,0%)SPACE$(39%) : IF A<2 GOTO 520 490 FOR D%=0 TO A-2 500 IF F$(\%)=F$(D%) GOTO 690 : REM J[MF\R TIDIGARE BOKST[VER,LIKA? 510 NEXT D% 520 I%=I%+1 : REM \KA "KOLUMN" F\R UTSKRIFT 530 ; CUR(1%,0%)"Felaktiga bokst{ver ->"; 540 ; CUR(1%,22%+I%);F$(\%) : REM UTSKRIFT AV FEL GISSNING ! 550 FOR K%=1 TO L% 560 B$=MID$(A$,K%,1) 570 IF F$(\%)=B$ GOTO 590 : REM ST[MMER BOKSTAVEN ? 580 B1%=B1%+1 : GOTO 620 590 G%=G%+1 : A2=A2+1 : ; CUR(11%,K%);F$(\%) : REM SKRIV UT R[TT GISSNING! 600 IF H%=2 GOTO 620 610 ; CUR(1%,22%+I%);" " : I%=I%-1 : H%=2 620 NEXT K% 630 IF G%=L% THEN 700 : REM FULLST[NDIGT ORD 640 IF A2<>0 GOTO 670 650 IF B1%=0 GOTO 670 660 B1%=0 : B%=B%+1 : L1%=L1%+1 : GOTO 1310 670 B1%=0 : A2=0 : NEXT \% 680 GOTO 1430 690 ; CHR$(7%)CUR(22%,0%)"Du har redan skrivit in den bokstaven!" : A=A-1 : GOTO 450 700 OUT 6,31 : FOR T=0 TO 1000 : NEXT T : OUT 6,0 710 ; CHR$(12%)TAB(4%)"GRATTIS DU HAR GISSAT R[TT !" 720 IF B%=0 U1%=U1%+1% : ; : ; "Det var inte fel p} n}gon gissning !" : ; : ; TAB(13%)"TURGUBBE!" : GOTO 740 ELSE 730 730 IF L1%=1% ; : ; TAB(4%)"Det var fel p} 1 gissning !" ELSE ; : ; TAB(4%)"Det var fel p}"L1%" gissningar !" 740 U2%=U2%+1% : ; : ; TAB(4%)"Det r{tta ordet var allts} " : ; : ; TAB(12%)A$ : GOTO 1450 750 DATA HUS,B]T,BIL,VOLVO,SAAB,SKRIVARE,TABULATORPAPPER,BANDSPELARE 760 DATA SONY,PHILIPS,LUXOR,KRETSAR,CASIO,HELVETIA,CERTINA,KLOCKA,TOMTEN 770 DATA KONTORSM\BLER,H\RF\N,DIKTAFON,KOMMUNIKATIONER,ETT,TV],FYRA,FEM,SEX 780 DATA SJU,]TTA,NIO,TIO,ALFA,BETA,GAMMA,DELTA,PI,MJ\LK,SM\R,MARGARIN,[GG 790 DATA VETEMJ\L,POTATIS,KAFFE,KONSUMENTPRISER,DR\MMAR,ELFENBENSKUSTEN 800 DATA BANANER,VINDRUVOR,PAPPERSMASSA,VATTENFALL,TEMPERATUR,NEDERB\RD 810 DATA MEDELHAVET,NORDSJ\N,\STERSJ\N,ATLANTEN,INDUSTRI,SOLEN,MERKURIUS 820 DATA VENUS,JORDEN,MARS,JUPITER,SATURNUS,URANUS,NEPTUNUS,PLUTO,M]NEN 830 DATA PROTON,NEUTRON,ELEKTRON,MOLEKYL,ISOTOPER,AMMONIAK,ANILIN,BIKARBONAT 840 DATA BITTERMANDEL,HJORTHORNSSALT,LUSTGAS,DIAMANT,GRANAT,OPAL,RUBIN,SAFIR 850 DATA ANTIKVITETSSAMLARE,UB]T,MODEM,TERMINALBORD,DATSUN,AUTOGRAF,ST]L 860 DATA AUTOMAT,AVDELNING,AVKORTA,AVLASTNING,AVSVIMMAD,BACILL,BAGAGE,SYRE 870 DATA BAGERI,BAJONETT,BAKBEN,BAKELSE,BAKFICKA,BAKPULVER,BAKTERIE,BALLONG 880 DATA BALSAM,BANAN,BEGYNNELSEBOKSTAV,BEH[RSKA,BEKLAGA,BERG,BIOGRAFSALONG 890 DATA BITSOCKER,BREV,BUTTER,B[LG,B[R,B\LD,B\N,CENSOR,CIRKEL,CIRKUS,CITRON 900 DATA CYLINDER,DAMMLUCKA,DAMMOLN,DAMMSUGARE,DARRA,DECHIFFRERA,DECIMAL 910 DATA DEPARTEMENT,DESSEMELLAN,DIESELMOTOR,DIS,DISKUSSION,RULLBANDSPELARE 920 DATA KASSETBANDSPELARE,BOKHYLLESERIE,EKO,ELEFANT,ELEKTRICITET,ELEV 930 DATA ENB[R,ETTHUNDRA,FALSK,FAMN,FEL,FINPOLERA,FLINTSKALLIG,FLIRT,TITAN 940 DATA FOLKSKOLA,FRIST]ENDE,FRISYR,FULLMAKT,F[LLSTOL,F[LT,F\RBI,F\RBIFART 950 DATA F\RLAMA,F\RNAMN,F\RTJUSANDE,GADD,GATA,GATFLICKA,GENUIN,GESTIKULERA 960 DATA GETING,GITARR,GLAPPA,GLAS,GLATT,GLASS,GLORIA,GL\GG,GL\D,GNISTA 970 DATA GRAFIK,GORMA,GRANAT[PPLE,GRAMMOFON,SKIVSPELARE,GRANNLAND,GRANNE 980 DATA GRYM,GR[SL\K,GR\TIG,G\K,GUMMERA,GUMMI,HAMMARE,HUMMER,HEMLIG,HJ[LP 990 DATA HUMBUG,HUSH]LL,HYBRID,HYPNOS,T[NDSTICKOR,INFORMATION,INLAGD,INRIKES 1000 DATA JODDLA,J[MMER,KAJENNPEPPAR,KAMELIONT,KANNIBAL,KARAMELL,KARAVAN,SILVER 1010 DATA KASTANJETT,KATRINPLOMMON,KLASSF\REST]NDARE,KOMMERSIELL,KOMEDI,SUMPGAS 1020 DATA KONVOJ,KRATER,KRIMSKRAMS,KRISTALLKLART,KURRAG\MMA,KUMMIN,KURIR,GULD 1030 DATA KVARTSLAMPA,K\RSB[R,MADONNABILD,MAKARONER,MANNEK[NG,MANIPULERA 1040 DATA MEDBORGARE,MENTALITET,NUMMER,N[KTERGAL,OLYMPIAD,ORGEL,ORAKEL,ONSDAG 1050 DATA OSKULDSFULL,PANORAMA,PANTER,PAPPER,PARAPLY,SKYSKRAPA,PARALELL,OTUR 1060 DATA PALSTERNACKA,PAPILJOTT,PINA,POLO,PORTNYCKEL,PORMASK,PRENUMERANT 1070 DATA PROFESSIONELL,PROPAGANDA,PROPELLER,PROTOKOLL,PUPILL,PUTTRA,P]K 1080 DATA RADIO,RADIUM,RAKET,RAKHYVEL,RETSAM,REVOLVER,RINGKLOCKA,RUBIN,TUR 1090 DATA ROCK,SABOTERA,SERVETT,SIRAP,PARIS,SKEPP,SKANDAL,SKAVA,KRAKE 1100 DATA SKYTTEL,SKYMMA,SLAMMER,SLISKIG,SL\DDER,SM[LL,SN[LL,SNURRA,SNUS 1110 DATA SOLIG,SPJUT,SPORADISK,SP[NNVIDD,STACK,STORM,ST[MBAND,STUMP,ST]ND 1120 DATA SVALKA,S[LLAN,S[LLSKAP,TALL,TANK,TANIG,TERMOMETER,TERMOSFLASKA 1130 DATA TERMINSAVGIFT,TAPPA,TAVELGALLERI,TENNSOLDAT,TOFFEL,TOMTE,TOLV 1140 DATA TORP,TRE,TRANSFORMATOR,TRAKTOR,UTTER,UV,VAGN,VASS,VIMPEL,VETE 1150 DATA VITAMIN,V]LD,V[LKOMMEN,YLLE,YXA,ZON,ZINK,ZOOLOG,],]KA,]TERUPPBYGGA 1160 DATA [VENTYR,[TTIKA,[NG,[PPELKART,\,\DLA,\GLA,\GON,\RT,\L,\K[ND,\NSKA 1170 DATA VIDEO,DATABANK,T[NDSTIFT,MIKROBRYTARE,ANALOG,DIGITAL,SOMMAR[NGARNA 1180 DATA DIMENSIONERNA,DATABANDSPELARE,ADVENTUR,ZORK,DIPLOMAT,FLEXMINNE 1190 DATA RETURGLAS,AFGHANISTAN,ALBANIEN,ALGERIET,USA,ANDORRA,KENYA,KINA 1200 DATA KOREA,ISRAEL,ITALIEN,JAMAICA,JAPAN,JORDANIEN,JUGOSLAVIEN,LIBYEN 1210 DATA ARGENTINA,AUSTRALIEN,BARBADOS,BELGIEN,KUWAIT,LIBANON,LIECHTENSTEIN 1220 DATA BOLIVIA,BRASILIEN,BULGARIEN,CAMBODJA,LUXEMBURG,MADAGASKAR,MALTA 1230 DATA MALDIVERNA,CANADA,CEYLON,CHILE,COLOMBIA,CUBA,MAROCKO,MEXICO,MONACO 1240 DATA MONGOLIET,NEDERL[NDERNA,CYPERN,DANMARK,ECUADOR,ETIOPIEN,NICARAGUA 1250 DATA NIGERIA,NORGE,PAKISTAN,PANAMA,FILIPPINERNA,FINLAND,FRANKRIKE,PERU 1260 DATA F[R\ARNA,PARAGUAY,POLEN,PORTUGAL,RUM[NIEN,SALVADOR,GAMBIA,GREKLAND 1270 DATA GUATEMALA,SCHWEIZ,SINGAPORE,INDIEN,IRAK,IRAN,IRLAND,ISLAND,SYRIEN 1280 DATA SOVJETUNIONEN,SPANIEN,STORBRITANNIEN,SVERIGE,SYDAFRIKA,VIETNAM,]LAND 1290 DATA TANZANIA,THAILAND,TJECKOSLOVAKIEN,TUNISIEN,UGANDA,BL]KLINT,H[STHOV 1300 DATA MASKROS,TOMAT,SPENAT,SPANNM]L,EXPRESSEN,AFTONBLADET,KV[LLSPOSTEN 1310 IF B%>11 GOTO 1430 1320 B1%=0 : ON B% RESTORE 1830,1830,1880,1550,1570,1640,1660,1680,1700,1720,1760 1330 IF B%=1 THEN S%=48 : REM S=ANTAL SETDOT POSITIONER 1340 IF B%=2 GOTO 1800 1350 IF B%=3 THEN S%=4 1360 IF B%=4 THEN S%=19 1370 IF B%=5 THEN S%=48 1380 IF B%=6 OR B%=7 THEN S%=7 1390 IF B%=8 OR B%=9 THEN S%=14 1400 IF B%=10 THEN S%=2 1410 IF B%=11 S%=6 1420 GOTO 1480 1430 U%=U%+1% : OUT 6,0 : OUT 6,137 : ; CUR(20,0)"DET R[TTA ORDET VAR "A$ 1440 POKE 32526,211,207,210,210,217,172,196,213,160,194,204,197,214,160,200,219,206,199,196,161 1450 ; CUR(22%,12%);"IGEN? (J/N)"; : GET F$ 1460 IF F$="N" OR F$="n" 1890 1470 IF F$="J" OR F$="j" ; CHR$(12%) : GOTO 260 ELSE 1450 1480 FOR J2%=1 TO S% 1490 READ R%,J1% 1500 SETDOT R%+23,J1%+36 1510 NEXT J2% 1520 IF B%=1 GOTO 1800 1530 IF B%=11 GOTO 1430 ELSE 620 1540 REM HUVUD 1550 DATA 5,16, 5,17, 5,18, 6,19, 6,15, 7,14, 7,20, 8,14, 9,14, 8,20, 9,20, 10,15, 10,19, 11,16, 11,17, 11,18 1560 DATA 7,16, 7,18, 8,17 1570 REM KROPP 1580 DATA 12,13, 12,14, 12,15, 12,16, 12,17, 12,18, 12,19 1590 DATA 12,20, 12,21, 13,13, 13,14, 13,15, 13,16, 13,17, 13,18, 13,19 1600 DATA 13,20, 13,21, 14,15, 14,16, 14,17, 14,18, 14,19 1610 DATA 15,15, 15,16, 15,17, 15,18, 15,19, 16,15, 16,16, 16,17, 16,18 1620 DATA 16,19, 17,15, 17,16, 17,17, 17,18, 17,19, 18,15 1630 DATA 18,16, 18,17, 18,18, 18,19, 19,15, 19,16, 19,17, 19,18, 19,19 1640 REM V.ARM 1650 DATA 14,13, 15,13, 16,13, 17,13, 18,13, 19,13, 20,13 1660 REM H.ARM 1670 DATA 14,21, 15,21, 16,21, 17,21, 18,21, 19,21, 20,21 1680 REM V.BEN 1690 DATA 20,15, 20,16, 21,15, 21,16, 22,15, 22,16, 23,15, 23,16, 24,15, 24,16, 25,15, 25,16, 26,15, 26,16 1700 REM H.BEN 1710 DATA 20,18, 20,19, 21,18, 21,19, 22,18, 22,19, 23,18, 23,19, 24,18, 24,19, 25,18, 25,19, 26,18, 26,19 1720 REM V.HAND 1730 DATA 20,12 1740 REM H.HAND 1750 DATA 20,22 1760 REM V.FOT 1770 DATA 27,14, 27,15, 27,16 1780 REM H.FOT 1790 DATA 27,18, 27,19, 27,20 1800 FOR A1%=1 TO 28 : SETDOT A1%+23,43 : NEXT A1% 1810 FOR A1%=7 TO 17 : SETDOT 24,A1%+36 : NEXT A1% : FOR A1%=2 TO 4 : SETDOT A1%+23,53 : NEXT A1% 1820 B%=3 : GOTO 1320 1830 DATA 34,1, 34,2, 34,3, 34,4, 34,5, 34,6, 34,7, 34,8 1840 DATA 34,9, 34,10, 34,11, 34,12, 34,13, 33,2, 33,3, 33,4 ,33,5 1850 DATA 33,6, 33,7, 33,8, 33,9, 33,10, 33,11, 33,12, 32,3 1860 DATA 32,4, 32,5, 32,6, 32,7, 32,8, 32,9, 32,10, 32,11, 31,4 1870 DATA 31,5, 31,6, 31,7, 31,8, 31,9, 31,10, 30,5, 30,6, 30,7, 30,8, 30,9, 29,6, 29,7, 29,8 1880 DATA 5,8, 4,9, 3,10, 2,11 1890 ; CHR$(12%)"Du gjorde i alla fall"U%" grovmissar !" 1900 ; : ; "Men du kn{ckte det"U2%" ggr." 1910 ; : ; "Och du lyckades helt"U1%" ggr." 1920 ; : ; "Duktig idiot !" 1930 END