2011-01-01から1年間の記事一覧

HTML5/Javascriptでマルチプラットフォームのゲームを作るときの小ネタ

iPhoneやAndroidといったスマートフォンや、iPadなどのタブレット端末を意識したゲーム作りの小ネタです。 イベントの伝播を防ぐ スマートフォンやタブレット端末ではタッチイベントが多用されます。 ブラウザで実行する際に、タッチすると拡大縮小やフォー…

ヒューマンインタフェースとゲーム制作6 ユーザビィティテスト

開発者は自分でプレイすることは多いと思います。要するにデバッグ地獄(ry けれども、他の人や特定のパターンのユーザにしか分からない、「つまらない部分」があるはず。 ユーザ(プレイヤー)にシステム(ゲーム)を実際にプレイしてもらい 様子を観察するこ…

ヒューマンインタフェースとゲーム制作5 ユーザ・タスク分析

ゲームを制作する上でユーザーのことを考えるという行為は重要です。 また、ゲームにおけるタスクは適切か検証することも必要でしょう。 例えば、あのステージをこんなふうに攻略するユーザーはそんな反応を期待していて 後にこんな遊び方を提示したら喜ぶん…

ヒューマンインタフェースとゲーム制作4 アイコンの設計

プレイヤーアイコン・武器アイコン・メニューアイコン・敵アイコンなどなど アイコンってやつはいろんな所で使われているんです。 ただカッコイイだけではなくて適切な設計を行えるようにしたいものです。 アイコン(イメージ)の性質 言語より学習・記憶が容…

ヒューマンインタフェースとゲーム制作3 グラフィカルコーディング

グラフィカルコーディング グラフィカルコーディングは、ある系列を視覚情報でコード化するというものです。 ちなみに、ソースコードとかは関係ないです。 グラフィカルコーディングの例 トイレの男女マーク 色 形 男 青 逆三角 女 赤 三角 信号機 色 止まれ…

ヒューマンインタフェースとゲーム制作2 人間の心理特性

プレイヤーがどこまでできるかといった話。 NPCの設計で人が動いてるようにしたい、なんてときにも役に立つかも。 認知機構 モデルヒューマンプロセッサ 人間を情報処理システムとして見なしたモデル 視覚・聴覚・触覚・味覚・嗅覚などを知覚プロセッサで知…

ヒューマンインタフェースとゲーム制作1 インタフェース

ヒューマンインタフェース ヒューマンインタフェースってなんでしょうね。 ヒューマンインターフェース(Human Interface以下 HI と 略)とは,もともと人間と人間の周りの様々な機械・機器との間で情報をうまくやり とりできるように,人間の特性を応用してい…

優先度付き幅優先探索(最小コストの算出)

内容 よくある最短経路や最小コストを求める問題。 ダイクストラの拡張例みたいなもの。 生成された状態空間の中でもっともコストの小さい状態を抽出。 抽出された状態がゴールならそれが最小。 抽出された状態から次の状態を状態空間に挿入していく。 集合…

Problem 2252 koukyoukoukokukikou ICPC模擬国内予選2011 A

問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2252 解き方 xorを使うと早いかも。 xorは変化ありならtrue,変化なしならfalseになる ソースコード #include <iostream> #include <string> using namespace std; bool is(char c) { return c=='q'||c=='w'||c=</string></iostream>…

Problem 2253 Brave Force Story ICPC模擬国内予選2011 B

問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2253 解き方 マップの大きさが-30から30では無いので注意。死亡。 あくまで、スタート位置、障害物が-30から30の間にある。 それさえ分かれば、優先度のあるBFSするだけ。 ソースコード #inc…

Problem 2254 Fastest Route ICPC模擬国内予選2011 C

問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2254 解き方 頂点数が16以下なので、ビットDPで解ける。 int s;で (0000...0000)2の各ビットを頂点に対応させ訪れたかどうかの情報を保持させる。 s == 1 == (0000...0001)2なら、1つ目の頂…

Problem 2255 6/2(1+2) ICPC模擬国内予選2011 D

問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2255 例について考えてみる 6 / 2 * ( 1 + 2 ) > 6 / ( 2 * ( 1 + 2 ) ) > ( 6 / 2 ) * ( 1 + 2 ) 6 / 2 * ( 1 + 2 * 3 ) > 6 / ( 2 * ( ( 1 + 2 ) * 3 ) ) > 6 / ( 2 * ( 1 + ( 2 * 3 ) ) )…

C言語でCSVファイルを高速読み取り

概要 「,」で区切られたデータ形式のことをCSVと呼びます。 表計算の表現として各セルを「,」で区切って表現することもあります。 // data.csv hello,world,!!! ok, input,data 意識する点は、文字列の先頭と「,」の位置です。 そして、「,」を終端記号「0」…

#includeとCSVファイル

概要 #include文を利用して、CSVを手軽に読み込む。 // data.csv 100,200,300 // main.cpp int DATA[] = { #include "data.csv"; } #includeの仕様を考えると外部ファイルをそのまま展開する。 さらにC/C++の配列の初期化方法ではCSV形式になっている。 二つ…

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

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