×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

3目並べ(Tic Tac Toe)

日本では○×ゲームとして知られている誰でも一度はやったことのあるゲームです。

両者が最善手を出した場合は、必ず引き分けになるゲームです。今回は、再帰処理ではなく、なるべく人間の思考に近い形でプレイするコードを書いてみました。そのため、最善手を打てない場合があります。

Startボタンを押せば、ゲームが始まります。○と×ではなく、駒は、○と●としています。
ちょっと手抜きをして、コンピュータが必ず●となるコードとなっています。


主要なクラスは、

WisePlayerクラス、MyBoardクラス、MainPageクラスです。

MyBoardクラスは、盤の状態を表すクラスです。
MainPageクラスは、描画とゲーム進行を管理しています。
WisePlayerは、MyBoardのインスタンスの状態を見て、次の手を探します。ここで最善手を打てるようにするには、やはり先読みをするか、定石を打つようなコードにする必要がありそうです。

詳細は、後述のソースコードを読んでください。

このプログラムで利用している Board, BoardCanvasクラスは、他のプログラムでも利用できるよう
ある程度汎用性を持たせています。Board, BoardCanvasクラスのソースコードはこちらに掲載しています。
Boardクラスは、Silverlightに依存していませんので、WindowsFormsでもそのまま利用可能です。BoardCanvasはSilverlightに依存しています。

以下に、C#+Silverlightのコードを示します。


■MyBoard.cs


■Playrer.cs


■MainPage.xaml.cs
 

■MainPage.xaml