<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>KHTDR – Go</title><description/><link>https://khtdr.com/tags/go.html</link><lastBuildDate>Thu, 22 Oct 2026 00:00:00 -0600</lastBuildDate><language>en-us</language><managingEditor>mazzarelli@gmail.com (Joey Mazzarelli)</managingEditor><webMaster>mazzarelli@gmail.com (Joey Mazzarelli)</webMaster><atom:link href="https://khtdr.com/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>Twenty Degrees</title><description> Twenty Degrees (20°) is a daily word-guessing game in the spirit of Wordle, played like 20 Questions. Everyone gets the same secret each day, something like "a lighthouse". You ask yes/no questions or just type a description, and each guess comes back with an answer and a warmth level. Name the thing to win. You get 20 guesses.</description><link>https://khtdr.com/twenty-degrees/</link><guid>https://khtdr.com/twenty-degrees/</guid><pubDate>Thu, 22 Oct 2026 00:00:00 -0600</pubDate><author>mazzarelli@gmail.com (Joey Mazzarelli)</author><category>Apps</category><content:encoded>
&lt;![CDATA[
&lt;figure style="margin:1.5rem 0;text-align:center"&gt;
&lt;a href="https://20deg.khtdr.com"&gt;
&lt;img src="https://khtdr.com/20deg/banner.png" alt="Twenty Degrees: a daily 20 Questions game. Ask away, and get warmer."
width="1200" height="630" style="width:100%;height:auto;border-radius:8px" /&gt;
&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;
&lt;strong&gt;Twenty Degrees&lt;/strong&gt; (20°) is a daily word-guessing game in the spirit of Wordle, played like
20 Questions. Everyone gets the same secret each day, something like &amp;#34;a lighthouse&amp;#34;. You ask
yes/no questions or just type a description, and each guess comes back with an answer and a
warmth level. Name the thing to win. You get 20 guesses.&lt;/p&gt;
&lt;div id="outline-container-headline-1" class="outline-2"&gt;
&lt;h2 id="headline-1"&gt;
Play it
&lt;/h2&gt;
&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;
&lt;ul&gt;
&lt;li&gt;In your browser: &lt;a href="https://20deg.khtdr.com"&gt;20deg.khtdr.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;It works on phones and desktops. There&amp;#39;s nothing to install and no account.&lt;/li&gt;
&lt;li&gt;A new puzzle comes out every day at midnight Eastern.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure style="margin:1.5rem 0;text-align:center"&gt;
&lt;a href="https://20deg.khtdr.com"&gt;
&lt;img src="https://khtdr.com/20deg/intro.jpg" alt="The Twenty Degrees page at the start of a day: an empty thermometer, the intro, and the guess box"
width="390" height="760"
style="width:300px;height:auto;border:1px solid rgba(127,127,127,0.3);border-radius:12px;display:inline-block" /&gt;
&lt;/a&gt;
&lt;figcaption style="font-size:0.9em;opacity:0.75;margin-top:0.5rem"&gt;
The start of a day's puzzle.
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-headline-2" class="outline-2"&gt;
&lt;h2 id="headline-2"&gt;
How a game goes
&lt;/h2&gt;
&lt;div id="outline-text-headline-2" class="outline-text-2"&gt;
&lt;p&gt;
Ask anything you&amp;#39;d ask in 20 Questions: &amp;#34;is it tall?&amp;#34;, &amp;#34;can you eat it?&amp;#34;, &amp;#34;is it in my
kitchen?&amp;#34;. You can drop the &amp;#34;is it&amp;#34; and just type &amp;#34;near water&amp;#34; or &amp;#34;float&amp;#34;. Each guess gets two
things back:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;An answer&lt;/strong&gt;: yes, no, or sort of. Next to it, a small dial shows how sure the game is,
from &lt;em&gt;Certain&lt;/em&gt; down to &lt;em&gt;Unsure&lt;/em&gt;. &amp;#34;Is it tall?&amp;#34; for a lighthouse is certain. &amp;#34;Is it old?&amp;#34; is
not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A warmth level&lt;/strong&gt;: how close &lt;em&gt;that guess on its own&lt;/em&gt; gets you to the secret.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Freezing&lt;/td&gt;
&lt;td&gt;It&amp;#39;s a no, and it points at a very different kind of thing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cold&lt;/td&gt;
&lt;td&gt;It&amp;#39;s a no, or it&amp;#39;s true of almost anything&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lukewarm&lt;/td&gt;
&lt;td&gt;True, and it narrows things a little&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warm&lt;/td&gt;
&lt;td&gt;True, and essential: what kind of thing it is, what it&amp;#39;s for&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot&lt;/td&gt;
&lt;td&gt;You named it or nearly did: &amp;#34;a boat?&amp;#34; is hot for a raft&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Hot is not a win. The only way to win is to name it, and &amp;#34;lighthouse&amp;#34;, &amp;#34;a lighthouse&amp;#34; and &amp;#34;is
it a lighthouse?&amp;#34; all count. A thermometer at the top shows how warm your latest guess was.&lt;/p&gt;
&lt;p&gt;
When the game ends you get a result card with the word, your grid, and a one-liner about how
the game went, and you can share it like a Wordle:&lt;/p&gt;
&lt;pre class="example"&gt;
20° / 11 Guesses / Oct. 10th
🟦🟪🟪🟨🟨🟨
🟧🟧🟥🟥🎯
Slow and steady
&lt;/pre&gt;
&lt;p&gt;
One square per guess, 🟦🟪🟨🟧🟥 from freezing to hot, and a 🎯 on the guess that got it.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-headline-3" class="outline-2"&gt;
&lt;h2 id="headline-3"&gt;
How it works
&lt;/h2&gt;
&lt;div id="outline-text-headline-3" class="outline-text-2"&gt;
&lt;p&gt;
Every guess is judged by a classifier, not a chatbot. Behind the game is Jev, a classification
model from &lt;a href="https://typesafe.ai"&gt;typesafe.ai&lt;/a&gt;. Each guess is one request with three questions in it: does this
name the secret, is the answer yes, no, or depends, and which of the five warmth levels fits.
Jev never writes anything. All the copy in the game is written ahead of time.&lt;/p&gt;
&lt;p&gt;
That&amp;#39;s the whole reason the game can exist. It calls the model on every single guess, so it
has to be cheap and fast, and picking one of a few answers is exactly what a classifier is
good at. It&amp;#39;s also why warmth is five levels and not a &amp;#34;72% match&amp;#34; score: a classifier sorts
things into buckets well, and nobody would trust the percentage anyway.&lt;/p&gt;
&lt;p&gt;
The warmth used to be relative: each guess was judged against your last one, or your best
one, and told you &amp;#34;warmer&amp;#34; or &amp;#34;colder&amp;#34;. Every version of that broke in playtesting. A bad guess
would set up a free &amp;#34;warmer&amp;#34; on the next one. Or one lucky &amp;#34;hotter&amp;#34; became the bar, and the
normal 20 Questions narrowing (&amp;#34;is it food?&amp;#34;, &amp;#34;bigger than a car?&amp;#34;) could never beat it, so
the game said &amp;#34;colder&amp;#34; seventeen times in a row. Rating each guess on its own fixed that, and
it gave far more consistent answers from run to run.&lt;/p&gt;
&lt;p&gt;
The prompts are tuned against a suite of hand-labeled guesses, and the suite also checks for
the failures that would make the game feel broken: winning on &amp;#34;spoon&amp;#34; when the answer is a
fork, not winning on &amp;#34;forks&amp;#34;, or a flat &amp;#34;no&amp;#34; to &amp;#34;is it used on water?&amp;#34; for a raft. None of
those get through.&lt;/p&gt;
&lt;p&gt;
The server is a small Go program with no dependencies outside the standard library. It
doesn&amp;#39;t have a database. Your game in progress lives in a signed cookie in your browser.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-headline-4" class="outline-2"&gt;
&lt;h2 id="headline-4"&gt;
Privacy
&lt;/h2&gt;
&lt;div id="outline-text-headline-4" class="outline-text-2"&gt;
&lt;p&gt;
There are no accounts. The game keeps today&amp;#39;s guesses in your browser so a reload doesn&amp;#39;t
lose them. The site counts page views and games played, but never what you guessed or what
the answer was.&lt;/p&gt;
&lt;p&gt;
The game is free, with no ads, and I have no plans to change that.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
]]&gt;</content:encoded></item></channel></rss>