CODE TRACE BATTLEの最初の案は、5枚の質問カードから情報を集め、特定できたと思った時点でCODE BREAKを宣言する形でした。質問への回答だけで候補を削る仕組みを先に数学的に検証し、全5,040通りを一意に分けられる5枚セットだけをデータ化しました。

正しく解けても、毎ターンの手触りが弱い

質問カード方式は推理として成立します。一方で、相手の4桁へ直接挑む操作が終盤まで現れず、SOLOで分かりやすかったLOCK / TRACEのフィードバックも薄くなりました。対戦相手の進み具合を見ながら「次で当てる」という緊張も作りにくい構成でした。

そこで、各自が毎ターン4桁を入力し、LOCK / TRACEを受け取る方式へ変更しました。SOLOで覚えたルールをそのまま使え、相手の最新結果から競争の状況も読めます。

TURN 2とTURN 4だけ質問する

質問カードは削除せず、2手目と4手目の追加情報として残しました。この2ターンでは、用意された5枚から未使用のカードを1枚選び、その回答を得てから4桁を入力します。

毎ターン質問できると情報が多すぎ、カード選択が中心へ戻ります。反対に質問をなくすとSOLOとの差が小さくなります。2手目と4手目に限定することで、通常のLOCK / TRACE推理に二度だけ判断の分岐を加えました。Workerは質問が必要なターンで未回答のまま推測を送る操作を拒否し、ルールをクライアント表示だけに任せていません。

先攻の正解で即終了しない

交互手番では、同じ第4手まで進んでいても先攻が先に操作します。先攻が正解した瞬間に終了すると、後攻には同じ回数の回答機会がありません。

現在は先攻が4 LOCKへ到達しても、その手数で後攻がまだ回答していなければ勝者候補として保持し、後攻へ最終回答を渡します。後攻も同じ手で正解すればDRAW、外せば先攻の勝利です。後攻がすでに同数の手を使っている場合は、その場で勝敗を確定します。

この分岐はWorkerの状態として保持し、再接続後も復元します。RESULTでは双方の秘密CODEを公開し、REMATCHでは新しいCODEと質問セットを生成して先攻を交代します。

遊びながら変え、テストで固定する

ルール変更に合わせ、pure logic、Worker統合、2クライアントのWebSocket、ブラウザの各層で確認しました。誤答後の次ターン、質問必須ターン、同手数の最終回答、RESULT、REMATCH、再接続を別々にテストしています。

初期案を捨てたのではなく、検証済み質問セットを「毎ターンの推理を補強する仕組み」へ置き直した変更です。

2人対戦を含むCODE TRACEの詳細を見る