10 declare external sub main.format
20 declare external sub main.post
30 declare external sub main.put
40 declare external function main.check
50 declare external sub main.finish
!**************** メインルーチン ****************
110 call format !formatを呼び出し
160 let w=40 !格子の幅
165 let left=0 !初期化
210 do until right=1
......
299 loop
990 call finish !finishを呼び出し
999 end
!**************** サブルーチン ****************
1000 module main !モジュール定義
1010 public sub format
1020 public sub post
1030 public sub put
1040 public function check
1050 public sub finish
1100 share numeric w,r,pieces(0 to 7,0 to 7),p
......
!---------------- ▽駒を置く ----------------
3000 external sub put(x,y)
......
3300 !パスだった場合の処理
3310 select case pass
......
3500 case 2
3510 call finish !ゲーム終了
3599 end select
3999 end sub
!---------------- △駒を置く ----------------
......
!---------------- ▽終了処理 ----------------
5000 external sub finish
5999 end sub
!---------------- △終了処理 ----------------
9999 end module
2両者の駒の総数を数える
それでは、両者の駒の総数を数えてみましょう。これは簡単です。白駒、黒駒の総数を表す変数 white, black を用意し、マス目を片っ端から調べていって、もし値が 1 ならば white に 1 を足し、-1 ならば black に 1 を足すようにすれば良いのです。これはすぐにソースにできますね。最後にプログラムの終了する命令文、stop文を追加しておきましょう。
!---------------- ▽終了処理 ----------------
5000 external sub finish
5100 !駒の総数を数える
5110 let white=0 !初期化
5111 let black=0 ! 〃
5120 for i=0 to 7
5130 for j=0 to 7
5140 select case pieces(i,j)
5150 case 1
5155 let white=white+1
5160 case -1
5165 let black=black+1
5170 case 0
5175 !何もしない
5179 end select
5189 next j
5199 next i
5900 !プログラムを終了
5910 stop
5999 end sub
!---------------- △終了処理 ----------------