|
> No.4835[元記事へ]
不自由なハノイの塔
●条件
3枚目は真ん中(の棒)には置けない (N>=3)
LET N=4 !'N>=3
DIM S(N,3),A$(0 TO N)
MAT READ A$
PRINT "円盤";N;"枚"
PRINT "No. 0"
FOR K=1 TO N
LET S(K,1)=1
PRINT A$(K)
NEXT K
FOR I=1 TO 8*3^(N-3)-1
IF MOD(I,2)=1 THEN
IF MOD(I,16)<=8 THEN
LET L2=0
LET S(1,1)=0
LET S(1,2)=0
LET S(1,3)=0
LET L1=MOD(L1,3)+1
SELECT CASE L1
CASE 1
LET S(1,3)=1
CASE 2
LET S(1,2)=1
CASE 3
LET S(1,1)=1
END SELECT
ELSE
LET L1=0
LET S(1,1)=0
LET S(1,2)=0
LET S(1,3)=0
LET L2=MOD(L2,3)+1
SELECT CASE L2
CASE 1
LET S(1,1)=1
CASE 2
LET S(1,2)=1
CASE 3
LET S(1,3)=1
END SELECT
END IF
ELSEIF MOD(I,8)=4 THEN
SWAP S(3,1),S(3,3)
ELSEIF MOD(I,4)=2 THEN
LET S(2,1)=0
LET S(2,2)=0
LET S(2,3)=0
LET L3=MOD(L3,4)+1
SELECT CASE L3
CASE 1
LET S(2,2)=1
CASE 2
LET S(2,3)=1
CASE 3
LET S(2,2)=1
CASE 4
LET S(2,1)=1
END SELECT
ELSE
FOR J=4 TO N
IF S(J-1,1)=0 AND S(J,1)=1 AND S(J-1,2)=0 OR S(J-1,2)=0 AND S(J,2)=1 AND S(J-1,1)=0 THEN
SWAP S(J,1),S(J,2)
EXIT FOR
END IF
IF S(J-1,1)=0 AND S(J,1)=1 AND S(J-1,3)=0 OR S(J-1,3)=0 AND S(J,3)=1 AND S(J-1,1)=0 THEN
SWAP S(J,1),S(J,3)
EXIT FOR
END IF
IF S(J-1,3)=0 AND S(J,3)=1 AND S(J-1,2)=0 OR S(J-1,3)=0 AND S(J-1,2)=0 AND S(J,2)=1 THEN
SWAP S(J,3),S(J,2)
EXIT FOR
END IF
NEXT J
END IF
PRINT REPEAT$("-",LEN(A$(0))*3)
PRINT "No.";I
FOR J=1 TO N
FOR K=1 TO 3
IF S(J,K)=1 THEN
PRINT A$(J)
EXIT FOR
END IF
PRINT A$(0);
NEXT K
NEXT J
NEXT I
DATA " "
DATA " ■ "
DATA " ■■■ "
DATA " ■■■■■ "
DATA " ■■■■■■■ "
DATA " ■■■■■■■■■ "
DATA " ■■■■■■■■■■■ "
DATA " ■■■■■■■■■■■■■ "
END
実行結果
円盤 4 枚
No. 0
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 1
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 2
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 3
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 4
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 5
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 6
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 7
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 8
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 9
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 10
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 11
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 12
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 13
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 14
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 15
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 16
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 17
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 18
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 19
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 20
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 21
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 22
■
■■■
■■■■■
■■■■■■■
------------------------------------------------------------------------------------------
No. 23
■
■■■
■■■■■
■■■■■■■
|
|