100 RANDOMIZE
280 PRINT "WHAT ARE YOUR LENGTH AND WIDTH (E. G. 13,10)";
290 INPUT R9,C9
300 DIM W(25,23),V(25,23)
305 DIM D(10)
310 LET N9=R9*C9
320 FOR Q=1 TO R9
321 FOR Z=1 TO C9
322 LET W(Q,Z)=0
323 LET V(Q,Z)=0
324 NEXT Z
325 NEXT Q
340 LET B=0
360 LET F=INT(RND(B)*C9+1)
370 PRINT
380 FOR C=1 TO C9
390 IF C=F GOTO 420
400 PRINT ":--";
410 GOTO 430
420 PRINT ": ";
430 NEXT C
440 PRINT ":"
450 LET R=1
460 LET C=F
470 LET N=1
480 LET W(R,C)=N
580 LET D=0
600 IF C=1 GOTO 650
610 IF W(R,C-1)>0GOTO 650
620 LET D=D+1
630 LET D(D)=1
650 IF C=C9 GOTO 700
660 IF W(R,C+1)>0GOTO 750
670 LET D=D+1
680 LET D(D)=2
700 IF R=1 GOTO 750
710 IF W(R-1,C)>0GOTO 750
720 LET D=D+1
730 LET D(D)=3
750 IF R<R9 GOTO 780
760 IF B=1 GOTO 820
770 GOTO 790
780 IF W(R+1,C)>0 GOTO 820
790 LET D=D+1
800 LET D(D)=4
820 IF D=0 GOTO 1100
830 LET X=INT(D*RND(X)+1)
840 IF D(X)=4 GOTO 980
841 IF D(X)=3 GOTO 940
842 IF D(X)=2 GOTO 900
860 LET C=C-1
870 LET V(R,C)=2
880 GOTO 1040
900 LET V(R,C)=V(R,C)+2
910 LET C=C+1
920 GOTO 1040
940 LET R=R-1
950 LET V(R,C)=1
960 GOTO 1040
980 LET V(R,C)=V(R,C)+1
990 LET R=R+1
1000 IF R<=R9 GOTO 1040
1010 LET B=1
1020 GOTO 1140
1040 LET N=N+1
1050 LET W(R,C)=N
1060 IF N<N9 GOTO 580
1080 GOTO 1190
1100 LET C=C+1
1110 IF C<=C9 GOTO 1160
1120 LET R=R+1
1130 IF R<=R9 GOTO 1150
1140 LET R=1
1150 LET C=1
1160 IF W(R,C)>0 GOTO 580
1170 GOTO 1100
1190 FOR R=1 TO R9
1200 PRINT "I";
1210 FOR C=1 TO C9
1220 IF V(R,C)<2 GOTO 1250
1230 PRINT " ";
1240 GOTO 1260
1250 PRINT " I";
1260 NEXT C
1270 PRINT
1280 FOR C=1 TO C9
1290 IF V(R,C)/2=INT(V(R,C)/2) GOTO 1320
1300 PRINT ": ";
1310 GOTO 1330
1320 PRINT ":--";
1330 NEXT C
1340 PRINT ":"
1360 NEXT R
1370 STOP
9999 END