Kakuro(クロスサム)

白マスに1〜9を入れ、ひと続きの合計を手がかりに合わせます。同じひと続きの中で同じ数字は使えません。ここで出題される盤面はすべて論理だけで解け、解は1つだけです。

ブラウザで遊ぶ Simple Games について

盤面と手がかり、勝利条件

各マスは、1〜9の数字を1つ入れる白マスか、対角線で区切られた手がかりマスのどちらかです。手がかりマスは右向きの合計(その行で手がかりの右に続く白マスのひと続きの合計)を持つことがあり、下向きの合計(その列で下に続くひと続きの合計)を持つこともあります。対角線が片方だけのマスはその合計だけを持ち、線のないマスはどちらも持たないただの塞ぎマスです。

この白マスのひと続きに、2つの規則がかかります。同じひと続きの中で数字は重複できないこと、そしてひと続きの数字の合計が手がかりと一致することです。行全体や列全体にかかる規則はなく、ブロックもありません。かかるのはひと続きだけです。

操作

パッドは各数字の残り個数を表示せず、置けない数字をグレーアウトすることもしません。Sudoku と Futoshiki が残数を出せるのは、完成盤で各数字がちょうど決まった回数だけ使われるという、解について変わらない事実があるからです。Kakuro にこの不変量はありません。ある数字が何回現れるかはレイアウトと解が決めるもので、同じ行に同じ数字が2つ並んでも、別のひと続きに属していれば合法です。置けない数字をグレーアウトすることは、パズルの推論そのものを代わりにやることにもなります。それは Hint の役目です。

ミスと違反表示

違反表示は常時オンで、示すのは次の3つだけです。ひと続きの中で数字が重複している、まだ空きマスがあるのに書いた数字の合計がすでに手がかりを超えている、そして埋まったひと続きの合計が手がかりと一致していない、の3つです。違反したマスと、そのひと続きの手がかりマスが一緒に色を変えます。壊れているのはマスではなくひと続きだからです。

この裏返し — 空きマスが残っていても、どう埋めても手がかりに届かない状態 — も同じくらい詰んでいますが、違反としては表示しません。まだ何も間違って書いていないマスに警告を出すことになるからです。この推論は Hint の役目です。

サイズ・レベル・デイリー

レベルサイズ白マスの割合
1〜206×652% → 68%
21〜658×839% → 51%
66〜10010×1031% → 46%

「推測なし」の保証とヒント

手がかりはすべて、1〜9のうち重複しない数字の合計です。だからひと続きの中身はいつも、数えられるだけの少ない候補に絞られます。2マスで合計4になるのは1と3の組しかなく、2マスで合計3になるのは1と2の組しかありません。この両方のひと続きに属するマスは、2つの候補が共有する唯一の数字である1にしかなれません。

ここで出題される盤面は、この種の推論だけをマスからマスへ、盤面全体に通せることを検査してから出しています。どこにも推測を必要としません。これは解が唯一であることも意味します。どこかで推測が要る盤面はこの検査を通らないので、出題されません。

戻す

戻すは無制限です(このコレクションの他のゲームと同じ、実装上の上限2000手)。数字の配置・消去、メモの変更を1手ずつ戻せます。

攻略のコツ

よくある質問

プレイ中にタイマーは出ますか?

プレイ中に時計は表示しません。時間は静かに記録され、結果画面と統計でだけ見られます。

負けることはありますか?

ありません。ミス上限もゲームオーバーもなく、戻すで好きなだけ巻き戻せます。

ヒントや戻すに回数制限や広告視聴はありますか?

どちらもありません。両方とも無制限・無料で、ゲームの機能が広告や課金の対価になることはありません。

インターネット接続は必要ですか?

Android アプリは盤面を端末上で生成するので、初回起動から通信なしで遊べます。ブラウザ版はページの読み込みに1度だけ通信が必要で、その後のゲームはブラウザの中で動きます。

同じ行に同じ数字が2回出てきてもいいのですか?

かまいません。その2マスが別のひと続きに属していれば合法です。間に手がかりマスがあれば、そこで別のひと続きに分かれ、重複禁止のルールは1本のひと続きの中にしか働きません。行のどこにも重複できない Sudoku との最大の違いです。

数字パッドに、Sudoku のような残数表示がないのはなぜですか?

Kakuro には引く先の決まった数がないからです。Sudoku の完成盤は各数字をちょうど9回使うので、残数は解についての変わらない事実です。Kakuro でどの数字が何回現れるかは、レイアウトと解が決めるだけで、別のひと続きに属していれば同じ行に同じ数字が重なることもあります。だから、数え下ろす先の決まった数がありません。

ここに書いたことはすべて公開されたコードで確認できます:GitHub のソースコード