<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; 式</title>
	<atom:link href="http://www.game-create.com/archives/tag/%e5%bc%8f/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使わない脳は衰えると実感</title>
		<link>http://www.game-create.com/archives/3334</link>
		<comments>http://www.game-create.com/archives/3334#comments</comments>
		<pubDate>Sun, 16 May 2010 13:40:54 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ウェブログ]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[Word]]></category>
		<category><![CDATA[コード進行]]></category>
		<category><![CDATA[作曲]]></category>
		<category><![CDATA[勉強]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[配列]]></category>
		<category><![CDATA[関数]]></category>
		<category><![CDATA[音楽]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=3334</guid>
		<description><![CDATA[数を扱うプログラマでありながら Excel が苦手な方も多いかと思われます。自分なんかが良い例なんですが、高校生の時から使ってるはずの Excel に聞いたこともない機能があって驚きました。
日経PC21 / エクセル「 [...]]]></description>
			<content:encoded><![CDATA[<p>数を扱うプログラマでありながら Excel が苦手な方も多いかと思われます。自分なんかが良い例なんですが、高校生の時から使ってるはずの Excel に聞いたこともない機能があって驚きました。</p>
<p><a href="http://pc.nikkeibp.co.jp/pc21/special/hr/" class="external">日経PC21 / エクセル「配列数式」講座</a></p>
<p><span id="more-3334"></span></p>
<p>昔からしっかりと存在する機能のようでして、ちゃんと勉強しておけば良かったかもと思います。以前、 Word の入門書は買ったのですが、 Excel の入門書も買ってこようかなぁ…</p>
<p>なかなか頭に入りません。脳みそが硬直化してきております。</p>
<p>余談なのですが、 VBA を使うとスクリプトの実行許可を与えなくてはならないため、面倒でも折り返し表示で５行くらいになる関数を書くことがあります。これもちゃんと勉強すれば良い方法があるのかもしれませぬ（ゲーム音楽作曲のため、キー名を入力するとコードを自動で表示する表を作っております。現在、ダブルシャープに対応中）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/3334/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D ゲーム数学には線形代数が必要ですが、思えば私はこの問題から始まりました</title>
		<link>http://www.game-create.com/archives/1474</link>
		<comments>http://www.game-create.com/archives/1474#comments</comments>
		<pubDate>Thu, 02 Apr 2009 06:06:35 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[数学]]></category>
		<category><![CDATA[線型代数学]]></category>
		<category><![CDATA[行列]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1474</guid>
		<description><![CDATA[３人の子供を持つ名古屋さんは遺産として金の延べ棒を 23 個残しました。
遺言によると配分は次のようになります。

長男には 1/2 を配分する
次男には 1/3 を配分する
三男には 1/8 を配分する

ただし、次の [...]]]></description>
			<content:encoded><![CDATA[<p>３人の子供を持つ名古屋さんは遺産として金の延べ棒を 23 個残しました。</p>
<p>遺言によると配分は次のようになります。</p>
<ul>
<li>長男には 1/2 を配分する</li>
<li>次男には 1/3 を配分する</li>
<li>三男には 1/8 を配分する</li>
</ul>
<p>ただし、次の条件が課せられています。</p>
<ul>
<li>遺言書の配分を変更してはならない</li>
<li>金の延べ棒に手を加えてはいけない、以下は禁止
<ul>
<li>割る（１本を複数本に分割する）</li>
<li>溶かす</li>
<li>換金する</li>
<li>別のものと交換する</li>
</ul>
</li>
<li>配当を辞退してはならない</li>
</ul>
<p>はてさて？</p>
<p><span id="more-1474"></span></p>
<p>頭の体操系の常連問題ですので、かなり同じ系統の問題が多いと思います。知っていらっしゃる方も多いかもしれませんね。もし、知らない方はチャレンジしてみてください。</p>
<p>あと、数値はうろ覚えです。誰か正しい数値をご存じの方はご教授ください。本当はもっとわざとらしくない数値だったような気がするのですが…</p>
<p>なぜ、いきなりこの問題を出してみたのかと申しますと、私は割り算が苦手で、割る数より割られる数の方が大きい計算でない限り、式をかけ算に直して計算する癖があるのですが、そのきっかけがこの問題だったのです。</p>
<p>3D ゲーム数学で大活躍の線形代数も行列の割り算は定義されていません。ただいまかけ算ライフまっただ中です。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1474/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>変数の数値を１増やす、または１減らす</title>
		<link>http://www.game-create.com/archives/592</link>
		<comments>http://www.game-create.com/archives/592#comments</comments>
		<pubDate>Wed, 13 Aug 2008 00:41:40 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[数値]]></category>
		<category><![CDATA[算術演算子]]></category>
		<category><![CDATA[言語仕様]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=592</guid>
		<description><![CDATA[変数の数値を１増やす、または１減らすためには、インクリメント演算子、またはデクリメント演算子を使います。

百聞は一見にしかず。早速例を見てください。
value = value + 1;
value = value  [...]]]></description>
			<content:encoded><![CDATA[<p>変数の数値を１増やす、または１減らすためには、インクリメント演算子、またはデクリメント演算子を使います。</p>
<p><span id="more-592"></span></p>
<p>百聞は一見にしかず。早速例を見てください。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">value</span><span class="hl-default"> = </span><span class="hl-identifier">value</span><span class="hl-default"> + </span><span class="hl-number">1</span><span class="hl-default">;
</span><span class="hl-identifier">value</span><span class="hl-default"> = </span><span class="hl-identifier">value</span><span class="hl-default"> - </span><span class="hl-number">1</span><span class="hl-default">;</span></pre></div></div>
<p>value の値をそれぞれ１増やしたり１減らしたりしていますが、これは次のように書くことができます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">value</span><span class="hl-default">++;
</span><span class="hl-identifier">value</span><span class="hl-default">--;</span></pre></div></div>
<p>これがインクリメント演算子とデクリメント演算子です。この書き方は変数が評価されてから値が変わる点に注意してください。値が変わってから変数を評価したい場合は次のように書きます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-default">++</span><span class="hl-identifier">value</span><span class="hl-default">;
--</span><span class="hl-identifier">value</span><span class="hl-default">;</span></pre></div></div>
<p>前置型と後置型は違いは次のようになります。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">cout</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">value</span><span class="hl-default">++ &lt;&lt;</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">endl</span><span class="hl-default">;
</span><span class="hl-comment">// ↓と同じ意味
</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">cout</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">value</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">endl</span><span class="hl-default">;
</span><span class="hl-identifier">value</span><span class="hl-default"> = </span><span class="hl-identifier">value</span><span class="hl-default"> + </span><span class="hl-number">1</span><span class="hl-default">;

</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">cout</span><span class="hl-default"> &lt;&lt;++</span><span class="hl-identifier">value</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">endl</span><span class="hl-default">;
</span><span class="hl-comment">// ↓と同じ意味
</span><span class="hl-identifier">value</span><span class="hl-default"> = </span><span class="hl-identifier">value</span><span class="hl-default"> + </span><span class="hl-number">1</span><span class="hl-default">;
</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">cout</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">value</span><span class="hl-default"> &lt;&lt;</span><span class="hl-identifier">std</span><span class="hl-default">::</span><span class="hl-identifier">endl</span><span class="hl-default">;</span></pre></div></div>
<p>しかし、前置型と後置型の違いは可読性に影響を与えるという宗派もありますので注意してください。時に後置型のみを使うというルールで開発している人もいます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/592/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ビット列の計算をする &#8211; ビット演算子</title>
		<link>http://www.game-create.com/archives/431</link>
		<comments>http://www.game-create.com/archives/431#comments</comments>
		<pubDate>Fri, 18 Jul 2008 13:00:40 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[ビット演算子]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[条件式]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=431</guid>
		<description><![CDATA[ビット列の計算をするためには、ビット演算子を使います。

コンピュータのデータは、どんなデータでも０か１という情報の最小単位であるビットから構成されています。たとえば５という数値はコンピュータの内部では 0101 という [...]]]></description>
			<content:encoded><![CDATA[<p>ビット列の計算をするためには、ビット演算子を使います。</p>
<p><span id="more-431"></span></p>
<p>コンピュータのデータは、どんなデータでも０か１という情報の最小単位であるビットから構成されています。たとえば５という数値はコンピュータの内部では 0101 という形式になります。この 0101 をビット列と呼ぶのですが、このビット列を対象にしてデータを加工するのがビット演算子です。</p>
<p>ビット演算子には次の種類があります。</p>
<h4>OR 演算</h4>
<p>右か左のどちらかのビットが１の時に１となる演算です。計算にはパイプ記号を使います。</p>
<table class="style-1">
<tr>
<th>式</th>
<th>結果</th>
</tr>
<tr>
<td>0 | 0</td>
<td>0</td>
</tr>
<tr>
<td>0 | 1</td>
<td>1</td>
</tr>
<tr>
<td>1 | 0</td>
<td>1</td>
</tr>
<tr>
<td>1 | 1</td>
<td>1</td>
</tr>
</table>
<h4>AND 演算</h4>
<p>右と左の両方のビットが１の時に１となる演算です。それ以外の場合は０になります。計算にはアンパサンド記号を使います。</p>
<table class="style-1">
<tr>
<th>式</th>
<th>結果</th>
</tr>
<tr>
<td>0 &#038; 0</td>
<td>0</td>
</tr>
<tr>
<td>0 &#038; 1</td>
<td>0</td>
</tr>
<tr>
<td>1 &#038; 0</td>
<td>0</td>
</tr>
<tr>
<td>1 &#038; 1</td>
<td>1</td>
</tr>
</table>
<h4>XOR 演算</h4>
<p>右と左の両方のビットが異なるとき１となる演算です。それ以外の場合は０になります。計算には アクサンシルコンフレックス記号を使います。</p>
<table class="style-1">
<tr>
<th>式</th>
<th>結果</th>
</tr>
<tr>
<td>0 ^ 0</td>
<td>0</td>
</tr>
<tr>
<td>0 ^ 1</td>
<td>1</td>
</tr>
<tr>
<td>1 ^ 0</td>
<td>1</td>
</tr>
<tr>
<td>1 ^ 1</td>
<td>0</td>
</tr>
</table>
<h4>計算例</h4>
<p>たとえば５という数値（ 0101 ）と３（ 0011 ）という数値をビット演算すると次のようになります。</p>
<div class="hl-surround" ><div class="hl-main"><pre>OR 0101  AND 0101  XOR 0101
   0011      0011      0011
-------  --------  --------
   0111      0001      0110</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/431/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D ゲーム数学特有の線形法則</title>
		<link>http://www.game-create.com/archives/401</link>
		<comments>http://www.game-create.com/archives/401#comments</comments>
		<pubDate>Sun, 22 Jun 2008 11:44:02 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[ベクトル]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[数学]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=401</guid>
		<description><![CDATA[3D ゲームを作るときに覚えておくと便利なスカラー値のくくりだし方法です。


3D ゲームプログラミングにおける式の変形も基本は式の展開とか因数分解が通じるのですが、こればっかりは知らないと先に進めないと思います。
最 [...]]]></description>
			<content:encoded><![CDATA[<p>3D ゲームを作るときに覚えておくと便利なスカラー値のくくりだし方法です。</p>
<p><img src="http://www.game-create.com/wp-content/uploads/2008/06/linear_law.gif" alt="線形法則" title="linear_law" width="265" height="44" class="alignnone size-full wp-image-402" /></p>
<p><span id="more-401"></span></p>
<p>3D ゲームプログラミングにおける式の変形も基本は式の展開とか因数分解が通じるのですが、こればっかりは知らないと先に進めないと思います。</p>
<p>最近、 2D のゲームも 3D の基本で作った方が楽なような気がしてきました。 Microsoft の DirectX Graphics 政策がかかげる陰謀に飲まれそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/401/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>計算する &#8211; 式</title>
		<link>http://www.game-create.com/archives/93</link>
		<comments>http://www.game-create.com/archives/93#comments</comments>
		<pubDate>Wed, 26 Sep 2007 08:11:05 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[式]]></category>
		<category><![CDATA[算術演算子]]></category>
		<category><![CDATA[言語仕様]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=93</guid>
		<description><![CDATA[コンピュータの特技は記憶と計算です。計算はプログラム中に式を記述することによって実現します。

コンピュータでできる計算は加減乗除、つまり足し算、引き算、かけ算、割り算です。ちなみに累乗はかけ算の組み合わせで実現します（ [...]]]></description>
			<content:encoded><![CDATA[<p>コンピュータの特技は記憶と計算です。計算はプログラム中に式を記述することによって実現します。</p>
<p><span id="more-93"></span></p>
<p>コンピュータでできる計算は加減乗除、つまり足し算、引き算、かけ算、割り算です。ちなみに累乗はかけ算の組み合わせで実現します（言語によっては標準の機能として持っている場合もあります）。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 足し算
</span><span class="hl-number">1</span><span class="hl-default"> + </span><span class="hl-number">2</span><span class="hl-default">;

</span><span class="hl-comment">// 引き算
</span><span class="hl-number">3</span><span class="hl-default"> - </span><span class="hl-number">2</span><span class="hl-default">;

</span><span class="hl-comment">// かけ算（×ではなく * を使う点に注意）
</span><span class="hl-number">4</span><span class="hl-default"> * </span><span class="hl-number">5</span><span class="hl-default">;

</span><span class="hl-comment">// 割り算（÷ではなく / を使う点に注意）
</span><span class="hl-number">6</span><span class="hl-default"> / </span><span class="hl-number">3</span><span class="hl-default">;</span></pre></div></div>
<p>この例ではただ単純に数値同士で計算しているだけですが、たいていの場合、計算の結果をどこかに保存する目的で式を書きます。保存先として利用できるのが変数です（「<a href="http://www.game-create.com/archives/92">変数を作る &#8211; 宣言</a>」と「<a href="http://www.game-create.com/archives/91">変数にデータを保存する &#8211; 代入</a>」を参照ください）。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 足し算
</span><span class="hl-identifier">add</span><span class="hl-default"> = </span><span class="hl-number">1</span><span class="hl-default"> + </span><span class="hl-number">2</span><span class="hl-default">;

</span><span class="hl-comment">// 引き算
</span><span class="hl-identifier">sub</span><span class="hl-default"> = </span><span class="hl-number">3</span><span class="hl-default"> - </span><span class="hl-number">2</span><span class="hl-default">;

</span><span class="hl-comment">// かけ算（×ではなく * を使う点に注意）
</span><span class="hl-identifier">mul</span><span class="hl-default"> = </span><span class="hl-number">4</span><span class="hl-default"> * </span><span class="hl-number">5</span><span class="hl-default">;

</span><span class="hl-comment">// 割り算（÷ではなく / を使う点に注意）
</span><span class="hl-identifier">div</span><span class="hl-default"> = </span><span class="hl-number">6</span><span class="hl-default"> / </span><span class="hl-number">3</span><span class="hl-default">;</span></pre></div></div>
<p>実際にゲームを作る場合、たとえば攻撃力増加の薬を飲むと STR が倍になるという仕様があるとします。 STR はレベルや装備品によって数値が増減し、一定しないとすると何を基準に倍にすれば計算すれば良いのでしょうか？</p>
<p>問題ありません、式の中に変数を書くことができます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 薬を飲んで攻撃力が倍になった
</span><span class="hl-identifier">STR</span><span class="hl-default"> = </span><span class="hl-identifier">STR</span><span class="hl-default"> * </span><span class="hl-number">2</span><span class="hl-default">;

</span><span class="hl-comment">// ハリセンボンをくらった
</span><span class="hl-identifier">HP</span><span class="hl-default"> = </span><span class="hl-identifier">HP</span><span class="hl-default"> - </span><span class="hl-number">1000</span><span class="hl-default">;

</span><span class="hl-comment">// 毒のダメージを受けた
</span><span class="hl-identifier">HP</span><span class="hl-default"> = </span><span class="hl-identifier">HP</span><span class="hl-default"> * </span><span class="hl-number">0.9</span><span class="hl-default">;</span></pre></div></div>
<p>このように左辺の変数を右辺の式の中に使うこともできます。これは代入が右辺を計算してから結果を左辺に保存するという順番に定められているためです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">result</span><span class="hl-default"> = </span><span class="hl-identifier">opr</span><span class="hl-default"> + </span><span class="hl-number">10</span><span class="hl-default">;

</span><span class="hl-comment">// result = opr + 10;
// ~~~~~~   ~~~~~~~~
//  保存 ← 計算してから</span></pre></div></div>
<p>また、計算式の中には優先度があります。我々の常識と同じようにかけ算と割り算の優先度が足し算と引き算より高くなります。もし、かけ算と割り算より先に計算したい場合にはカッコでその部分をくくります。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 敵に攻撃して HP を減らした
// ダメージは自分の STR と敵の DEF の差とする
</span><span class="hl-identifier">EnemyHP</span><span class="hl-default"> = </span><span class="hl-identifier">EnemyHP</span><span class="hl-default"> - </span><span class="hl-brackets">(</span><span class="hl-identifier">PlayerSTR</span><span class="hl-code"> - </span><span class="hl-identifier">EnemyDEF</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// クリティカルヒット、ダメージが２倍
</span><span class="hl-identifier">EnemyHP</span><span class="hl-default"> = </span><span class="hl-identifier">EnemyHP</span><span class="hl-default"> - </span><span class="hl-brackets">(</span><span class="hl-identifier">PlayerSTR</span><span class="hl-code"> - </span><span class="hl-identifier">EnemyDEF</span><span class="hl-brackets">)</span><span class="hl-default"> * </span><span class="hl-number">2</span><span class="hl-default">;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/93/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

