BASIC je jazyk pro snadné experimentování. Měl umožnit lidem vzít nějakou ideu a vyjádřit ji jako program prováděný počítačem. Jedna z ideí, co se mi v poslední době líbila, zahrnovala pohyb robota po dvorku a kladení značek. Připravil jsem tedy simulaci v BASICu a přidávám ji jako další ukázkový program.
Kód:
30 REM SIMULACE ROBOTA KARLA
31 DA.1,0,1,0,1,0,1,1,0
32 DA.1,0,1,0,1,0,1,0,1
33 CLS:DIMA(9,9),O$(99),S(9)
34 F.Y=7TO8:F.X=1TO9:READA(X,Y):CURSORX,Y:IFA(X,Y)?"1"
35 N.:N.
36 READO$(I):IFO$(I)I=I+1:GOTO36
40 X=9:Y=X:DX=1
41 F.L=1TO9:P$="POZICE":GOSUB66:N.:END
66 I=0
67 IFO$(I)<>P$I=I+1:GOTO67
69 REM PROVED PRIKAZ
70 I=I+1:P$=O$(I)
71 CURSOR0,11:?I":"P$;:IFP$="KDYZ"I=I+2:?" "O$(I-1)" "O$(I)ELSE?SPC(10)
72 IFE=0:CURSORX,Y:?MI.("^_ \xc6ü",2*DY+DX+3,1);:WAIT500:CURSORX,Y:IFA(X,Y)?STR$(A(X,Y)):WAIT500ELSE?" ":WAIT500
73 IFP$<>"KDYZ"IFP$<>"JINAK"GOTO77
74 IFEGOSUB70:GOTO70
75 IFP$="KDYZ"AND(O$(I-1)="JE"XORA(X,Y)=0)ORP$="JINAK"ANDKGOSUB70:K=0:GOTO70
76 E=1:GOSUB70:E=0:K=1:GOTO70
77 IFP$="KONEC"RETURNELSEIFEGOTO70
78 IFP$="KROK"X=X+DX:Y=Y+DY:GOTO70
79 IFP$="VLEVOV"T=DX:DX=DY:DY=-T:GOTO70
80 IFP$="POLOZ"A(X,Y)=A(X,Y)+1:GOTO70
81 IFP$="ZVEDNI"A(X,Y)=A(X,Y)-1:GOTO70
82 S(J)=I:J=J+1:GOSUB66:J=J-1:I=S(J):GOTO70
90 DA.HORNI
91 DA.VLEVOV,KROK,KROK,VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,KROK,KROK,POLOZ,KONEC,JINAK,KROK,KROK,KONEC,VLEVOV,KONEC
92 DA.DOLNI
93 DA.VLEVOV,KROK,VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,KROK,POLOZ,KONEC,JINAK,KROK,KONEC,VLEVOV,KONEC
94 DA.PRENOS
95 DA.VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,ZVEDNI,KDYZ,JE,ZNACKA,ZVEDNI,KROK,POLOZ,KONEC,JINAK,POLOZ,KROK,KONEC,KONEC,JINAK,KROK,KONEC,VLEVOV,VLEVOV,KONEC
96 DA.POZICE
97 DA.HORNI,DOLNI,PRENOS,KONEC
98 DA.,