プロジェクト名>>
オセロ
<<プロジェクト概要>>
シンプルなデザインのオセロゲーム
綺麗なグラフィックと
自作のサウンドを聞きながら
プレイできます
AI対戦の実装
自作BGM
<<ものの操作と洗い出し>>
<<もの>>
・コマ(白)
・コマ(黒)
・盤面
・プレイヤー
<<動作内容>>
・プログラム手順
:: whileで先手(黒)と後手(白)が交互にループし、ユーザーによって「待った」、「終了」などの動作が指定されたときには別の操作へと移行する。
・ボード全体のメモリ
:: ボードは8x8(基本的には)=64(byte)のメモリで表し、1byteの内容によって各マス目の状態を保存する。
:: 基本は黒は01、白は10、空ならば00で表す。
・コマを置く
:: 入力値がオセロ盤から外れていたらその場でエラーを返す
:: GTK(p.318マウスボタンのクリックの検出)によってマウスが座標を表示されたマス目上にあるか、判定しその座標をボード状態を変更するための関数へ渡す
:: また同時にコマの反転処理も行う
・コマの反転処理
:: 8方向に判定し、可能であったら反転する
・表示
:: 毎ターンのメモリを読み更新をする
・待った機能
:: プレイヤーがユーザーであるときのみ使用可能。
:: ターンごとに全てのボード状態を保存するのでメモリを圧迫する可能性がある。またセーブファイルが大きくなる可能性もある。
・AI設定
:: 最初は取れるコマの数が少ない場所を優先的に、後半は多めに取れるところを優先的に置く。
:: 後半に切り替わるタイミングが残り10ターンから。
○セーブファイル
:: セーブファイルはヘッダに経過ターン数とボード幅、それ以降をボード状態を保存し、読み込みの際にボード幅を利用してマスの数を判定する。(セーブファイルが正常であるか判定するため)
<<モジュール分け>>
○判定モジュール
担当 江渡 崇明・千葉 啓太
配置、勝敗、挟めるかどうかの判定
○操作モジュール
担当 鈴木 大樹・千葉 啓太
石の配置、ひっくり返す、マウス入力
○メニューモジュール
担当 伊藤 敬祐・門脇 啓介・千葉 啓太
メニュー作成、背景
○磐石モジュール
担当 伊藤 敬祐・門脇 啓介・千葉 啓太
盤面、石、絵、モーション
○コンピュータモジュール
担当 千葉 啓太
<<[[ヘッダファイル|gr09::ヘッダファイル]]>>
<<スクリーンショット>>
:<<{Screenshot from 2016-08-01 17:36:06.png}
:<<{demo3.png}
<<班員個々の感想>>
・[[江渡崇陽|g09::江渡崇陽::]]
・[[伊藤敬祐|g09::伊藤敬祐::]]
・[[門脇啓介|g09::門脇啓介::]]
・[[鈴木大樹|g09::鈴木大樹::]]
・[[千葉啓太|g09::千葉啓太::]]
<<班のリポジトリ>>
https://wiki.cis.iwate-u.ac.jp/svn/csd/16/g09/proj/
"othello"ファイルに実行ファイルがあります。
実行する場合はファイル"shellmake"内の、使い方.txtを参考にしてください