10 REM +-----------------------------+
20 REM ! GUBBEN .BAC !
30 REM ! VER 2.0 /1981-04-05 !
40 REM ! (C)STEFAN PERSSON !
50 REM ! gjort av Stefan Persson !
60 REM ! Jordgubbsv{gen 13 !
70 REM ! 734 00 Hallstahammar !
80 REM ! 0220/126 93 !
90 REM +-----------------------------+
100 ; CHR$(12%)CUR(10%,0%)"Vill du ha instruktioner (J/N)"; : GET F$
110 IF F$="j" OR F$="J" GOTO 120 ELSE 240
120 ; CHR$(12%) : ; TAB(7%)"***H [ N G A**G U B B E***" : ;
130 ; "I detta program ska du f|rs|ka gissa ocht{nka dig fram till de r{tta bokst{vernai ett ord."
140 ; : ; "Det ordet kan (om det {r tv} vid Datorn)den ena av er skriva in och sedan den andra f|rs|ka gissa."
150 ; : ; "[r du ensam s} har jag ord i Datasatser som jag slumpar mellan."
160 ; : ; "Det {r bara STORA bokst{ver allts} inga siffror eller andra tecken i ordet, t.ex. $/&%#."
170 ; : ; "Tryck p} n{r du l{st f{rdigt!"; : GET F$
180 ; CHR$(12%) : ; TAB(7%)"***H [ N G A**G U B B E***" : ;
190 ; "Punkterna mitt p} sk{rmen motsvarar antalet bokst{ver i ordet."
200 ; : ; "Var g}ng du skriver in en bokstav kollarjag om den finns med i det hemliga ordet,{r bokstaven";
210 ; " r{tt skrivs den in p}r{tt plats."
220 ; : ; "Om du gissar fel s} ritar jag upp en delav gubben, och skriver ut den bokstaven som {r fel l{ngst";
230 ; " upp p} sk{rmen." : ; : ; "Du kan gissa fel 8 g}nger den 9 g}ngen blir du h{ngd!"
240 ; : ; : ; "Vill du skriva in ett eget ord? (J/N)"; : GET F$
250 X1=0 : IF F$="J" OR F$="j" THEN Q2=1 ELSE 320
260 ; : ; : ; "Det f}r vara h|gst 20 bokst{ver l}ngt!" : INPUT A$
270 L=LEN(A$) : IF L>20 OR L<1 GOTO 310
280 FOR A%=1 TO L : B$=MID$(A$,A%,1) : IF ASC(B$)<64 OR ASC(B$)>94 GOTO 300 ELSE NEXT A%
290 GOTO 320
300 ; CHR$(7%) : ; "Det f}r bara vara STORA bokst{ver i ordet!" : ; "Tryck p} "; : GET F$
310 ; CHR$(12%)CUR(9%,0%); : GOTO 260
320 DIM F$(30%)=1 : FOR \%=0 TO 30 : F$(\%)="" : NEXT \%
330 ; CHR$(12%) : FOR I%=3 TO 23 : ; CUR(I%,0%);CHR$(151%); : NEXT I%
340 IF Q2=1 GOTO 370 : REM EGET ORD
350 RANDOMIZE : I=INT(RND*19)+1
360 RESTORE 730 : FOR A=1 TO I : READ A$ : NEXT A
370 Q2=0 : L=LEN(A$) : FOR A%=1 TO L : ; CUR(11,A%);"0"; : NEXT A%
380 A%=0 : I%=0 : I=0 : A=0 : J1=0 : A1=0 : [%=0 : \$=""
390 B=0 : \%=0 : D%=0 : B1=0 : H=0 : K%=0 : B$="" : A5=0 : O=0 : S=0 : [=0 : K=0 : R=0 : G=0 : L1%=0
400 FOR \%=0 TO 30
410 H=1 : A=A+1 : ; CUR(2%,0%); : GET F$(\%)
420 IF ASC(F$(\%))<64 OR ASC(F$(\%))>94 GOTO 430 ELSE 440
430 ; CHR$(7%)CUR(20%,0%)"Du m}ste skriva in STORA bokst{ver!" : ; "Tryck p} "; : GET F$ : A=A-1 : GOTO 650
440 IF A<2 GOTO 480
450 FOR D%=0 TO A-2
460 IF F$(\%)=F$(D%) GOTO 640 : REM J[MF\R TIDIGARE BOKST[VER,LIKA?
470 NEXT D%
480 I%=I%+1 : REM \KA "KOLUMN" F\R UTSKRIFT
490 ; CUR(0%,I%);F$(\%) : REM UTSKRIFT AV FEL GISSNING
500 FOR K%=1 TO L
510 B$=MID$(A$,K%,1)
520 IF F$(\%)=B$ GOTO 540 : REM ST[MMER BOKSTAVEN?
530 B1=B1+1 : GOTO 570
540 G=G+1 : A5=A5+1 : ; CUR(11%,K%);F$(\%) : REM SKRIV UT R[TT GISSNING!
550 IF H=2 GOTO 570
560 ; CUR(O%,I%);" " : I%=I%-1 : H=2
570 NEXT K%
580 IF G=L THEN 660 : REM FULLST[NDIGT ORD
590 IF A5<>0 GOTO 620
600 IF B1=0 GOTO 620
610 B1=0 : B=B+1 : L1%=L1%+1 : GOTO 740
620 B1=0 : A5=0 : NEXT \%
630 GOTO 860
640 ; CHR$(7%)CUR(20%,0%)"Du har redan skrivit in den bokstaven!" : ; "Tryck p} "; : GET F$ : A=A-1
650 ; CUR(20%,0%)" " : ; " " : GOTO 410
660 ; CHR$(12%)"GRATTIS DU HAR GISSAT R[TT." : ;
670 IF B=0 ; "DET VAR INTE FEL P] N]GON GISSNING! TURGUBBE!" ELSE 690
680 GOTO 700
690 IF L1%=1% ; "DET VAR FEL P] 1 GISSNING!" ELSE ; "DET VAR FEL P]";L1%" GISSNINGAR!"
700 ; CUR(5%,0%);"DET R[TTA ORDET VAR ALLTS] " : ; A$ : ; CUR(10%,0%)"IGEN? (J/N)"; : POKE 65013%,0% : GET F$
710 IF F$="J" OR F$="j" GOTO 240
720 IF F$="N" OR F$="n" GOTO 900 ELSE 700
730 DATA STENHUS,JOJO,ANKA,DATOR,HUS,HAV,SN\,KLO,STEN,]KER,SKOG,STAD,F]GEL,[LG,SK]P,SYMASKIN,]L,MUS,BANDSPELARE
740 IF B>11 GOTO 860
750 B1=0 : ON B RESTORE 1260,1260,1310,980,1000,1070,1090,1110,1130,1150,1190
760 IF B=1 THEN S=48 : REM S=ANTAL SETDOT POSITIONER
770 IF B=2 GOTO 1230
780 IF B=3 THEN S=4
790 IF B=4 THEN S=19
800 IF B=5 THEN S=48
810 IF B=6 OR B=7 THEN S=7
820 IF B=8 OR B=9 THEN S=14
830 IF B=10 THEN S=2
840 IF B=11 S=6
850 GOTO 910
860 ; CUR(20,0)"DET R[TTA ORDET VAR "A$
870 POKE 32464,211,207,210,210,217,172,196,213,160,194,204,197,214,160,200,219,206,199,196,161
880 ; CUR(22%,0%);"IGEN? (J/N)"; : GET F$
890 IF F$="J" OR F$="j" ; CHR$(12%)CUR(10%,0%); : GOTO 240
900 IF F$="N" OR F$="n" ; CHR$(12%)"Adj|!" : END ELSE GOTO 880
910 FOR J2=1 TO S
920 READ R,J1
930 SETDOT R+23,J1+36
940 NEXT J2
950 IF B=1 GOTO 1230
960 IF B=11 GOTO 860 ELSE 570
970 REM HUVUD
980 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
990 DATA 7,16, 7,18, 8,17
1000 REM KROPP
1010 DATA 12,13, 12,14, 12,15, 12,16, 12,17, 12,18, 12,19
1020 DATA 12,20, 12,21, 13,13, 13,14, 13,15, 13,16, 13,17, 13,18, 13,19
1030 DATA 13,20, 13,21, 14,15, 14,16, 14,17, 14,18, 14,19
1040 DATA 15,15, 15,16, 15,17, 15,18, 15,19, 16,15, 16,16, 16,17, 16,18
1050 DATA 16,19, 17,15, 17,16, 17,17, 17,18, 17,19, 18,15
1060 DATA 18,16, 18,17, 18,18, 18,19, 19,15, 19,16, 19,17, 19,18, 19,19
1070 REM V.ARM
1080 DATA 14,13, 15,13, 16,13, 17,13, 18,13, 19,13, 20,13
1090 REM H.ARM
1100 DATA 14,21, 15,21, 16,21, 17,21, 18,21, 19,21, 20,21
1110 REM V.BEN
1120 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
1130 REM H.BEN
1140 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
1150 REM V.HAND
1160 DATA 20,12
1170 REM H.HAND
1180 DATA 20,22
1190 REM V.FOT
1200 DATA 27,14, 27,15, 27,16
1210 REM H.FOT
1220 DATA 27,18, 27,19, 27,20
1230 FOR A1=1 TO 28 : SETDOT A1+23,43 : NEXT A1
1240 FOR A1=7 TO 17 : SETDOT 24,A1+36 : NEXT A1 : FOR A1=2 TO 4 : SETDOT A1+23,53 : NEXT A1
1250 B=3 : GOTO 750
1260 DATA 34,1, 34,2, 34,3, 34,4, 34,5, 34,6, 34,7, 34,8
1270 DATA 34,9, 34,10, 34,11, 34,12, 34,13, 33,2, 33,3, 33,4 ,33,5
1280 DATA 33,6, 33,7, 33,8, 33,9, 33,10, 33,11, 33,12, 32,3
1290 DATA 32,4, 32,5, 32,6, 32,7, 32,8, 32,9, 32,10, 32,11, 31,4
1300 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
1310 DATA 5,8, 4,9, 3,10, 2,11