めるまがきっず「つべこべ言わず組んでみよう(前編)」
////////////////////////////////////////////////////////////////////////////////
//
// ☆ めるまがきっず ☆
//
// 〜とっても「ゲーム的なたつにい」による、まったりメルマガ〜
//
//
// 配信者:
// 早瀬 竜也(たつにい)
//
// 配信日:
// 2007/12/31
//
//
// 第4回 「つべこべ言わず組んでみよう(前編)」
//
昨日も配信したけど今日も配信してみました〜
ちょっとずつだけど購読者が増えてきて嬉しい、早瀬竜也こと「たつにい」です〜
せっかくプロジェクト構成の解説をしたのに、肝心のプログラムを組まなければ、全く意
味が無いと悟った僕は、初心者の方々にプログラムを組んで頂くべく、簡単な講義をする
ことにしました。その名も「つべこべ言わず組んでみよう」です(苦笑)
でも、これが結構大切でして、サンプルプログラムを100回読むよりも、1回でも実際に
自分で打ち込んでみて、どのように動作をするのかを体感してみるほうが効果的です。
問題はどのサンプルプログラムを組むかにもよりますが、個人的な意見としては参考書の
サンプルプログラムは本にもよりますが、固っ苦しい解説や前置きがあるため体で覚える
のにはあまり向かないものが多いです。
そういうわけで「とにかく組む」ことに重点を置いて、サンプルプログラムのソースだけ
いくつか用意してみました。解説に関しては大まかにしかしていないので、僕の解説で、
大まかな概要をなんとなく覚えて、それから参考書等で正しい知識を身につけましょう。
固っ苦しい解説でも、前知識がある程度あれば意外とすんなり頭に入ってくれる場合があ
ります。いわゆる階段の原理と同じで、一階から二階にジャンプして登るのは、常人には
厳しいものがありますが、階段を一歩一歩着実に登ることなら、誰でもできますよね?
そんな階段の一段のように簡単なところから、体に叩きこめるサンプルプログラムを例に
よってスクリーンショットをつけて大雑把に説明していきます。
とにかく僕の望みは「Microsoft Visual C++ 6.0」等のコンパイラを持ってるなら、プロ
ジェクトを構成し、一人でも多くの初心者達がプログラムの第一歩を踏み出すことです。
僕のメルマガを読んでくださるのも嬉しいですが、実際に組んでみてくれたらもっと嬉し
いです。なんてったってそのためにこのメルマガを書いているんですから(笑顔)
僕のサイト「どり〜むきっず」でもメルマガのバックナンバーを公開させてもらっていて
そちらの方では、見やすいようにスクリーンショットをページに埋め込んでいます。
もし宜しければ、僕のサイトに飛んで、初めてのプログラムに挑戦してみてください〜
↓プロジェクト構成がまだの人はコチラへ
http://dreamkids.sakura.ne.jp/article/003.html
↓どり〜むきっず「このメルマガのバックナンバー」
http://dreamkids.sakura.ne.jp/article/004.html
////////////////////////////////////////////////////////////////////////////////
//
// 「つべこべ言わず組んでみよう(前編)」
//
////////////////////////////////////////
// 0、よくあるコンパイルエラー(笑)
全くの初心者の為に、プログラムを組む時の注意点を一つだけ伝えておきます。
error C2018: 文字 '0x81'は認識できません。
error C2018: 文字 '0x40'は認識できません。
ソースを見た限りおかしなところは無いのに、上記二つのコンパイルエラーが出た場合、
プログラムのどこかに「全角スペース」を使ってしまってます。C/C++言語では原則的に
「全角文字」は使用できません。特に「全角スペース」をどこかに入れてしまうと、見た
目はどこもおかしくないのに何故かエラーが出るという不可解な状況に陥ります。もしも
上記のコンパイルエラーが出た場合、エディタの検索機能で「全角スペース」を検索し、
消すか、「Tab」もしくは「半角スペース」に置き換える等の対処をしてください。
////////////////////////////////////////
// 1、最も短いプログラム(笑)
たったコレだけです。このプログラムが組めないという人は、パソコンの入力自体がまと
もに出来ないって事になります。「void」って字が青くなっていない人は、おそらくスペ
ルがミスっています。そして「mein」ではなく「main」です(笑)
とりあえずコンパイルしてください。キーボードの「F7」でコンパイルです。エラーが出
なければ、まぁ成功でしょう。実行はキーボードの「F5」で可能ですが、一瞬黒い画面が
パッて現れてパッって消えるだけです。
このプログラムではC/C++言語で必ず必要な、処理の開始位置である「メイン関数」を宣
言しています。……それだけで他の処理は一切何もしていません(苦笑)
だから言ったでしょ。「最も短いプログラム」だって(微笑)
////////////////////////////////////////
// 2、コメントは目に優しい(笑)
緑色の文字で「// これはコメント」「/* これもコメント */」と追加されました。なん
で緑色なのかというと、それはコメントだからです(微笑)
この緑色のコメント部分では、先ほど使用できないと書いた「全角文字」も使うことが出
来ます。勿論「半角文字」も使えますし「全角スペース」もどうぞご自由に。なぜなら、
この緑色のコメント部分に何を書いたとしてもプログラムには反映されないからです。
なぜこんな機能があるかといいますと、「目に優しいプログラム」にするためです(笑)
パソコンのディスプレイは光を発することにより色を表現しています。緑の光は最も人の
網膜に負担をかけない波長であり、人は緑色を見るのに労力を要さないので、長時間緑色
を見続けていても疲れることはなく、集中力を保つことができます。そのため所々にコメ
ントを入れ、目に入る緑色の色調の光を増やすことによりプログラムの効率が増します。
……っていう、変な説得力のある冗談はさておいて、コメントはプログラムの説明書きと
して使う機能です。
プログラムを組んでいると、所々に難解なアルゴリズムを組んでしまうことがあります。
そのアルゴリズムがどんな処理をしているのかを端的にコメントで説明書きを残しておく
と、後々手直ししたり、ソースを読み直すときに大変便利です。
人にはそれぞれ限界がありますから、計算式を見ただけでそれがどんな動作をするか見分
けるのにはそれなりに時間を要します。でもコメントをつけておけば、その難解な計算式
の意味が一瞬でわかります。つまりソースをガン見しなくてもいいので目に優しいです。
もし、あなたが難解な計算式を一目見ただけでどんな処理をしているのか理解できる人な
らコメントをつけろと強制はしませんが、そうでないならコメントをつける事を強くオス
スメします。複数人でプログラムを組んでいるのならコメントは必須です。
////////////////////////////////////////
// 3、はろ〜、わ〜るど(笑)
イキナリ行数が増えたからといって、驚かないで下さい。ほとんどがコメントですので。
実際に増えた処理は「#include <stdio.h>」と「printf( "Hello world" );」だけです。
インクルードを解説するのは少々面倒なので興味のある方は自力で調べて〜(オイッ!)
んで、なんとなく見てわかりそうなのは「プリントエフ」の方ですね。ダブルクォーテー
ション(")で囲われている文字列を画面に表示するんですよ。ほんの一瞬だけ……
文末のセミコロン(;)は日本語で言う「。」と同じ意味合いで、処理の区切りを意味し
ますので、必ずつけて下さい。プログラム言語は書式にうるさいので、几帳面にしっかり
とつけて下さい。
そこで「ん? じゃあなんでインクルードの方には、セミコロンが付いてないの?」って
思った人はカンが鋭いです。それはインクルードの書式の方が特殊なのです。……なので
疑問に思った方は、自力で調べてスッキリ理解してください(笑顔)
////////////////////////////////////////
// 4、見えねぇよ! ってお方に(笑)
僕も動体視力が弱いので、処理が速すぎで「Hello world」の文字が見えません。なので
「getchar();」という処理を「プリントエフ」の下の行に追加しました。
すると、どうでしょう……。「F7」でコンパイルし、「F5」を押してプログラムを動かし
てみると、黒いコンソール画面に「Hello world」と、白い文字がしっかり出ています。
「Enter」キーを押せば、黒いコンソール画面が消え、プログラムも終了します。
これで色々テストしやすくなりましたね(やったー)
ためしに「プリントエフ」の「ダブルクォーテーション」で囲われた部分の文字を書き換
えてみてください。ちなみにその部分にも例外的に「全角文字」を使うことが出来ます。
////////////////////////////////////////
// 5、なんか変な世界(笑)
メールが着たんだ。「ごめん」って一言だけ書いてあって、その下にはずっと「改行」が
続いてるんだ……。気になった俺は携帯のボタンをポチポチ押して下にスクロールさせた
んだ。そして最後の行には「さよなら」って書いてあって、振り向いたらそこには……。
ネタがわからない人は、上の文を読み飛ばしてくださって構いません。意味は無いので。
「ゲットキャラ」を追加して処理が見えるようになったとき、素直に「Enter」キーを押
した人は気が付かなかったと思われますが、適当なアルファベットを入力すると……とて
も変なことに、黒い画面に文字を入力できてしまいます(苦笑)
せっかくの「Hello world」が変になってしまった瞬間です!
これは「ゲットキャラ」が「画面を見えるようにする処理」をする機能(関数)じゃあな
くて、文字入力を受け付ける機能だからです。文字を受け付けている間は処理が止まって
いるから、出力結果である「Hello world」が見れます。そして「Enter」キーを押せば入
力受付を終了し「ゲットキャラ」はその結果を出すんですが、それを受け取ってないし、
その後に何の処理も無いため、プログラムが終了し画面が消えてしまうということです。
……ってことで、あんまり気にしないで下さい。どうしても気になるなら自分で検索して
調べてみるのもアリですけどね。
////////////////////////////////////////
// 6、改行コード
「ゲットキャラ」の変な仕様がわかったところで、ついでだからその機能をありがたく利
用させてもらい、「改行コード」の説明をすることにします〜
上のプログラムと下のプログラムそれぞれにソースと処理結果を載せましたが違いがわか
りますか? ちなみに処理結果の方の「Hello world」の後に続く文は、僕が適当に打ち
込んだものなので、過度な期待はしないで下さい。
ソースの違いは「ダブルクォーテーション」で囲まれた「Hello world」のところで、下
のソースには「¥n」が追加されています。これが「改行コード」です。
まぁ、この「¥n」はHTMLで言う「<br>」タグだと思ってください。HTMLを知らないって
人もいるかもしれないけど、そういうものなので例えとして出しました。
この記号が追加された下の方の処理結果では、僕が適当に打ち込んだ文の部分が改行され
て表示されていることがわかると思います。
さて、残りの項目もいくつかありますが、一つ一つの解説が長くなりそうな箇所なので、
ここまでを前編とし、次回に回そうかと思います。
次回の予定としては「変数」「繰り返しのfor文」「条件分岐のif文」等を考えてます。
如何でしたでしょうか?
ちょっとでも誰かのお役に立てたのならそれだけで嬉しいので、「役に立ったよ!」って
思った方は、もし宜しければメール下さい〜
僕は寂しがりやなので、一通のほんの2〜3行くらいの励ましメールで大喜びします!
それでは、次回も色々と語りますのでヨロシクです〜
メールマガジン「めるまがきっず」
発行責任者:早瀬 竜也(たつにい)
公式サイト:「どり〜むきっず」 http://dreamkids.sakura.ne.jp/
問い合わせ:hakka17@hotmail.com
発行サイト:「まぐまぐ!」 http://www.mag2.com/
登録・削除:http://www.mag2.com/m/0000254884.html
上記の記事は僕が配信しているメールマガジンのバックナンバーです。
配信は不定期ですが、忘れた頃にゲーム制作に関しての有益な情報を
受け取ることにより、ゲーム制作の潜在的意欲が上がるかもしれませんよ?
登録は無料ですので、興味のある方は下記フォームよりどうそ!
過去バックナンバー
|