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