あなたは高専に入学しました。留年せずに頑張ろう!
- 毎回、四則演算の問題が10問出題される。
- 6問以上正解なら、学年が上がり、6問未満なら学年が留まる(留年)
typedef struct {
int sumScores;//点数
int diffScore;//赤点との差分
} t_PlayerScore;
点数関係の構造体
typedef struct {
int schoolGrade; //学年
int countRepeatYear;//留年回数
int myTurn; //ターン
} t_PlayerStatus;
ゲーム進行において必要な情報が入ってる構造体
void getWord(char *word)
単語リストを取得
void showStatus(char *word)
ステータスを表示
int chooseRepeat(t_PlayerStatus player)
問題数を計算
int levelOne(t_PlayerStatus player)
int levelTwo(t_PlayerStatus player)
int levelThree(t_PlayerStatus player)
難易度ごとの問題の出題
void checkStatus(t_PlayerStatus player){ }
学年チェックを行う。 ここで、学年、留年回数、ターン回数を見ることができる。
int tryExam(t_PlayerScore scores, t_PlayerStatus player){ }
問題生成を行い、解答してもらう。 今のところ、四則演算のみ。
void updateStatus(t_PlayerStatus *player, int isFlag){ }
学年、ターン更新を行う。 留年回数も必要に応じて行う。
void finishMessage(){ }
終わりのメッセージを表示する。
void getWord(char *word)
単語ファイルを読み込み、ランダムで最短文字数以上の単語をwordに代入する
void checkStatus(t_PlayerStatus player)
プレイヤーの情報(学年、留年回数、ターン数)を表示する
void showStatus(char *word)
単語問題の状態を表示する。ここでは2,3文字目を隠す。
int chooseRepeat(t_PlayerStatus player);
返り値 repeat 程よい回数繰り返すための数字をrepeatに返す。
int levelOne(t_PlayerStatus player)
返り値 cnt ランダムに加算または減算の問題を出題し、 正解数をカウントしcntに返す。
int levelTwo(t_PlayerStatus player)
返り値 cnt ランダムに乗算または除算の問題を出題し、 正解数をカウントしcntに返す。
int levelThree(t_PlayerStatus player)
返り値 cnt ランダムに英単語の虫食い問題を出題し、 正解数をカウントしcntに返す。
int tryExam(t_PlayerScore scores, t_PlayerStatus player)
学年に応じて出題する問題を切り替え出題し、 採点、進級の可否を表示する。
void updateStatus(t_PlayStatus *player, int isFlag)
問題の正答率に応じて学年または留年回数の追加とターン数を増やす。
void finishMessage();
終了メッセージを表示する。
C言語における命名規則のポイントと実例 とC Coding Standard 、Recommended C Style and Coding Standards を参考にした
WalkerZC