ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

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