C 言語演習プログラム -- 第 2 日目
ゲーム作りが始まりました。
じゃんけんゲーム。コンピュータ vs 人 で 9種類の判定しかないけど、設計はややこしくなりますね。進め方は出来あがったコードの仕様と処理を一緒に追っている感じです。
ランダムな値って、rand関数を呼ぶ前に srand関数を読んで「種をまく」必要があるんですね…
srand関数に渡す引数によって rand関数の吐く値が決まると。で、srand関数には time(NULL) を渡して起動毎に別な値が入るようにしましょう〜と無理くりくくられて消化不良。1秒以内に動くプログラムは同じランダム値になる仕様らしいです。
えー、明記されてはいないけど、rand が吐いた値から種が予測出来ちゃうんじゃないの?とか思ってしまう。
あと「変数型」が始まりました♪ Perl ではない処理。より詳細にプログラムを書かなければならない部分ですね。
scanf関数だと「宣言が int 型でも char型 %c の値を受け取ることが出来る」そうで。
int c; scanf("%c", &c); printf("変数c の値:%c", c);
文字型データは数値として扱うことが出来る・・・微妙…わかったようなワカラナイ様な。とりあえず利便性までは触れていないので、こういう書き方も出来るんだーという程度の理解です。
初めての switch 文。
switch (変数名) { case 変数値: 処理1; 処理2; ... break; case 変数値: 処理3; 処理4; ... break; default: 処理5; break; }
if文で階層を掘り下げすぎずに書けるのがありがたいですね。一箇所「break」が「reak」って書いてあるところがあって、混乱しました。詳しく書いている分大変なのでしょうが、入門書での間違いは勘弁してほしいですx_x
2007年1月10日 初版第7刷、61 ページ
(あと computer が comuter になってるところがあって「この英単語聞いた事ねぇぞ」と思ったけどスルー。)
コラムが充実しているというか、コラムで知らなかったことを補わないといけなそうな感じです。プログラム経験ない or 興味ない人がスルーしそうな内容ですが、仕事の上でよく重要になります。覚えてなくて都度調べたりしてるからここいらでまとめておくべ。
データ型 | 型の名前 | バイト数 | 数値の範囲 | 備考 |
---|---|---|---|---|
整数型 | (signed) short | 2 | -32768 〜 32767 | |
unsigned short | 2 | 0 〜 65535 | ||
(signed) long | 4 | -2147483648 〜 2147483647 | ||
unsigned long | 4 | 0 〜 4294967295 | ||
(signed) int | 4 | -2147483648 〜 2147483647 | システムにより異なる場合がある | |
unsigned int | 4 | 0 〜 4294967295 | システムにより異なる場合がある | |
文字型 | (signed) char | 1 | -128 〜 127 | |
unsigned char | 1 | 0 〜 255 | ||
実数型 | float | 4 | -3.4 x 10^-38 〜 3.4 x 10^-38 | |
double | 4 | -1.7 x 10^-308 〜 1.7 x 10^-308 |