開発

lac.js: SAVE & LOAD

作図ツールの試作をしてます。設計の詳細は次のページで見ることができます。 http://w.livedoor.jp/compass-ruler/d/lac.js 今回はプログラミングに依らずに作図した図をSAVEし、LOADする機能を書きました。不安定なので、動画中ではいくつかSAVEに失敗して…

2012-12-25に描いた図(lac.js)

lac.jsのテストのために現実的な問題の図を描いています。今日は、内心、外心の関数を作りました。はじめはコンパスとものさしを使った作図を意識して作りましたが、内心は処理が重いので、ベクトル解析による公式を使うことにしました。外心や他の関数もベ…

cal.jsをもっとインタラクティブに

動画では、角の頂点とその対辺の中点を結んだ3つの直線が常に1点で交わることを確認しています。これは中学の時に習った重心ですね。動的な作図ツールがあれば、このような手書きでは確認不能なことが分かります。 それに加えて、cal.jsはヒントを出すことで…

cal.jsをインタラクティブに

cal.jsを下の動画のように動的に点を動かせるならば、辺の比や、直角、平行など不変な性質を見つけやすくできるかもしれません。これは手でやるよりずっと効率的なので、真っ先に実装すべきなのかもしれません。ただ、処理が重くなりそうだったり、大幅な書…

証明アシスト機能

作図ツールの試作をしてます。設計の詳細は次のページで見ることができます。 http://w.livedoor.jp/compass-ruler/d/cal.js 今回も作図問題の自動判定で、問題も其ノ伍と同じです。新しく"LINE-SEGMENT", "ANGLE"という操作を加えました。これは、合同な角…

角の和

作図ツールの試作をしてます。設計の詳細は次のページで見ることができます。 http://w.livedoor.jp/compass-ruler/d/cal.js 今回も作図問題の自動判定です。新しく"ANGLE-ADD"という操作を加えました。これは2つの等しいと分かっている角の対があって、さら…

コンパスとものさしの幾何学

「コンパスとものさしの幾何学」というwikiを開設しました。このwikiで使っている図は、Javascriptで作ったプログラム(cal.jsといまのところ呼んでいます)で生成しています。

Ruby技術者認定試験シルバーの勉強用アプリを試作してみた

次のような内部DSLを書いて、メインプログラムを走らせると、ランダムに問題が出題されるアプリを作ってみました。 # -*- encoding: utf-8 -* problem "範囲演算子の問題" do size = 5 str = Rcert::random_string(size) f = rand(size-1) l = f + 1 + rand(…

ボードゲームの電子化について

UIの部分がほぼ完成しました。試しに1ゲームしてみたら、20分程度かかりました(ホンモノのボードゲームとして真剣に対戦したら60分程度かかるようです。)。ぼくが下手なのもありますが、結構時間がかかります。 ボードゲーム用ゲームエンジンみたいなのを作…

リンクスライダー:素朴なNPCを実装

昨日見通したのとほぼ同じ方法でNPCと対戦できるところまでゲームを作りました。唯一の違いはC拡張を書くのを止めて、subprocessを使ったところです。 1戦目 2戦目 もし公開するつもりならば、やることはまだまだたくさんありますが、だいたいどうするべきか…

リンクスライダー、NPC対戦までの道が見えてきた

あらかじめ用意した操作手順を配列でNPCに与えることに成功しました。 これでようやく、NPCとの対戦までの道のりが見えてきました。今、手元にあるのは c/c++なら(おそらく)1秒以内に与えられた状況からゴールまでの操作手順が生成できる pythonのc拡張の書…

リンクスライダー(1人用)の最善手を計算してみた

前回紹介したリンクスライダー。AIを作りたいのですがJavaScriptで考えるのはしんどいので、まずc++で計算してみました。結果を見せるために、ゲーム上で手動で操作して動画は撮りました(答えを見ながらやっているため、操作がぎこちない。。)。 まずパズル…

gistを色々な用途に使う

gistはコードスニペット置き場のような使い方が一般的だと思います。でも、gistそれぞれの投稿に1つのgitリポジトリが割り当てられていることを考えれば、もっと色々な使い方ができることに気付きます。ぼくが使っているのは2通りで、1つはフリーウェア置き…