start tok64 d64-rj5LaH 0 POKE53280,0:POKE53281,0 10 PRINT"{clear}{cyan}torn{.*18}creative computing{down*4} 100 REM*** initera 110 e=.:FORd=1TO5:FORn=1TO3:t(d,n)=.:NEXT:NEXT 180 PRINT"{white}spelet om tornen i hanoi.":PRINT"{cm t*25} 200 PRINT"{green}du skall flytta skivorna fr]n det{space*7}v[nstra till det h{pound}gra "; 205 PRINT"tornet. en i{space*5}taget och du f]r aldrig l[gga en st{pound}rre p] en "; 210 PRINT"mindre skiva.{down} 215 INPUT"{yellow}hur m]nga skivor (max 6)";s 230 m=.:FORq=2TO7:IFq=sTHEN350 260 NEXT:e=e+1:IFe>2THEN310 290 PRINT"{red}tyv[rr, det kan jag inte g{pound}ra.{down}":GOTO215 310 PRINT"{green}okej din smating, om duinte kan spela{space*3}spelet riktigt tar jag mitt "; 320 PRINT"spel och g]rhem! adj{pound}!":END 340 REM*** stapla skivor fr]n den minsta till den st{pound}rsta 350 PRINT"{orange}i detta spel anger vi skivorna med{space*6}sifferbeteckningar. 1 "; 355 PRINT"betyder den minstaskivan, 3 n[sta storlek, 5 n[sta osv. omdu spelar "; 360 PRINT"med 2 skivor s] kallas de f{pound}r 9 och 11. med 3 skivor blir beteck- 365 PRINT"ningarna 7, 9 och 11, etc. tornen{space*7}numreras fr]n v[nster till "; 370 PRINT"h{pound}ger med 1{space*2}till 3. vi b{pound}rjar med skivorna p] torn 1och f{pound}rs{pound}ker "; 375 PRINT"flytta dem till torn 3.{space*4}lycka till." 380 PRINT"{light blue}tryck en tangent:":POKE198,.:WAIT198,1:POKE198,.:PRINT"{up}{space*17}" 400 y=7:d=11 420 FORx=sTO1STEP-1:t(y,1)=d:d=d-2:y=y-1:NEXT 470 GOSUB1230 480 e=. 485 INPUT"{yellow}vilken skiva vill du flytta";d 510 IF(d-1)*(d-3)*(d-5)*(d-7)*(d-9)*(d-11)=.THEN580 520 PRINT"{orange}felaktig inmatning{.*3}du f]r bara skriva 1,3,5,9, eller 11. 530 e=e+1:IFe>1THEN560 550 GOTO485 560 PRINT"{green}sluta st{pound}ra mig. g] och lek med n]gon{space*3}annan.":END 580 REM*** kolla om skivan ligger under n]gon annan 590 FORr=1TO7:FORc=1TO3:IFt(r,c)=dTHEN640 620 NEXT:NEXT:GOTO520 640 FORq=rTO1STEP-1:IFt(q,c)=.THEN660 650 IFt(q,c)1THEN780 750 PRINT"{blue}jag antar att du tryckte p] fel tangent.men akta dig, jag "; 760 PRINT"till]ter bara ett{space*5}misstag.":GOTO705 780 PRINT"{green}jag f{pound}rs{pound}kte varna dig men du lyssnade{space*2}inte. adj{pound} din skurk.":END 800 FORr=1TO7:IFt(r,n)<>.THEN840 820 NEXT:GOTO880 835 REM*** kolla att skivan placeras p] en st{pound}rre 840 IFd.THEN970 950 NEXT:u=7:GOTO980 965 REM*** flytta skiva och s[tt tidi- gare plats till 0 970 u=u-1 980 t(u,n)=t(v,w):t(v,w)=. 995 REM*** skriv ut aktuellt l[ge 1000 GOSUB1230 1010 REM*** kolla om klart 1020 m=m+1 1030 FORr=1TO7:FORc=1TO2:IFt(r,c)<>.THEN1090 1040 NEXT:NEXT:GOTO1120 1090 IFm=<128THEN480 1100 PRINT"{pink}tyv[rr har jag f]tt order att avbryta{space*3}om du g{pound}r mer [n 128 "; 1110 PRINT"flyttningar.":END 1120 IFm<>2^s-1THEN1140 1130 PRINT"{white}gratulerar!! 1140 PRINT"{orange}du har klarat det p]"m"flyttningar.{down} 1150 INPUT"{yellow}vill du f{pound}rs{pound}ka igen (ja/nej)";a$ 1160 IFLEFT$(a$,1)="n"THENPRINT"{down}{light blue}tack f{pound}r spelet!{down}":END 1170 IFLEFT$(a$,1)="j"THEN110 1180 INPUT"{down}{yellow}svara med ja eller nej";a$:GOTO1160 1220 m=m+1 1230 REM*** subrutin f{pound}r utskrift 1240 PRINT"{white}{clear}tornen i hanoi {yellow}antal drag="m:PRINT:FORk=1TO7:z=5:FORj=1TO3:POKE646,j+1 1270 IFt(k,j)=.THENPRINTTAB(z)"{reverse off}{sh -}";:GOTO1340 1280 PRINTTAB(z-INT(t(k,j)/2));:FORv=1TOt(k,j):PRINT"{reverse on}P";:NEXT 1340 z=z+13:NEXT:PRINT:NEXT 1350 PRINT"{red}{sh asterisk*5}{cm e}{sh asterisk*5}{space*2}{cyan}{sh asterisk*5}{cm e}{sh asterisk*5}{space*2}{156}{sh asterisk*5}{cm e}{sh asterisk*5}{light blue}":PRINTTAB(4)1TAB(17)2TAB(30)3 1360 RETURN stop tok64 (bastext 1.0)