1.タイトル

    3Dオセロ

2.作者情報

    作者名:各務博之(かかむひろゆき)
  URL:http://www2a.biglobe.ne.jp/~mirai/java/java.htm
  E-Mail:kakamu@mtj.biglobe.ne.jp

3.使用方法

 (1)ゲームの概要

  このゲームは、オセロの立体版(3D)です。
  平面オセロでは、色は白と黒で、8×8の盤面上で上下、左右、斜め(2種類)
  に相手の駒を挟むと自分の駒になりますが、この3Dオセロでは、色は赤と青で、
  4×4×4の立体図形で上下、左右、前後、斜め(10種類)で相手の駒を挟むと
  自分の駒になります。

 (2)プレイヤー選択画面

  プログラムを起動すると以下のプレイヤー選択画面が表示されます。

       3Dオセロ

      * 1PLAYER
       2PLAYERS
       EXIT


  (a)1PLAYER

   1人でコンピュータを相手にゲームをします。
   この場合、プレイヤーは赤、コンピュータは青で固定です。

  (b)2PLAYERS

   通信ケーブルを使用して2人で対戦します。
   この場合、「色の選択画面」でそれぞれの色を選択します。

  (c)EXIT

   プログラムを終了します。

  (d)操作方法

   Aボタン:1PLAYER/2PLAYERS/EXITを「*」が移動します。
   STARTボタン:「*」で示された項目を選択します。

 (3)色の選択画面

  プレイヤー選択画面で「2PLAYERS」を選択したときのみ色(赤・青)を選択する
  画面が表示されます。

      色を選んで下さい

      * 赤
       青
       EXIT


  (a)操作方法

   Aボタン:赤/青/EXITを「*」が移動します。
   STARTボタン:「*」で示された項目を選択します。

  (b)相手と同じ色を選んだ場合は、再度選択を促すメッセージが出力されます。
   この場合、もう一度お互い選び直して下さい。

 (4)ゲーム画面

  ゲームが開始されると画面の左側に4×4×4の立体図形が表示されます。赤い
  丸red.gif (899 バイト)のところは赤の駒が、青い丸blue.gif (899 バイト)のところは青の駒が配置されていることを示
  します。白い丸white.gif (899 バイト)のところはまだどちらの駒でもないことを示しています。
  画面の右上には、赤と青のスコアが表示されます。
  画面の右下には、ゲーム終了時、途中でやめたいときのメッセージが表示されます。

  (a)ゲーム内容

   通常のオセロと同様に、順番に駒を打ってゲームは進みます。
   駒を打てるところは、相手の駒を挟むことのできるところに限られます。
   相手の駒を挟むことのできる場所がない場合は、パスしなければなりません。
   このゲームでは、自分の手番の時Xボタンを用いて打つ場所を選択し、Aボタンで
   決定します。
   打つ場所がない場合は、自動的にパスされます。

  (b)操作方法

   Yボタン:立体図形を回転させ見る位置を変えます。
     Y1:立体図形が上に回転します。
     Y2:立体図形が右に回転します。
     Y3:立体図形が下に回転します。
     Y4:立体図形が左に回転します。
   Xボタン:自分の手番になったとき選択する位置を指定します。現在選択されている
        位置はwhites.gif (914 バイト)で表示されています。
     X1、X2:選択可能な位置を移動します。
     X3、X4:X1、X2と逆方向に移動します。
   Aボタン:選択する位置を決定します。選択位置が決定されると赤の場合reds.gif (899 バイト)に、青の
   場合blues.gif (899 バイト)に表示が変化します。また、挟まれた駒は数秒間点滅し色が変わります。

 (5)ゲーム終了

  1ゲームが終了すると、画面の右下に以下のメッセージが表示されます。

 

 

      続けてプレイしますか

         * は い
          いいえ


  (a)操作方法

   Aボタン:はい/いいえを「*」が移動します。
   Bボタン:「*」で示された項目を選択します。

  (b)選択結果

   「はい」を選択すると新しいゲームが開始します。先手は前回と逆になります。
   「いいえ」を選択すると「プレイヤー選択画面」に戻ります。

 (6)途中でゲームを終わらせたいとき

  ゲーム中にSTARTボタンを押すと、画面の右下に以下のメッセージが表示されます。

 

 

         終了しますか

           * は い
            いいえ



  (a)操作方法

   Aボタン:はい/いいえを「*」が移動します。
   Bボタン:「*」で示された項目を選択します。

  (b)選択結果

   「はい」を選択すると「プレイヤー選択画面」に戻ります。
   「いいえ」を選択するとそのままゲームを続行します。

4.動作環境

 ワンダースワン、ワンダースワンカラーの両機種で動作を確認しております。
 駒として「赤」「青」を使用していますので、ワンダースワンカラーの方がわかりやすいです。
 <注意>
  CPU負荷の問題と思われますが、ボタンの反応が鈍い場合があります。
  少し長めにボタンを押して下さい。

5.コンセプト

 「少しだけ頭を使うゲーム」というのが私の好きなゲームです。
 このゲームもそういった考えで作りました。

6.アピールポイント

 (1)1人プレイ時、対戦相手のコンピュータは結構強いです。
 (2)空間に配置された駒を立体っぽく見せてます。

7.技術解説

 (1)もともと、このゲームはJavaのアプレットとして実装し、Webサイトに公開していたものを
  今回、WonderWitch用に移植しました。従って、アルゴリズムは既にできあがっていたの
  で、比較的容易に移植できたと思います。
 (2)WonderWitchの機能としては、各駒の表示にはスプライトを使用しました。キャラクタフォ
  ントは選択時と非選択時の2つを用意し、パレットを換えることによって白、青、赤の駒を
  作成しました。
 (3)<注意>にも書きましたように、ボタンの反応が鈍いプログラムになってしまいました。
  ボタン入力は別プロセスで取り込みバッファリングする等の特殊なプログラミングテクニ
  ックが必要だったかもしれません。
 (4)ゲーム自体のアルゴリズムはそれほど難しいロジックではありません。ある1点に着目
  し、その点に駒を打つことによりどの駒が挟まれるかというロジックは、上面9方向、同
  一面8方向(残り1つが自分自身)、下面9方向にそれぞれ一駒一駒進めていき相手の
  色が隣り合いその先に自分の駒があれば挟むことができると判断するといった感じで、
  再帰関数を作成することで実装しました。ちなみに現在は、4×4×4の立体ですが、
  n×n×nになっても実行できるように作ったつもりです。しかしながら、人間が思考でき
  る範囲は4×4×4が限界かなと思います。