ゲーム概要
マス目の盤面にコマを置き、自分のライン(つながり)を作って有利を取るゲームです。 相手の狙いを読みながら、どこに置くかを考えるのがポイントです。
- 対応人数:1 / 2 / 4 人
- モード:オンライン対戦 / AI対戦
- 操作:スマホ・PC両対応
基本ルール
- 自分の番に、コマを1つ置く(または移動する)
- 自分のコマがつながるほど有利になる
- 手番の順番を利用して相手を妨害できる
- 規定ターン後、条件を満たした側の勝利
2vs2では、味方が連続で動けない順番になるため、 チーム同士の読み合いが生まれます。
オンライン対戦の仕組み
オンライン対戦は Node.js + Socket.IO を使っています。
- サーバは「部屋」と「通信」を管理するだけ
- ゲームの状態はブラウザ側で管理
- 操作内容(action)を全員に送って同期
複雑な同期処理を避け、できるだけシンプルな構成にしています。
AI対戦について
1人用モードでは、AIと対戦できます。 AIは「置ける場所を全部試して、一番よさそうな手を選ぶ」だけのシンプルな仕組みです。
- 自分のラインが伸びる手を優先
- 相手の邪魔になる手を評価
難しいアルゴリズムは使っていませんが、 十分それっぽい対戦になります。
公開方法
Render で公開
- Node.js の Web Service を作成
node server.jsで起動- URLを発行して完成
サーバ維持
無料プランでは一定時間で停止するため、 UptimeRobot で定期アクセスしています。 しかし、この方式をとると無料版だとRenderの無料版の限界が月の中旬ごろに来てしまうので、長期運営を目指すなら有料にアップグレードするか、別の方法を試してみることをお勧めします。
注意
無料ホスティングでは、動作が不安定になる場合があります。 学習・試作用として公開していますので、ご了承ください。