ハノイの塔の解法をアニメーションにしてみた

2012/2/1 水曜日 23:41:15

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

JavaScriptのcanvasを使ってハノイの塔の最速解法を描画してみました。

ハノイの塔の解法といえばプログラミングでは大体再帰を利用するみたいですが、再帰を利用すると描画が面倒な事になりそうなのでちょっとマニアックなアルゴリズムでやってます。

ハノイの塔は64を全部右側に移動できた時に世界が終わる、とか言われてますが、最速にしても描画はそこまで早くないので、うちのマシンだと数億年(2、3億年?)ぐらいはこの世界は大丈夫そうです…。

試してみたい方は下のリンクからどうぞ。

はのい

タグ: Canvas, Javascript, プログラミング

HTML5のcanvasのfillText()メソッドの第4引数の各ブラウザでの挙動とか

2012/1/4 水曜日 18:21:39

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

先日の赤本メーカーの制作時に悩んだことなのですが、HTML5のcanvasで、

var canvas;
window.onload = function(){
	canvas = document.getElementById("test");
	draw();
}

function draw(){
	if(!canvas||!canvas.getContext) return false;
	var ctx = canvas.getContext('2d');
	ctx.font="bold 30px 'MS ゴシック','平成角ゴシック',monospace";
	ctx.textAlign="center";
	ctx.fillText("これはテストです",canvas.width/2,canvas.height/2);
	ctx.moveTo(100,0);
	ctx.lineTo(100,canvas.height);
	ctx.moveTo(200,0);
	ctx.lineTo(200,canvas.height);
	ctx.stroke();
}

とかするとどのブラウザもこんな感じで

と表示します。

しかし、ctx.fillText()のメソッドに第4引数のmaxWidthを指定して、

ctx.fillText("これはテストです",canvas.width/2,canvas.height/2,100)

みたいな感じにするとWebkit系ブラウザ(ChromeやSafari)とOperaではちょっと挙動が違ってきます。

続きを読む…

タグ: Canvas, HTML5, Javascript, ブラウザ, プログラミング, 覚え書

明けましておめでとうございます。(2012)

2012/1/2 月曜日 12:24:24

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

波乱の2011年が終わり2012年になりましたね。

1日遅れですが…みなさん明けましておめでとうございます。

昨日はこのサイトをホストしているXREAさんが不調のようでブログのアクセスが不可能な状態になっていたようです。

ここ最近こういうトラブルが多いので移転を検討したくなります…。

まあそれはさておき。

ここ最近canvasを使った開発がマイブームになっているので、たまにはこちらのブログでも製作したものを紹介したいと思います。

作りかけの物が多いのでたまに弄って変えてるかもしれません。

まずライフゲーム。昨年12月頃作ったと思います。(よく覚えてません)

ルールはすごく単純で、

「死んでいるマス(白)の周り8マスにちょうど3つ生きているマス(黒)があれば次にそのマスが生きている状態になる(誕生)」

「生きているマス(白)の周り8マスに4つ以上生きているマス(黒)があれば次にそのマスが死ぬ(過密死)」

「生きているマス(白)の周り8マスに1つ以下生きているマス(黒)があれば次にそのマスが死ぬ(孤独死)」、「残りのマスはそのまま(生存)」

シンプルなルールで動いてますが意外と長く楽しめます。

人工生命なんかの研究の題材にもされるようですね。

ずっと変化しないマスは赤くなるように独自にアレンジ。

今は実装できてませんが出来ればマウスクリックとかで編集できるようにしてみたいですね。

 

あと2つ目は赤本メーカー。これは昨日作ったものだったり…。

テキストとか色を変えれば赤本っぽいデザイン?のネタ表紙が作れます。

受験生の人はもうすぐセンター試験も近いと思いますのでよく勉強して頑張って受かってください。応援してます。

2012年はいい年になりますように。

タグ: 2012, 雑多な話題

投速チェッカ復活のお知らせ

2011/12/23 金曜日 01:06:32

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

HP上の試作物に置いていたTwitterの規制解除時刻を予測する「投速チェッカ」ですが、一旦は公開停止したのですが再度復活サせることにしました。

元々は自分用に作成した物だったのですが、そのままにしておくのもなんなので公開という形で提供していました。

しかし、プログラミングの勉強をしているうちに自分の能力不足を感じ、こんな状態で公開していて良いのだろうか、と思ったり、Twitter上で投速チェッカの結果はあてにならないとの声も頂いて地道に直そうと努力もしたのですが、結局直せなかったりしてだんだん更新ペースも落ちてきて、試作物という扱いなので公開中止してもいいだろうと公開中止しました。

すると、それが公開中止の反響が思った以上に大きかったらしく、メールでの復活の要望も頂いたりしました。

ということで暫定的ですが投速チェッカを再度復活させたいと思います。

利用したい方は投速チェッカからお願いします。

また、投速チェッカが使えなくなった場合の代替物としては@karnoさんのKrileに搭載されている規制予告機能か登録すると自動で規制を予告してくれるきせーつーちが比較的精度が高いようなのでおすすめです。
あと、開発者のモチベーション向上のためにぷちカンパで寄付をしていただける方は、ここからお願いします。
※一度寄付するといかなる理由でも返金は受け付けられません。また寄付した方へ何か特別な事もしませんのでご注意ください。

なおこのブログ上で投速チェッカを扱うのは初めてです。
こうなったのもホームページ側(ltzz.info)とブログ(ltzz.info/blog)で管理を別にしているためなのですが…。
そもそも、このサイトの直下のトップページが高校時代から「全く」変更されていない状況なので更新したいところです。
しかし、なかなかそううまく行かないのが現状…。

タグ: Twitter

eneloop pro+充電器セット「N-TGR01WS」買ってみた

2011/11/14 月曜日 21:23:58

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

 

単3eneloop pro4本と+急速充電器のセット「N-TGR01WS」を購入してみたので、簡単なレビュー。

続きを読む…

この投稿にタグはありません。

IE9をベンチしてみた

2011/10/25 火曜日 20:38:48

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

今更ながら、Windows UpdateでInternet Explorer 9が流れてきたので更新してみました。

ついでなのでベンチマークしてみました。

IE9は改良点が多いとのことなので結果に期待しつつ…

続きを読む…

タグ: IE, Microsoft, ブラウザ, ベンチマーク

64bit環境でのEclipseの起動に試行錯誤

2011/10/22 土曜日 16:04:41

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

Javaで開発を始めようと「Eclipse IDE for Java 」をインストールしていたところ躓いたのでメモ。

Windows 7 64bit環境でEclipseをインストールしたものの、起動しないトラブルが発生。

起動時ダイアログが出て止まってしまうトラブルが続いたため、調べてみると、複数のJREがインストールされていると起きるトラブルとのことだったので、JDKを32bitのみ、64bitのみにして試してみましたが…今度もダイアログが出たり、Eclipseのロゴが表示された直後にJNIのロードに失敗という表示で止まるのみ。

そして最終的に行った改善方法は「JREを32bitにしてPathを通し、Eclipseも32bit版にする。」でした。

Eclipse の64bit版を使用しようとしていましたが、64bit環境だからと無理に選ぶと結構ひどい目に遭います。

Eclipse Indigo SR1 の64bit版は地雷…?

何はともあれ動いて良かったと思います。

タグ: 64bit, Java, Windows, 覚え書, 開発

Microsoft ICE(Image Composite Editor)を使ってみた

2011/10/20 木曜日 23:08:28

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

実は先日鳥取に旅行へ行っていたのですが、適当に撮った写真からパノラマ写真が作れないかと思っていたら「Microsoft ICE(Image Composite Editor)」というものを見つけたので試してみました。

続きを読む…

タグ: Microsoft, ソフトウェア, 旅行, 画像

Nゲージコントローラ1号完成

2011/10/19 水曜日 20:49:40

このエントリをはてなブックマークに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをBuzzurl(バザール)に追加

少し前にNゲージコントローラを自作しているという話を記事でしていましたが、そのコントローラがいよいよ完成しました。

なお、一応予備情報として。Nゲージというのは9mmのレール幅を走らせる鉄道模型のことです。

純正のパワーパック(メーカー製のコントローラ)が非常に高いのでとりあえず安上がりで走らせようと制作。

色々粗がある仕様ですが…。

ちなみに中に直接ブレッドボード突っ込んでたり、保護回路が入ってない箇所多かったり、ショートしそうな箇所があったりとと結構危険です…。

ちなみに制御方式にはPWM制御を採用。たぶん約700Hzで動作させてます。

現在周波数は固定(抵抗を変えれば変えることは可能だが面倒)なので、マイコン制御の2号機計画も考えてたりしますが、実行するのはいつになるやら…。

タグ: 鉄道, 電子工作