以前「竜王のゲーム」というのアニメを夢中になった、空銀子好きです。将棋とか竜王とかだんだん了解になりました。

正直言って、俺は子供の時から中国の将棋がめっちゃハマってる、CHESSも好きです。ですから、今のプログラミング技術を活用して、私の将棋ゲームを作るはいいかなと思います。

しかし、将棋ならAIの相手の行動はさすが複雑過ぎて、短時間の開発は無理です。その点を考えて、五目はどうだろう。

GOMOKUは、一目で碁と似合うゲームです。ルールはとても簡単だから、誰でも楽しいで上手くになる。

まあ、言葉は必要ない、詳しい内容を見ましょう。

イントロ

Initialize

将棋を行うので、まずは盤を用意しましょう。ウィンドウを作成し、盤を背景画像として読み込むことができます。

ChessBorad

落子

マウスの左クリックで駒を置き、その後にAIプレイヤーに手番を渡します。turn変数を使用して手番を制御します(turnはbool型で表されます)。

Ai相手の行動ロジク

これは具体的な実装の中で最も複雑な部分であるため、私は五目並べを選択しました。なぜなら、比較的単純な論理判断を行うことができるからです。
まず最初に、各手の具体的な価値を理解する必要があります。また、将棋をプレイする際には、自分にとって利益が大きい手を打つだけでなく、相手の意図を検知し、相手の布局を崩そうとする必要があります。そのため、各手を進めるたびに、全体の将棋盤を走査する必要があります。将棋盤は2次元のベクトルで表現され、走査は2つのforループをネストさせることになり、時間の複雑さはO(size^2)となります。

次に、具体的な駒に価値を設定する必要があります。このプログラムでは、五連を最高のスコアとしました。なぜなら、五目並べでは同じ駒の五連が直接勝利につながるからです。その後、連続4の場合、片側か両側かを検出する必要があります。最後に、連続3の場合、相手の連続3を優先的に検出して崩すように設定しました。

ここに欠陥があります。AIプレイヤーの論理において、私は連続した駒の判定しか設定しておらず、間隔のある場合の判定は中途半端なものとなっています。GitHubにソースコードを提供していますので、興味がある方は自分で修正してみてください。

-https://github.com/KokoroSinx/Gomuku

まず遊んでみよう!

試遊のビデオはGoogleドライブに保存しました。
-https://drive.google.com/file/d/1XRZ1qGhBpxn9qxqgjPyFzm7qGCwWbDEU/view?usp=sharing

また、アンドゥ機能、白でのプレイ、メニュー画面、マルチプレイ対戦など、開発できる機能が他にもありますが、私はより面白いプロジェクトに関心を持っており、それは当分の間そのままにしておくつもりです。