2017-04-01から1ヶ月間の記事一覧

最近Rails newをカスタマイズしてます

「my_rails_template」という、Rails newするときのテンプレートを作っていっています。その過程で、ジェネレータ系のプラグインも書いたりしてます。ジェネレータ書くまで知らなかったのですが、ジェネレータxxxがあったとしてRails g xxx yyyで生成したも…

精霊の箱1章の面倒な計算について

はじめに 『精霊の箱 上: チューリングマシンをめぐる冒険』の1章でガレットが夕方からやった計算についてまとめておきます。2文字、像に書かれた塔文字の修正された後があり、そこには2通りの文字があるので、2 ** 2の4通りの可能性がありますが、1つは既に…

『精霊の箱』に登場する「塔文字」の言語処理系split_boxについて

nnabeyng/split_boxに『精霊の箱』に登場する「塔文字」の言語処理系を置きました。いくつかサンプルもresourcesディレクトリに置いております。 実行方法 git cloneするかダウンロードして、rubyをインストールしていれば、main.rbを以下のようにして実行す…

NFAを使って足し算の関数を作りました

『精霊の箱 上: チューリングマシンをめぐる冒険』の足し算する関数を書きました。requireで呼び出しているファイルはここに置いてます。本に登場する塔文字のようなものをコンパイルして使います。「文字列比較」と「富者の像と貧者の像」も同様にして、作…

NFAで数を補って1の数を偶数に調整する関数を作りました

『精霊の箱 上: チューリングマシンをめぐる冒険』の最初の貧者の像と富者の像が元ネタです。nfa.rbはここに載せているのと同じです。像の裏に書いてある命令から設計図を作って、個々の命令を要素と見なした正規表現に変換して、それをポストフィックス記法…

NFAで文字列比較する関数を書きました

『精霊の箱 上: チューリングマシンをめぐる冒険』が元ネタです。parser書いて、次みたいな感じで動くようにしたいですが、まだできてません。 src = <<-END 100->1 111->1 1 0<-3 200->2 211->1 2 1<-3 END m = Machine.compile(src) puts m.exec("10010101…

罫線用文字の重なり部分の処理を簡単にするgemを書きました

文字列で数独を表示するときに、罫線用の文字をたくさん使うのでそれを扱う専用クラスを書きました。gemを書いたことが無かったので、せっかくなのでgemにして(/nnabeyang/box_drawing_char)に公開しています。罫線の重なり、例えば└と┘が隣接するとき、┴で…

「精霊の箱」の貧者の像と富者の像のようなものを書きました

『精霊の箱 上: チューリングマシンをめぐる冒険』の1章で登場する貧者の像と富者の像のような動作をする関数rich_and_poorを書きました。のようなと言っているのは、最後の状態の処理で@posが逆に移動するのですが、そこは無視しているからです。そのまま2…

数独板をAsciiコードで表示するの作りました。

数独ソルバー作っていくときに、数列で1行でわっと表示したり、9文字ずつ改行するのとかでも、ちょっと見えにくいので、ぱっと見てわかる表示に変更しました。もっと複雑な画面の場合、Jupyter Notebook使うしかなさそうです。今回もJupyter Notebookにした…

ブロッケンで決まる一番自明な場合

上のような場合、灰色で塗りつぶしている部分(以下カーソルのある場所と言います)がブロッケンで決まるとすぐ分かるパターンです。このカーソルの位置のブロックの上下左右のブロック全てに2が含まれています。なので、これらの2でカーソルの位置のブロック…

SudokuLogの使い方(ゲスト向け)

現在、herokuで公開中のSudokuLogの使い方についてです。主にゲスト向けに操作方法のみ解説します。ログインユーザーとしては、いつどんな問題をどのように解いたのかを記録として残す機能がメインになりますが、ゲストとしては、数独解くのに使う紙と鉛筆の…