更新早めてます!
さあ、今回もいきましょう!!
以下からどうぞ!
では下のサンプルをみてくださいね。
/////////////////////////////////////////////
Function main() {
puts ("Type your name\n >");
name=gets(10);
puts ("Please say hello");
while(1) {
puts ("\n >");
answer=gets(20);
if (answer=="hello") {
puts ("Hello!!%name%!!\n");
}else if (answer=="hi") {
puts ("Hi!!%name%!!\n");
}else{
puts ("...%name%?\n");
}
}
}
/////////////////////////////////////////////
今回のはちゃんと自分で実行したので、間違いはないですww
実行してくれましたか?
もうおわかりかと思いますが、今回のは簡単な会話シミュレーションのプログラムです。
まさかこの程度じゃ楽しいゲームとして成り立つはずもないので実際はもっと増やしますが。というかこんな地味なゲームないですね←
ではいつも通り上から順番に紐解いていきましょう。
一行目、なんか最後のほうごちゃごちゃしてますね。
特に命令になってたりするわけではありませんが、ちょっとしたテクニックです。
puts関数で文章の最後に\n >とすると、
文章........
>
と表示されます。
こうすることで入力待ちっぽくかっこよくすることができます。
次に、gets関数で受けとった値をname変数に代入、文章表示とやったあとで、先日学んだwhile文の無限ループに突入します。while文の中身を解放しましょう。
まずはじめので、先程やったテクニックを使い入力待ちっぽくして、文章表示後gets関数です。
gets関数がやることは、ユーザーから値を受け取り、それを返し値として返すことです。簡単ですね。
実行すると、点滅バーで待機状態になり、そこに入力します。改行で受け取り終了です。
()内には、受け取る値の最大桁数(文字列の場合でも)を指定します。
今回、getsで受けとったものはanswer変数に代入されます。
お次が今回の最重要ポイント、if文です!!
はじめにざっと説明すると、条件式を使ってプログラムを分岐させるものです。
誰もが聞いたことがあるでしょう、if。
もしも、という意味ですね。
if文ででてくるものは以下のようにして覚えます。
もしも...ならば〜 また、もしも...ならば〜 でなければ〜。
if文は、単純な条件分岐でなければ多くの場合else文というものと一緒に使います。
elseの英語での意味はわかんない人、忘れている人がいると思います。
elseは、そのほかに、という意味です。
if文のまとまりでいう、また、でなければ、の二つに当るのがこのelseです。
このことを踏まえて、今回のif文を和訳してみましょうw
もしも、変数answerがhelloならば、
puts ("Hello!!%name%!!\n");を実行する。
また、もしも、変数answerがhiだったら、
puts ("Hi!!%name%!!\n");を実行する。
でなければ(それらの条件に当てはまらなければ)、
puts ("...%name%?\n");を実行する。
わかりましたか?
解説を読むよりはやり方を感じとってください。
使い方がなんとなくわかってもらえたと思うので、if.else文の基本構成をみてください。
if (条件式) 処理;
または
if (条件式1) {
処理1;
}else if (条件式2) {
処理2;
処理3;
}else{
処理4;
}
これらの二つです。
もしも...ならば〜だけで用が足りる場合は上のパターンを使い、それ以外にも分岐したいものがたくさんあるときには下のパターンのようにまとまりにして書きます。
よって、else ifもelseも省略したければ省略できます。
でも今回は解説のために全部使ってます。
ちなみに条件式とは、条件演算子(=<や==)を用いてつくった式のことです。
というわけで今回のについてまとめると、ユーザーの名前を取得し、会話を打込むこんでパターンと一致した場合、そのパターンで名前とともに返事をしてくれる。というものになりますね。
飽きない人は、else ifを増やしまくって会話プログラムでもつくっててくださいww
今回のがわかれば、いままで一方通行だったプログラムをどんどん分岐していくことができます。
自由度があがったのを実感できるくらい、型にあわせてif文を使いまくってください。
そうしないとif文は覚えられません。
また毎度恒例の、支離滅裂な感じでしたが、これで終了となります。
次回までに、if文をせめて使えるようにはなってくださいね。
あ、あとgets関数も。
ではみなさんお疲れさまでした。
次回をお楽しみに〜!
2010年10月24日日曜日
nScript講座 第5回
18:19
mikan
2 comments
2 コメント:
今更ですがありがとうございます!「よ」です。
前の回(?)のgetcharで言ってたやつですよね
勉強してみます!ありがとうございます
毎回毎回見ていただいてほんとにありがとうです!!
ところで、もしかして「よ」さんはBrainユーザーですか?
それとも普通にWinCEユーザーの方でしょうか?
それとも普通のWinNTユーザーでしょうか?
質問くどくてすみませんね(笑)
コメントを投稿