.
中高生のための
今から始めるプログラミング
01. 盤面の初期化
最終更新日:2004/02/12

<<BACK ↑HOME NEXT>>
オセロを作るには、まず、一番最初の状態の盤面が必要になります。ここでは、その盤面を用意しましょう。
 

 1  下準備
まずは、モジュール(main)と、初期化を行うサブルーチン(format)、そしてそれを呼び出すメインルーチンを用意します。
 
10 declare external sub main.format

!**************** メインルーチン ****************
110 call format  !formatを呼び出し

999 end

!**************** サブルーチン ****************
1000 module main  !モジュール定義
1010 public sub format

!---------------- ▽初期化 ----------------
1500 external sub format

1999 end sub
!---------------- △初期化 ----------------

9999 end module
 

 2  盤面行列を用意する
では、実際に盤面の配列(pieces)を用意しましょう。まずは配列の定義をする必要がありますので、1010行目以降に、
 
!**************** サブルーチン ****************
1000 module main  !モジュール定義
1010 public sub format
1100 share numeric pieces(0 to 7,0 to 7)
を追加してください。オセロは、一つ一つのマスを考えれば、その状態は、空•白•黒の3つの状態しかないわけですから、それぞれに 0、1、-1 を対応させれば、真中に白黒が市松状に配置されているオセロの初期状態は、
 
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 -1 0 0 0
0 0 0 -1 1 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
と表すことができます。これをそのまま配列(pieces)に代入しましょう。先ほど作ったサブルーチン(format)の中に、代入する命令をそのまま書きます。
 
!---------------- ▽初期化 ----------------
1500 external sub format

1600 !盤面の配列の初期化
1601 data 0, 0, 0, 0, 0, 0, 0, 0
1602 data 0, 0, 0, 0, 0, 0, 0, 0
1603 data 0, 0, 0, 0, 0, 0, 0, 0
1604 data 0, 0, 0, 1,-1, 0, 0, 0
1605 data 0, 0, 0,-1, 1, 0, 0, 0
1606 data 0, 0, 0, 0, 0, 0, 0, 0
1607 data 0, 0, 0, 0, 0, 0, 0, 0
1608 data 0, 0, 0, 0, 0, 0, 0, 0
1610 mat read pieces(0 to 7,0 to 7)

1999 end sub
!---------------- △初期化 ----------------
これで、盤面の配列が用意できました。しかし、数字だけ用意しても、いまいちしっくりきませんね。そこで、次項では、実際に盤面を描画してみましょう。
 
ここまでのソースをダウンロード
 

<<BACK ↑HOME NEXT>>

Copyright (C) 2003-2004 Shohei Ohsawa, Naoya Okada & Fumiya Miyakawa. All rights reserved.