今週も引き続き,これまで出された演習問題を自力で完成させてください.


全てできた人は,じゃんけんプログラムを強くする方法について考えてください.

【ヒント】コンピュータゲームを学習して強くする常套手段は,相手のだした手を記憶して,パターンをみつけることです.何手前まで記憶させるかで,学習の成果が違ってきます.

開発の手順
レベル1.じゃんけんを何回でも繰り返して行えるようにする.9が入力されたらおしまい.
レベル2.前に人間が出した手を記憶して,これに勝つ手を出す.
レベル3.人間の出した手の統計をとり,一番出しそうな手に勝つ手をだす.
レベル4.人間の出す手を2手記憶し,パターンをみつける.

出来上がったら,レポートを提出する前に,どのようなプログラムか,小林に説明してください.


【演習の解答】

1. キーボードから入力された文字数を数えるプログラムを作成しよう.文字列は,最後にNULL文字(16進数の0)がついている.これを見つけるまで,文字数を数えていけばよい.

#include <stdio.h>

void main()
{
    char s[256];
    int i;

    printf("文字列を入力してください:");
    scanf("%s", s);

    for(i=0; s[i] != 0x00; i++);

    printf("文字数は %d 文字です\n", i);
}

			

2. 小文字を大文字に変換するプログラムを作成しよう.文字と文字列の違いに注意しよう.

#include <stdio.h>

void main()
{
    char c;

    c = 'a';


    printf("大文字 %c, 小文字 %c\n", c-32, c);
}


来週は,前期の復習と授業のアンケートを実施する予定です.

【演習】

まず,先週の演習で行った,「キーボードから入力された文字数を数えるプログラム」を元に,回文を判定するプログラムを作成してみよう.

回文とは,「しんぶんし」のように上から読んでも,下から読んでも同じになる言葉のことです.

入力された文字列を,反転し,元のものと同じかどうか判定します.英単語でできればOKです.


【演習】

この乱数を利用して,プログラムをスタートすると

0がグー,1がチョキ,2がパー

として,どれかを出してくるプログラムをまず作ってみる.

これができるようになったら,こちらの手を数字で入力し,勝ち負けの判定もできるようにする.