今週も引き続き,これまで出された演習問題を自力で完成させてください.
全てできた人は,じゃんけんプログラムを強くする方法について考えてください.
【ヒント】コンピュータゲームを学習して強くする常套手段は,相手のだした手を記憶して,パターンをみつけることです.何手前まで記憶させるかで,学習の成果が違ってきます.
開発の手順
レベル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がパー
として,どれかを出してくるプログラムをまず作ってみる.
これができるようになったら,こちらの手を数字で入力し,勝ち負けの判定もできるようにする.