石積み

プログラムの仕組み
 Visual Basicを2週間ぐらい勉強して、3週間目に作ったプログラムです。このBasicらしい作り方のはなっていないと思いますが、N88日本語Basicなどを知っている人は、分かり易いのではないかと思います。
 また、Ver4.0(32Bit)で作りましたが、
   Private Sub *****( ) というところを
  => Sub *****( )
というように、Privateをとれば、Ver2.0でも実行できると思います。(Ver2.0のテキストで勉強したとき、そのコードにPrivateをつけて、Ver4.0で実行できていたので、逆もできると思います。)

 @ 主な変数
   f(11,12) ますめの中にどちらの石があるか、ないかを入れる配列
     (0:ない、11:水色、14:黄色)
     (1:コンピュータがそこに積むと人間が勝ってしまうから積んではいけないというフラグ)
   n        ますめの横と縦の数
   w        1つのますの縦と横の長さ
   c        石の色
   h        4つ並んだかのフラグ(0:並んでいない、11か14:その色が並んだ)
   flag       コンピュータがそこに積んだとき、人間が勝ってしまうか調べる時(=1)か、それぞれが積んだとき勝てるかどうかを調べる時(=0)かのフラグ
   xx,yy    石を積むところのx座標、y座標
   v(8)       8方向で並ぶ石の数を入れる
   vv(3)      左右や上下などの並ぶ数を入れる(8方向を4方向に)
   m(10,10,8)    コンピュータが考えるとき、人間の石の並び具合を入れる配列(10,10はますめの場所、8は8方向で)
   c(10,10,8)    コンピュータが考えるとき、コンピュータの並び具合を入れる配列(同上)
   t       並んだ数をチェックするときに使う
     (t=1:2つ並んでいるか、2:3つ、3:4つ)

 A サブルーチンの説明
   check・・・8方向の並び具合をチェック
   clearf ・・配列fの1を0にする
   computer ・コンピュータの手を考える
      1.コンピュータの石の並び具合をチェック
      2.人間の石の並び具合をチェック
      3.人間の手を止めるように石を積む
      4.コンピュータが並ぶように石を積む
   man2・・・人間の石の並び具合を調べる
   com2・・・コンピュータの石の並び具合を調べる
   hyouka・・どちらが勝ったかを表示して終了する
   Form_Activate・・初期設定・ゲーム画面作成
   Form_MouseDown ・マウスが押されたとき、人間の石を積み、コンピュータに考えさせるようにする
 B 改造のアドバイス
 ・先手・後手が決まっているので、それを選べるようにするといいかも知れません。−−−>コンピュータ先手の場合は、最初に1回だけコンピュータが考えるようにして、後はそのままでできると思います。)
 ・人間対人間ができるといいかも知れません。(この方が盛り上がるような気がします。)−−−>Form_MouseDownでコンピュータが考えないようにして、人間の所をもう1つつければいい。簡単です。)
 ・4つより多く並んでも、勝ちになっているので、気持ちが悪いかも知れません。−−−>V(i)=3の判断を、V(i)+V(8-i)=3のように、左右や上下などを一緒にして判断するようにすればできると思います。)
 このVisualBasicは、とっつきにくいところがありますが、少し勉強すると面白くなるので、躊躇している人は、是非挑戦をするといいと思います。まずは、この改造をやってみませんか。


[ 戻る ]