カテゴリー
ネットのサービス

Load of the Codes – プログラマ向けテキストアドベンチャーゲーム(序章)

Lord Of The Codes は、RPG風の中世世界を舞台にしたテキストアドベンチャーゲーム。パズルを解くことで先へと進むゲームです。

偉大な魔術師コナルド・ドゥヌース(Konald Dnuth。どっかで聞いたような名前)と組んで迷宮を進むあなたは、物語の中に出てくるヒントから、謎を解いて入力し、正解することで先へ進むことができます。

ページにはReplitによる Python インタプリタ環境が埋め込まれていて、これを使って謎を解いても構いません。手元で他の言語で解いても、あるいは暗算(!)で解いても、正答さえ入れれば先へ進むことができます。

現在、2問答えるともうゲームは行き止まりで、メール登録フォームが案内されます。登録すると完全版が公開された際に優先で案内されるみたいです。

ずいぶん初期の段階で公開したものだな、と思いますが、反響があればこの先が作られやすいかもしれませんね。

via reddit

カテゴリー
英語学習

Wordle(ワードル)必勝法

twitter など SNS での拡散力が強くて急速話題となってきた英単語当てゲーム Wordle(ワードル) 、もう遊びましたか?

6回の試行から回答の単語に含まれるアルファベットの種類と位置を絞っていくというクイズゲームですが、「英単語」という片寄りのあるデータ群から推測するというゲームの性質から、どのようにすればより早く答えにたどり着けるかということを考える人も多いようです。

カリフォルニア大アーバイン校でCSを学ぶスペンサー・チャーチル氏(Spencer Churchill)は、Wordle で使われるすべての英単語のリストと Python スクリプトによって、できるだけ早く Wordle の正解にたどり着きたい人のための最善初手・二手を絞り込んでいます。

使われている文字を特定するほど次の回での絞り込みが進むのですから、できるだけ早い段階で多くの文字を試すのが有効かと思われます。

英単語には良く出てくる文字、あまり出てこない文字があるのですから、良く出てくる文字を5文字使った単語が、一番絞り込みができる良い初手ということになります。

チャーチルさんはまず、すべての対象単語を集計し、最も出現頻度の高い方からのアルファベット・リストを得ました。

次に、頻度の高い方から5文字ずつを選び、その5文字で構成される単語をスクリプトに出させます。

最速のための5文字の単語が複数あったため、こんどはそれらの中でもっとも有利な単語はどれか考えます。アルファベットの登場の有無だけでなく、アルファベットの正しい位置がわかる方が正解に近づくため、こんどは位置を含めて最も出現頻度が高いものを抽出すれば、これが最も有利な初手となるというわけです。

ブログで提示された最善の初手・二手を使って今日のWordle を解いてみたところ、2段目にしてかなりの絞り込みができ、4回目で正当にたどり着くことができました。

このブログ記事を紹介するHacker Newsの掲示板では、他にも理想の初手を考えていたいろいろな人たちからのコメントが集まっています。ORATE(演説する), SLATE(粘土板), SAUTE(炒める), AESIR(アース神族) などなど各自の考えるベスト・オープニングが紹介されていました。

また、人力であれば今回のような初手・二手目を覚えておくぐらいが関の山ですが、その場でプログラム的に解くのであれば当然、初手の結果を見てベストな二手目は変化しうるはずです。これを含めてのソルバー作りもプログラミングの課題として面白いのではないでしょうか。(ソルバー作ってる人も当然いますね)

Hacker News

カテゴリー
技術

オープンソースプロジェクト内のTODO個数調査

マーティン・シュライスさん(Martin Schleiss)がブログで公開したのが、Linux をはじめとする巨大オープンソースプロジェクトのソースコードにおける「やらないといけない」あるいは「後で考える」マークである“TODO”の個数の移り変わりをグラフ化したものです。

基本的には、プロジェクトの年月が重なるほど、コードに書かれた TODO の個数は増えていくようです。上の PHP のグラフでは、メジャーリリースや通常リリースの時期の少し前に TODO が増えているようにも見えます。

プロジェクトによっては単調増加ではないものも。Rust は TODO の個数自体が少ないように見えるし、途中で数個まで減っている時期もあるので、意識的に TODO の解消を目指したりしていたのかもしれません。

Next.js 、version 10 と 10.1 のどちらのリリース時期でもなく、突然増えています。

ブログ記事では言語処理系やライブラリなど、有名なもの20個弱についてグラフ化されています。

プロジェクトの規模、歴史の長さによってもTODO の個数は変わりますが、規模や歴史と無関係に多い少ないもあったりもします。シュライスさんはTODO が有ることはどのオープンソースプロジェクトにおいても貢献をする余地があるということだ、と言っています。あなたが良く使っているツール/ライブラリのTODO は増えているでしょうか?