2014-11-01から1ヶ月間の記事一覧
1.RSA暗号 最近、記事の下に「RSA暗号を生成せよ」という広告がある。この記事の下にもあるのではないかと思うが、そこには次のことが書かれている。RSA暗号を生成せよ。適当な素数\(p\)と\(q\)、下の条件を満たす自然数\(e\) 条件1: \(0 条件2: \(gcd((p-…
1.エラトステネスの篩 素数を求める方法で、よく知られているのはエラストテネスの篩(ふるい)である。原理は次のようになっている。 1.2から始まる自然数のリストを用意する。 2.また、素数が求まっていたとする。 3.素数のリストは、自然数のリス…
1.ラム 羊の肉はマトン、仔羊の肉はラムである。日本では羊の肉も仔羊の肉もあまり広くは受け入れられていない。例外は、北海道でジンギスカン鍋で羊の肉が使われる。最初に、羊の肉を食べたのはやはり北海道である。羊の肉で思い出となっているのは火鍋で…
1.データ型 シューティングゲームの主要な部分の説明は終わったので、ここでは、このゲームのために定義したデータ型やタイプを説明する。プログラムは次のようになっている。 module Types where import FRP.Yampa type Pos = (Double, Double) type Vel …
1.概略 ゲームを構成するプログラムの説明がほぼ終了したので、それらをまとめてゲームのプログラムとして機能させるメインプログラムを見ていく。Yampaではreactimateという関数を用意している。これを働かせるためには、初期化ルーチン、入力ルーチン、…
1.概略 ゲームの出力を行うのはグラフィックスである。広く利用されているのはOpenGLである。その簡易版はGLUTである。また、最近ではSDL(Simple DirectMedia Layer)も広く利用されている。このシューティングゲームではGLUTを用いる。ゲームの進行状況を…
1.概略 ゲームプログラムの登場人物、このシューティングゲームでは石二つと鳥一羽、の振舞いを定義しなければならない。どの石も同じ振舞いをすることにすると、ここでは、石と鳥の二種類の振舞いを定める必要がある。Yampaでは登場者の振舞いは信号関数…
5.用語の説明 説明に入る前にまず言葉の定義をしておく。ゲームの中で登場する人や物を登場者と呼ぶ。その振舞いは信号関数により定義されている。ゲームはある時間間隔で進行する。一つの時間間隔をサイクルと呼ぶ。登場者はあるサイクルを始める前にある…
1.プロセスの概略 Yampaを用いてのゲームは、reactimateを用いるが、reactimateは前にも記述した通り、init,input,output,processで構成されている。今回の記事では、この中のprocessについて説明する。ここで説明するゲームは極めて簡単なゲームで、石を…
1.チェコの思い出 2年ほど前にチェコの首都プラハに1週間程度滞在したことがある。夕方になると、ビールを飲みがてら夕飯をとりに、地元の人達で賑わっているレストランを訪れた。ある時、母親と子供二人のテーブルに目が留まった。母親が子供の一人にパイ…
1.Yampaでのゲーム作成 Yampaでのゲームの作成の概略はMeisinger作成の下図のとおりである。 この図をフローチャートで示したのがMeisinger作成の下図である。 ゲームのプログラムは、Yampaが用意しているreactimateという関数を利用する。これは4つの部分…
1.菊を愛でる 伊豆の修禅寺にある虹の郷で「菊花まつり」が開催されていたので見学に行ってきた。かってはお祭りに合わせて、全国各地で、菊の花を愛でる会があったが、現在は洋花に押されて豪華な菊の花を見る機会が減ったように思う。伊豆に滞在中の一日…
1.Haskanoidでの信号関数 パックマンでは信号関数はオブジェクトと入力の対を得てオブジェクトの新しい状態を得ていた。Haskanoidでも原理は同様である。信号関数はオブジェクトごとに用意され、信号関数への入力は、キーボード、マウス、Wiiリモートプラ…
1.動作画面 Haskanoidの操作画面は次のようになっている。 この画面が出てくるまで、インストール時に様々な障害に出会うことと思うが、最も生じやすいエラーは、画像や音声のデータがないと言われることだと思う。Haskanoidはこれらのデータをdata(小文字…
1.Yampaの生い立ち Yampaは前にも説明した通り、関数型リアクティブ・プログラミング(Functional Reactive Programming)の概念に基づいて離散的なシステムと連続的なシステムの両方を扱えるハイブリッドなプログラミングで、ドメイン特化言語である。Yampa…
1.懐かしいパックマン Yampaを用いてのゲームの作成方法は、Gerold Meisinger (University of Applied Sciences Upper Austria) の学位論文「Game-Engine-Architektur mit funktional-reaktiver Programmierung in Haskell/Yampa」やそれに関連する学会論…