アルゴリズム

チェインハッシュ(Chain Hash)

概要 ハッシュテーブルと連結リストを組み合わせた構造。 ハッシュ キーをハッシュ関数からハッシュ値を取ってグループ化する。 ハッシュ関数はキーの分布によって衝突が発生しにくくするとよい。 例:キー:int型 ハッシュ関数:剰余 unsigned int hash(int …

集合知プログラミング

集合知プログラミングposted with amazlet at 10.10.08Toby Segaran オライリージャパン 売り上げランキング: 42182おすすめ度の平均: 「集合知」の入り口 実務者向けの教科書としてはいいのかも? 広く,そして,もの凄く浅く とても実用性の高いデータマイ…

エイトクイーン問題 by Scala

方針 パターンマッチを上手く使う。 斜め方向は、網目探索にならないように関数を渡して演算を固定する。 (書いた当時はScala初心者なので上手い方法あったら教えてください。) サンプルコード object EightQueen { def check(number: Int, f: Int=>Int, lis…

エイトクイーン問題

問題の詳細 チェスにおけるクイーンは十字方向と斜め方向に動くことができる。(飛車角みたいな動き) 8x8の盤面で各行に互いに取られない位置にクイーンを置きたい。そして置くことのできる総パターン数を求める。 問題の概要 概要 ループや配列の扱い方な…

高速固定長アロケータ

概要 newとかdeleteってもの凄く重いですよね。 何故かって割り当てられる領域を探すのに時間がかかっているんです。 OS側でメモリを管理しているわけですが、色んなシステムが割り当て要求をしてきます。 さらに大きさがバラバラなので、割り当て取り消しを…

スマートポインタ(参照カウント型)

概要 C/C++の話なんですが、メモリ管理ってめんどくさいですよね。 誰が生成して誰が消去するのか、2度もdeleteすると危ないです。 そんなわけで、自動的に解放してくださるクラスを作りましょう。 制作方針 C/C++のtemplateの機能を使って実現します。 以下…

FizzBuzz by C/C++

方針 forループで回して、剰余演算子「%」を利用した条件分岐。 サンプルコード #include <stdio.h> int main() { //---------------------------------- // const は 変更を禁止する修飾 //---------------------------------- const static int N = 100; for(int i=</stdio.h>…

FizzBuzz問題

問題の詳細 1から100までの数を表示せよ。 ただし、3で割り切れる時は Fizz と表示、5で割り切れる時は Buzz と表示。 また、3でも5でも割り切れる場合は FizzBuzz と表示。 問題の概要 概要 基本的なループや条件分岐、演算子の確認。 対象 初心者級 難易度…

状態遷移の柱「簡易シーケンス1」

ゲーム制作で全体像を考えるのは簡単なようでちょっぴり難しい。 プレイの流れがあっちこっちに行って制御しにくいというように(汗 そんなわけで、初心者の悩みの種であるシーケンスの攻略法です。 順番に並んでいること。または、並んでいる順番で処理を行…

C++でSingletonの実装

Singletonとは、デザインパターンの一種でインスタンスが1つだけであることを保障します。 コンストラクタをprivateにする。 //==================================== // Game(Singleton) //==================================== class Game { private: Ga…

FPS管理サンプル for C/C++

FPS(frame per second)を整える方法のC/C++によるサンプル fpser.h #ifndef _FPSER_ #define _FPSER_ //=================================== // FPSの調整・管理クラス //=================================== class Fpser { private: const static int COU…

FPS管理サンプル for Ruby/SDL

FPS(frame per second)を整える方法のRuby/SDLによるサンプル require 'sdl' class Fpser private @next_time=0 @fpslist @fps @@WAIT_TIME=16.66666 public #-------------------------------------- # コンストラクタ #----------------------------------…

FPS(frame per second)を整える方法

導入 動画のなめらかさを表す指標。1秒間に何枚の画像を表示しているかを示す。e-words ゲームプログラミングにおいては、「1秒間に何回メインループを処理させるか」 という意味で使われることが多いようです。 FPSが制御されないと、コンピュータの性能差…

RubyでSingletonの実装

Singletonとは、デザインパターンの一種でインスタンスが1つだけであることを保障します。 モジュールを使って実装する require "singleton" class SingletonClass include Singleton #クラスの実装内容 def method() puts "hello" end end #obj = Singleto…