迷路を作って遊んでみる2

前回からの続きです。前回は、迷路と迷路を進むプレイヤーを作りました。今回は自動的にゴールを探してみます。 壁伝いに歩く 迷路は壁伝いに歩いていけばゴールにたどり着くとよく言われます。ただし、この方法は、壁とゴールが隣接している場合にしか使え…

迷路を作って遊んでみる

迷路の探索がやりたくなったので、迷路を作ってみました。 セルの種類 まず迷路を表現するためにセルを作ります。このときセルの種類として以下のものを想定します。 壁 通路 スタート ゴール これをオブジェクトで表現すると以下のようになります。 var MAZ…

グラフで遊んでみる

最短経路問題で使われるダイクストラアルゴリズムの復習のために、JavaScriptで簡単なプログラムを作ってみました。 グラフを表す 今回扱う問題は、有向グラフにしておきます。まず、グラフを表すために、ノードとエッジに対応するクラスを作ります。 /** * …

涼宮ハルヒの消失

劇場版「涼宮ハルヒの消失」、とてもいい映画でした。涼宮ハルヒシリーズ一番の傑作です。BGMが消失のイメージに合いすぎてて、「これぞ涼宮ハルヒの消失だ!」っていうオーラが出てました。こんな雰囲気のいいアニメ、めったにないですよ。気になった点だけ…

Eclipseのフォーマッタ

以前、自分用のコーディング規則について書いたのですが、それに合わせてEclipseのフォーマットの設定をいじってみました。Eclipseは、かなり細かい点までソースコードの書き方を決められるので嬉しいですね。Visual Studioは、せいぜいインデント幅くらいし…

C言語の型について

C言語型について気になった点をメモしておきます。なお、かなり自己解釈しているので間違ったことを書いてるのを前提に読んで欲しいです。 型の分類 私のみたところ、C言語の型は、基本型、参照型、そして特殊な型に分類することができます。*1 基本型 (int…

C言語メモ

「JavaプログラマのためのC作法」という本を読みながら、C言語について勉強しています。大学ではJavaをメインに習ったのでC言語ってあまりやってないんですよね。さてC言語で気になった点だけメモしておきます。 細かい点いろいろ boolean型がない。そのかわ…

Visual StudioでC言語

C言語プログラミングをするために、Visual Studio 2010 Beta2をインストールしてみた。最初はEclipseのCDTプラグインを利用しようとしたが、機能的がしょぼく、手間もかかるので、結局Visual Studioを使うことにした。これをCでの開発用に調整する。簡単にメ…

コーディング規則を決める

私の書いたいくつかのソースコードを見てみると、コーディング規則があまり統一されておらず、結構適当に書いてることがおおい。ここらで書き方をきちんと決めておく。 インデント まずインデント幅は半角4つサイズにする。あと、tabはエディタの方で自動的…

MSDNアカデミックアライアンス

MSDN academic allianceとは? MSDN academic allianceとはマイクロソフトが学生の教育を支援するためのプログラムです。MSDNでは、マイクロソフトが提供するさまざまなソフトウェア(後述)を教育用として学生や教員が利用できるようになっています。ただし、M…

EclipseでC言語

EclipseでC言語をやるためのプラグインCDTをインストールする。途中いろいろとトラブルがあったので、その解決方法を書いておく。なお、利用したEclipseのバージョンは、3.5である。 入手 Eclipseには最初からC用のプラグインCDTが同梱しているバージョンが…

C言語とJavaの違い

JavaプログラマのためのC作法という本を読んでいます。この本には、JavaとCの違いが簡単にまとめられています。JavaプログラマのためのCの入門書というわけではありませんが、Cに関する知識は、大学一回生の授業レベルで十分です(私はCに関してはその程度の…

逆ポーランドで遊んでみる

作ってみた JavaScriptで、とても単純な逆ポーランドの記法の処理系を書いてみました。ちなみに足し算しかできません。最も基本的な文法は、こんな形になります。 3 4 plusこれは 3 + 4 を計算します。演算子は「+」だと面白くないので、「plus」にしてみま…

多次元配列を扱うクラスを作ってみた

JavaScriptで多次元配列を扱うのってめんどうですよね。例えば、10*10の二次元配列を考えて見ます。この配列は各要素の初期値として0が入っているものとします。 var array = new Array(10); for(var i=0; i

五目ならべ作ってみた

朝からさくっと3*3の五目並べ(?)作ってみました。一応Prototype.jsに依存しています。http://www17.atpages.jp/prime503/gomoku/ index.html <html> <head> <script src="prototype.js"> </script> <script src="gomoku.js"> </script> </head></html>

諸君、私はチャクラ宙返りが大好きだ

サスケェ! 以前の記事からさらにサスケェを増やしました。友達と一緒にサスケェを入手するためにマクドナルドへ行ったのですが、一件目にいったマクドナルドは工事中。二件目のマクドナルドは、まさかのチャクラ宙返りが品切れ。そしてついに三件目のマクド…

配列の隙間を詰める関数を作ったよ

こんなことに使えるよ JavaScriptで配列の隙間を詰める関数を作ってみました。例えば、こんな風に間にnull要素が混じる配列があったとすると。 [9,6,null,5,7,null,8] 間を詰めて、こんな風にしてくれます。 [9,6,5,7,8,null,null] 今回これを実現するために…

サスケェ!お前の前のたなのオレオとってオレオ!

前回の続き。 影分身の術 幽体離脱 セミとコラボ 野外撮影 猫 おわり 追記 続き書きました。

よろしい、ならばチャクラ宙返りだ。

サスケェ! ついに話題のハッピーセットのサスケェのおもちゃ、通称「チャクラ宙返り」を手にいれました。 この顔の造りがたまらん。 目が赤い。車輪眼? 後ろにはつっかえ棒がついてます。つっかえ棒なしでは、宙返りに失敗します。 つっかえ棒をはずすと、…

JavaScriptのprototypeプロパティに対する理解

prototypeに対する理解を深めるために少し考えてみた var obj = {}; var func = function(){}; alert(obj.prototype); //undefinedと出力 alert(func.prototype); //[object Object]と出力 まずprototypeプロパティを出力してみる。obj(普通のObject)の場合…

セイムゲームのソースコード

「セイムゲーム作ったよ」で紹介した奴のソースコードです。最初にソースコードを添付しておきます(後に掲載しているものと同じです)。 samegame.zip 方針 以前オセロを作ったのですが、オブジェクト指向的に書くということを目的にしていたので、少し大げさ…

セイムゲーム作ったよ

セイムゲームとはパズルゲームの一種です。下の図をご覧ください。画面には数種類のブロックがあり、同じ種類のブロックが2つ以上繋がっている場所をクリックすると、ブロックが消えます。ブロックが消えた箇所の上にブロックが乗っていれば、上のブロックが…

ホームページのスペースを借りてきた

ホームページのスペースを借りてきました。探していた条件としては以下のとおり。 無料 広告が小さい PHP5が動かせる ある程度信頼性がある 個人運営じゃない 運営期間が長い URLが短い 前々からXREAがいいなと思っていたのですが、XREAは新規募集していませ…

cssTextのクロスブラウザ対策

cssTextの挙動の違い HTMLのDOM要素には、DOM要素内に含まれるテキストをinnerHTMLというプロパティによって扱うことができます。これと同様にDOM要素に適用されているスタイルシートをテキストとして扱えるcssTextというプロパティがあります。詳しい説明は…

繋がっているブロックの数を調べる - ぷよぷよアルゴリズム

ぷよぷよのゲームを実装しようとした場合、4つ以上のブロックが繋がっているか調べる必要があります。今回、「ぷよぷよの作り方」を参考に、JavaScriptで繋がっているブロックの数を調べる方法、繋がっているブロックを消す方法を実装してみました。元のサイ…

iTunesスクリプト関連の記事まとめ

iTunesスクリプトとは、名前のまんまですが、iTunesを操作するためのスクリプトです。普段手動で行っているようなiTunesの操作をスクリプトを書くことで自動化できます。例えばiTunesの曲を一曲一曲編集するのは大変ですよね。iTunesスクリプトを使えばこの…

JavaScriptによるアニメーションの基礎

JavaScriptでDOMを操作してアニメーションを実現する。アニメーションの基礎の基礎。まずは、こんなhtmlを用意する。 <body onload="init()"> <div id="board" style="position:relative;overflow:hidden;width:500px;height:300px;background-color:gray;"> <div id="pin" style ="position:absolute;left:100px;">●</div> </div> </body> idがboardとなっているdiv要素がアニメーションの描写…

JavaScriptでちょっと変わったシングルトン

シングルトンって何? シングルトンとは、あるクラスから生成されるインスタンスを一つに抑えるためのデザインパターンです。このパターンを使うことで、無駄に新しいインスタンスを生成するのを抑えます。今回、最速インターフェース研究会のJavaScriptのデ…

オセロプログラムの話12 - setTimeoutの活用

setTimeの話 オセロプログラムの話11の続き。今回は、setTimeoutを上手に使って、処理の流れを綺麗にしてみます。以前、「JavaScriptのタイマー処理 setTimeoutとその活用」として、記事を書いたのですが、そこではsetTimeoutをタイマーとしてではなく、処理…

オセロプログラムの話11

オブジェクト指向っぽくオセロを作る(まとめ)で作ったプログラムをもう少し発展させます。まず、駒を置いた箇所をハイライトする機能を作ります。次に、ここで作った駒をハイライトするという機能を使い、自分の番が回ってきたとき、駒が置ける場所をハイラ…