ここはミラーサイトです。本物は http://retropc.net/x68000/software/develop/as/has060/hanoi.htm
counterJanuary 6, 2001X68000 LIBRARYJapanese to English by @nifty
X68000 LIBRARY ソフトウェア プログラミング アセンブラ HAS060.X
HANOI.S2006-01-01(Sun) 02:59

HAS060.Xの添付サンプルです。


HANOI.S
*       〜〜〜〜〜〜〜〜〜〜〜〜
*       〜〜〜 ハノイの塔 〜〜〜
*       〜〜〜〜〜〜〜〜〜〜〜〜
*
*       アセンブラでハノイの塔を解くためのプログラムです。
*       .R 実行形式にして TYPE すると、解法が“図解”されます。
*       円盤の枚数は次の N で指定します。

        N:=7

*       以下は、変更する必要はありません。

        ESC:=27

put     .macro  c
                .dc.b   c
        .endm

xline   .macro  n,c
                .dcb.b  n,c
        .endm

clear   .macro
                .dc.b   ESC,'*'
        .endm

locate  .macro  x,y
                .dc.b   ESC,'=',' '+y,' '+x
        .endm

        windowx:=96
        windowy:=31

        disk:='%'
        space:=' '
        pole:='|'
        base:='#'

        core:=2
        hat:=2

        width:=N+core

        center2:=windowx/2
        center1:=center2-width*2
        center3:=center2+width*2

        left:=center1-width
        right:=center3+width
        top:=(windowy-N)/2-hat
        bottom:=top+hat+N

        clear

        locate  left,bottom
        xline   right-left+1,base

        i:=1
        .rept   3
                j:=top
                .rept   bottom-top
                        locate  center%i,j
                        put     pole
                        j:=j+1
                .endm
                i:=i+1
        .endm

        number1:=N
        number2:=0
        number3:=0

        i:=1
        .rept   N
                size1%i:=width-i
                locate  center1-size1%i,bottom-i
                xline   size1%i*2+1,disk
                i:=i+1
        .endm

move_disk       .macro  a,b
                p:=a
                q:=b
                i:=number%p
                j:=bottom-i
                .rept N-i+hat+1
                        locate  center%p-size%p%i,j-1
                        xline   size%p%i*2+1,disk
                        locate  center%p-size%p%i,j
                        xline   size%p%i,space
                        put     pole
                        xline   size%p%i,space
                        j:=j-1
                .endm
                j:=center%p-size%p%i
                locate  j,top-2
                xline   size%p%i*2+1,disk
                locate  j,top-1
                xline   size%p%i*2+1,space
                .if     center%p<center%q
                        .rept   center%q-center%p
                                locate  j+size%p%i*2+1,top-2
                                put     disk
                                locate  j,top-2
                                put     space
                                j:=j+1
                        .endm
                .else
                        .rept   center%p-center%q
                                locate  j-1,top-2
                                put     disk
                                locate  j+size%p%i*2,top-2
                                put     space
                                j:=j-1
                        .endm
                .endif
                locate  j,top-1
                xline   size%p%i*2+1,disk
                locate  j,top-2
                xline   size%p%i*2+1,space
                locate  j,top
                xline   size%p%i*2+1,disk
                locate  j,top-1
                xline   size%p%i*2+1,space
                k:=number%q+1
                j:=top+1
                .rept N-k+hat
                        locate  center%q-size%p%i,j
                        xline   size%p%i*2+1,disk
                        locate  center%q-size%p%i,j-1
                        xline   size%p%i,space
                        put     pole
                        xline   size%p%i,space
                        j:=j+1
                .endm
                number%p:=number%p-1
                number%q:=k
                size%q%k:=size%p%i
        .endm

hanoi   .macro  n,a,b,c
                .if n>0
                        hanoi   n-1,a,c,b
                        move_disk       a,c
                        hanoi   n-1,b,a,c
                .endif
        .endm

        hanoi   N,1,2,3

        locate  0,bottom+2

給料前でお金がない・・ 海外旅行保険の加入はコチラ! そろそろ結婚適齢期???
[PR] | 店舗デザイン監視カメラ浦和熊谷木更津新橋中国SEO対策消費者金融車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFXアフィリエイトFXホームページ制作デイトレードハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - レップチェッカー - 海外旅行 - 国際電話 - ホノルルマラソン - 掲示板監視 - 誹謗中傷 - 宿泊料金比較 - ノースウェスト 航空券 - 旅館