演習課題「追加攻撃の機能を実現しよう」
右のコードは、今回のチャプターで作成したRPGクリティカルヒットのプログラムです。ここに、次の機能を追加してください。
- 1か2が出目となる追加のサイコロをふる。
- 「追加のサイコロはX」と表示する。Xはサイコロの出目です。
- 追加のサイコロが1ならば、「追加攻撃!スライムに、10のダメージを与えた」と表示する。
- 追加のサイコロが2ならば、「追加攻撃に失敗した」と表示する。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
---出力例1---
スライムに1のダメージを与えた
追加のサイコロは、1
追加攻撃!スライムに、10のダメージを与えた
---出力例2---
スライムに3のダメージを与えた
追加のサイコロは、2
追加攻撃に失敗した
---出力例3---
クリティカルヒット!スライムに、100のダメージを与えた
追加のサイコロは、1
追加攻撃!スライムに、10のダメージを与えた
---出力例4---
クリティカルヒット!スライムに、100のダメージを与えた
追加のサイコロは、2
追加攻撃に失敗した
#05:RPGのクリティカルヒットを再現
このチャプターでは、これまで覚えたif文による条件分岐と、rand関数を使って、RPGの戦闘シーンに出てくるようなクリティカルヒットをメッセージとして表示します。
// if文による条件分岐 else if文
#include <stdio.h>
int main(void){
int number = 1;
if (number == 1) {
printf("スキ!"); // 条件式が成立したときの処理
} else if (number == 2) {
printf("どちらでもない"); // 条件式2が成立したときの処理
} else {
printf("キライ"); //条件式がどちらも成立しなかったときの処理
}
}
このチャプターで作ったプログラムを元に「スキ!/キライ」占いが作れます! そのためには、次のようにコードを記述します。そして、number変数が2で割った余りが、0か1かで判定します。#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
srand((unsigned int)time(NULL));
int number = rand() % 2;
if (number == 0) {
printf("スキ!");
} else {
printf("キライ");
}
}