ボードゲームを学ぼう
香川高等専門学校(詫間キャンパス)
情報工学科 宮武明義
はじめに
自作のオセロゲームを教材とし,コンピュータの思考方法や強さの秘密を学ぶことが できます。さらに,インターネットを利用して離れた場所にいる友達と対戦できるオセ ロゲームを体験することで,インターネットによる通信の仕組みなども理解できます。
(プログラムと簡単な説明)
![]() |
コンピュータ対戦オセロゲーム(更新日:2004.9.3 サイズ:450,411) | 説明 | |
![]() |
ネットワーク対戦オセロゲーム(更新日:2004.8.21 サイズ:609,181) | 説明 | |
![]() |
強いコンピュータ対戦オセロゲーム(更新日:2004.8.23 サイズ:358,324) | 説明 | |
![]() |
インターネット対戦はさみ将棋(更新日:2003.06.21 サイズ:65,536) | 説明 | 対局中の画像 |
(目次)
1. | コンピュータ対戦オセロゲーム |
画面構成と遊び方 | |
オセロのコマをひっくり返すには? | |
コンピュータの強さ(レベル)ってどうなっているの? | |
2. | ネットワーク対戦オセロゲーム |
通信するには | |
画面構成と遊び方 | |
3. | おわりに |
ここでは,人間 対 コンピュータでオセロをするゲームを説明します。
コンピュータのレベルから適当な強さを選び,「開始」ボタンを押すと次のようなメッセージが表示されます。
「リセット」ボタンを押すと,ゲームを最初から始めることができます。また,「終了」ボタンでゲームが終了します。
相手のコマで挟まれたコマがひっくり返るように見せるには,通常のアニメーションのように一定時間間隔で何枚かの絵を順に表示することによって実現できます
例えば,黒から白へひっくり返すには次の4枚の絵を順に表示しています。また,白から黒へは,逆の順序で表示します。
→
→
→
このオセロゲームでは,初心者,一級,初段,名人の4つの強さを用意しています。
![]() |
ただし,左図のような各コーナーにおいて, ×印の場所にはできるだけ置かない。 ○印の場所は優先して置く。 |
![]() |
ここで,コマを置く場合の得点はその場所の得点にその時変わる相手のコマ数を3倍して加える※。 例えば左図において3のDに黒を置く場合,場所の得点が15で,白から黒に変わるコマの数は1枚なので, 15+1*3=18 点 となる。 ※この評価法は,(株)エフエム 編,ベストゲームプログラム集,学研,pp.122-125を参考にしました。 |
ここでは,インターネットに接続された2台のコンピュータを使って人間 対 人間がオセロをするゲームを説明します。
インターネットに接続されたコンピュータは,それぞれ唯一の番号(IPアドレス)を割り当てます。これは,一般家庭での電話番号のようなものです。このゲームも電話と同様,ゲームを始める前に相手に対局を申し込む(電話をかける)必要があります。また,申し込まれる側は,いつでも受ける(電話を取る)準備ができていなければなりません。ここで,対局を申し込む方をクライアント,申し込みを待ち受ける方をサーバといいます。
プログラムを起動します。まず,サーバ役の人が, | |
「待機」ボタンをクリックし,クライアントからの申し込みを待ちます。![]() | |
次に,クライアント役の人が, | |
「申込み」ボタンを押します。![]() サーバのIPアドレスを入力後,「接続」ボタンを押します。 ![]() |
接続が成功すると,サーバの画面には,と表示されます。
相手が「OK」ボタンを押すとという返事が返ってきます。
また,相手が別の人と対局中のときは, という返事が返ってきます。
以下がゲーム中の画面です。
キーボードから送信メッセージをタイプし,Enterキーを押すことで文字での会話ができます。ゲーム中は音声アイコンをマウスでクリックするだけで,決まり文句を送ることができます。
また,相手側にサウンドファイルを再生する機能があれば,音声も再生されます。
以上2つのプログラムは,C++ という言語を使って作成しました。中学校の技術家庭科でBASIC言語を習った人もいると思いますが,コンピュータに対する命令をプログラムとして書けばいろいろな判断や処理をすることができます。また絵や音なども,自由に扱うことができます。
本校情報工学科では,プログラムの作成能力を養うことが重要なテーマの一つであると考えています。あなたも情報工学科へ入学し,すばらしいプログラムを作ってみませんか?