カーリングで詰将棋のようなパズルを作りたい、と思い立ってから3年半。2023年と2025年に1回ずつ投げ出して、3回目でようやく公開まで来ました。
Curlingo(カーリンゴ)です。相手がいちばん良い手で投げ返してくるなか、投げ終わったときに点を残す手順を読むパズルで、スマホのブラウザですぐ遊べます。無料で、登録もいりません。
CurlFluxの紹介記事で、昔カーリングを題材にしたパズルゲームを考えていたと書きましたが、それがこのゲーム(名前とコンセプトだけは決まってた)です。CurlFluxはこのゲームを作ろうとしていた途中の寄り道から生まれたので、順番としてはこちらが先でした。
🚀 忙しい人向けまとめ
- カーリングの詰めパズルです。決まった順に相手と交互に投げ、投げ終わったときに目標を満たせばクリア。相手は毎回いちばん良い手で投げ返してきます
- 操作はタップだけ。毎日0時に変わる「今日の1問」と、問題集30問(要望があれば追加予定)があります
- 問題は自作のソルバーと生成器で作り、「何手先まで読めば正解を選べるか」で選びました
- 2023年はリバーシの改造、2025年は「カーリング×囲碁」で挫折。CurlFluxを作ったあとの3回目は、作り直しから4日で公開しました
- 英語版もあります

遊び方:ドットをタップすれば止まり、石をタップすれば当たる
盤は縦7行×横5列のマス目で、奥の5行×5列がハウス、手前の2行がガードの列です。
自分の番に、進める場所を示すドットをタップすると、石がそこまで進んで止まります。石をタップすると、その石に当たります。手前に石があるマスにも、隣の列を通って回り込めば入れます。
投げる順は問題ごとに決まっていて、相手と交互に投げます。
点の数え方は実際のカーリングと同じです。投げ終わったとき、ハウスの中心にいちばん近い石を持つほうが点を取り、相手のいちばん近い石より内側にある自分の石の数がそのまま点数になります。いちばん近い石どうしが同じ距離なら、どちらも0点です。
目標は3種類あります。
- 最後に◯点(自分が点を取る)
- 失点◯点以内(相手の点を抑える)
- フォース(相手に1点だけ取らせる。先攻のチームが実際の試合で狙う作戦です)
ルールの説明は、将棋の駒の動きの図のように、盤の図で見せています。
新しい考え方が出てくる問題をはじめて開いたときに、投げる前に1回だけ出ます(チュートリアルみたいな形)。


詰将棋みたいなものを、カーリングで作りたかった
カーリングは「氷上のチェス」と呼ばれます。だったら、詰将棋や詰碁のように、盤面を見て手順を読むパズルが作れるんじゃないか。始まりはそれだけでした。
詰将棋や詰碁は新聞(日本の全国紙)に毎日のように載っていて、海外でいえばクロスワードのような存在です。盤面の図が1枚あれば遊べるので、紙でもスマホでも成り立ちます。
カーリングも、石の配置さえ見えれば「次にどこへ投げるか」を考える醍醐味は伝わるはずです。詰将棋のような文化ごと知ってもらえたらいいな、と思っています。英語版を用意したのもそのためです。
ちなみに僕自身は、詰将棋をやりませんし、苦手。でも、面白みは理解してる。
名前はcurlingとgo(碁)を合わせてCurlingo。語呂がいいので、これは最初に決まりました。
はじめは囲碁のように石を囲んで取るルールも考えていて、名前はその名残です。いま考えて見るとDuolingoっぽくもあるかなぁ。そういえば、過去にDuolingo風の麻雀点数計算クイズ「スズメンゴ」というのも作っています。
1回目(2023年):リバーシの盤を借りたところで止まった
最初の試作は今から3年前の2023年5月。ボードゲームはマス目で考えるので、座標の扱いを借りようと、Qiitaで公開されている変則リバーシの作例を土台にしました。
盤は縦10行×横7列。縦の1〜10は、ドローで止まる場所を1〜10のゾーンで呼ぶ「ファービー式」に合わせています(1〜3がハウスの手前、7がティーライン)。ハウスの円は、そのまま四角いマスの輪で見立てる形にしました。

この頃はAIアシストが入ったころなので、データ構造を考えるだけでも時間が溶けてましたね、懐かしい。
結局、盤の形を変えて、駒をカーリングの石の画像に替えたところで止まっています。最初の挫折。
2回目(2025年):「カーリング×囲碁」は、画面で見ると単調だった
2年空いて、2025年6月にバイブコーディングで作り直しました。
今度は「カーリング×囲碁の対戦ゲーム」です。盤を縦13行×横9列に広げ、石は手前から狙ったマスへまっすぐ進みます。途中に石があれば、当たった勢い(パワー)が奥の石へ順に伝わって押し出していきます。
コンピューターとの対戦も作り、8月には囲碁のように周りを囲まれた石を取るルールまで入れました。

つまずいたところは2つあります。
ひとつは動きです。
当時はカーリングの石が物理的にどう動くのかをあまり知らず、適当にアニメーションを付けていたので、動きが不自然で気に入りませんでした。
もうひとつはルールの書き方で、パワーの伝わり方と座標を、仕様書とコードで別々に決めてしまっていました。
当たった石が止まる場所は、仕様書では「1マス手前」、コードでは「当たった石のマス」。座標の扱いもスパゲッティー化していた。
決定打は、アイデアとして書き留めたノートの上では面白く見えた盤面が、PCの画面に出すと単調に見えたことでした。
この頃はカールを考えていなかったので、石は列をまっすぐ進むだけです。戦略性がないのかもしれない、と不安になって、そのまま放置に至る。
このころ、カーリングにも試合を論理立てて書き残す方法(将棋で言う”棋譜”のような記譜法)があれば、それを土台にゲームにできるんじゃないか、と考えて、記譜法も探りはじめていました。
2回目の最後のコミットから6日後に、記譜法のリポジトリを作りました。のちのPCN(Portable Curling Notation)です。
寄り道したらCurlFluxができていた
記譜法の続きは、1年後の2026年8月にCurlFluxになりました。
北海道カーリングツアーの配信を見ながら書きかけの仕様を引っ張り出し、物理演算を書き直していたら勝率まで出るシミュレーターになった、という話は前の記事に書いたとおりです。
CurlFluxで目標にしていた機能がひととおりそろって時間が空いたとき、そういえば昔カーリングでゲームを作ろうとしていたな、と思い出しました。
リアルな物理仕様のカーリングシミュレーターを作っていたので、手元に材料がそろっています。石が氷の上でどう減速してどう曲がるのか、実物どおりのシートのデザイン、石がぶつかる音と滑る音。どれもCurlFluxを作るなかで用意してあったので、あとは楽でした。
3回目(2026年11月):物理を捨てて、詰めパズルにした
2026年11月3日、前の2回のコードを片付けて、一から作り直しました。
最初に決めたのは、実際のカーリングの物理を使わないことです。パズルならマス目のルールで足ります。運の要素がなく、同じ手なら必ず同じ結果になるので、詰めものに向いています。
最初の試作は、簡単すぎた
その日のうちに作った最初の試作は、相手が投げず、当てた石が当たった石の場所を奪うルールでした。18問作って自分で解いてみた感想は「単純化と動きはいいけど、簡単すぎて、爽快さもやりごたえもない」。
数えてみると、18問すべてで最後の手が当てる手でした。石で隙間を埋めて、最後に当てる。それが全問の解き方になっていました。
このときは難しさを「初手の正解が1通りしかない」「でたらめに投げて解ける確率は0.1%」のような数字で測っていて、数字の上では難しく見えていたんです。でも、人はでたらめには投げません。型が見えれば一瞬で解けます。
相手に投げ返してもらう
相手が投げないと、ガードに意味がありません。守る相手がいないからです。
そこで詰将棋と同じく、相手が毎回いちばん良い手で投げ返してくる形に変えました。
当てたときのルールも変えています。当てた石は当たった場所で止まり、勢いだけが奥へ伝わります。こうすると、当てた石がそのままガードになり、ガードの裏へ回す手にも意味が出ます。
ランダムな盤面で比べると、最後が当てる手になる問題は86%から56%に減り、3手先まで読んでも正解を選べない問題は5%から15%に増えました。
良い問題は「何手読めば正解を選べるか」で測る
難しさの物差しも作り直しました。
「k手先まで読む人」をモデルにして、その人が初手の正解を選べる割合を測ります。正解が少ないことより、読まないと正解を選べないことを重く見る考え方です。
できあがった問題(導入を除く26問)を単純な戦略で解かせると、どの戦略も2問以下しか解けません。「目先の点が最大になる手」で2問、「常に相手の石に当てる」は0問。最初の試作の解き方だった「空きを埋めて最後に当てる」も2問でした。
1行を5マスにしたら、ハメ技が生まれた
盤の大きさも、この日のうちに比べて決めました。7×7のハウスも試しています。輪の比率が実物にぴったり合うのですが、1投の選択肢は29から57に、3手先までの手の組み合わせは約2.4万から約19万に増えるのに、読みごたえは変わりませんでした。
人が読める手数には限りがあるので、マスを増やすより手順を深くするほうに使っています。
1行を5マスにして面白かったのが、ガードを並べてハウスの中の石に触らせない、ハメ技みたいな手が成り立つことです。
冒頭の問題17でも、手前の列に赤い石が4つ並んでいます。スマホでもタップしやすく、これで正解だったと思っています。
問題は生成器が作る:約70億通りの盤面から394問
問題は手で作っていません。生成器がランダムに盤面を作り、ソルバーが解いて、基準を通ったものを候補にします。
石が3〜8個の盤面は約70億通りあります。そのなかから、正解の初手が2つ以内に絞れていて、浅く読むだけでは正解を選べない問題を探します。
基準を通った候補は約2万2千。今のところ使ったのは、問題集の30問と、今日の1問の364問で、合わせて394問です。
初手の場所が同じ問題が続くと同じ発想の繰り返しになるので、初手が違うものを選んでいます。
今日の1問と、答えを漏らさないシェア
毎日0時(日本時間)に「今日の1問」が変わります。
全員が同じ問題を解くので、結果を見せ合えます。月曜は2投の易しい問題で、日曜に向けて5投まで難しくなります。
クリアすると結果をシェアできます。
Wordleと同じく手の場所は伏せて、1回の挑戦を1行、自分の1投を1マスで並べ、正解の筋を保てた手は🟩、外した手は⬛にしています。ソルバーがあるので、どの手で読み違えたかまで分かります。
🥌 Curlingo 問題17
最後に5点を3回目でクリア
🟩⬛
⬛⬛
🟩🟩
#Curlingo
問題そのものをシェアすると、リンクのカードに投げる前の盤面が出ます。問題ごとにページとカードの画像を書き出しているので、XにURLを貼るだけで盤面が見えます。

解けた瞬間を、もう少し気持ちよく
パズルには、解けたときの気持ちよさがもともとあります。そこに、煩わしくならない程度の演出を多めに足しました(ドパ成分)。
クリアすると、点になった石に番号を付けながらドレミで数え上げ、数えた石が光ります。これは、元々CurlFluxの対戦モードで作ってた機能。
加えて、一発クリアや大量点のときは強めに祝い、30問を解き終えると全画面で祝って、一発クリアの割合で称号が付くように。


CPUを追加しての対戦も試しました。
空のシートから交互に投げ合う形にしてみたのですが、0点で終わるエンドが多く、詰めパズルのような読み合いも生まれませんでした。パズルという方向に対戦は向かない、と分かったので、この方向性は無しと判断。
作り直しを思い立ってから4日で公開
コミットの順に並べると、こうなります。
- 11月3日:ルールとソルバー、問題の生成器、試作の画面。1時間ほどあとには相手が投げ返す形に作り直し、ハウスと石の見た目、CurlFluxと同じ効果音、5×5のハウス、3種類の目標、ルールのページ、今日の1問とシェア、問題ごとのページとカードまで
- 11月4日:公開ベータ。Cloudflare Pagesに上げて、クリアの演出と結果のカードを足しました
- 11月5日:クリアした問題では、ヒントをいつでも見られるように
- 11月6日:ルールを図のページで教える形にして、対戦モードは作らないと決め、正式公開。そのあと、キャラクターと演出、英語版を入れました
実はこのCurlingoの作り直し自体、他のプロジェクトでスキマ時間が開いた(機械学習で時間がかかってる)ので片手間にやってた作業。なのに、公開までほとんど関わることなくClaudeで自走してくれました。ありがたい。
おわりに
3回目にして、ようやくカーリングの詰めパズルが形になりました。何度も挫折して公開まで進めなかったのですが、ようやく日の目を見ることができて嬉しいかぎり。
今回は、石の動きの見せ方はCurlFluxで分かったことに任せ、ルールはマス目に割り切り、面白さは相手との読み合いで作っています。
問題はまだ作れます。基準を通った候補は2万以上残っているので、30問を解き終えた人には、次のステージを用意するつもりです。
問題ごとの挑戦とクリアの数も(個人を識別しない形で)数えているので、どこで詰まっているかを見ながら並びを直していきます。
遊んでみて気になったところがあれば、X(@creco)か Bluesky(@creco.net)で教えてください。解けたら、結果のシェアも歓迎です。

コメント
[…] 先月、ツアー第2戦のどうぎんカーリングクラシック(8月20〜23日、札幌)を流しっぱなしにして作業していたら、昔カーリングを題材にしたパズルゲームと、その試合を書き残すための記譜法を考えていたことを思い出しました。書きかけの仕様が手元に眠っていたので、引っ張り出して物理演算のほうを書き直し始めたのですが。 […]