learn_c_lesson_0
Функции в языке Си
Листинг программы1
int go_on_foot(int meters)
{
int time = meters/100;
return time;
}
int go_subway(int meters)
{
int time = meters/1000;
return time;
}
int go_to_olimp()
{
int time = go_on_foot(2500) + go_subway(20000) + go_on_foot(700);
return time;
}
int main()
{
int time_to_olimp = go_to_olimp();
return time_to_olimp;
}
Задание 1
Напишите программу для игры, которая вычисляет урон нанесенный по врагу.
Нужно смоделировать один удар игрока по врагу.
Тип оружия задается целым числом weapon:
1 — меч: базовый урон 12
2 — лук: базовый урон 9
3 — дубинка: базовый урон 6
У игрока может быть уровень 1 - 10. При ударе к базовому урону добавляется бонусный урон, зависящий от уровня игрока как level / 2 (целочисленное деление).
У врага есть базовая броня (armor) и бонусная броня, зависящая от типа оружия. Для меча бонусная броня - 3, для лука - 2, для дубинки 1.
Итоговый урон не должен быть меньше 0.
Разбейте программу на функции, например:
базовый урон по коду оружия;
бонусный урон;
применение брони врагом;
одна функция «удар», которая вызывает остальные в нужном порядке и возвращает финальный урон;
main вызывает «удар» с конкретными числами и возвращает результат.
Заготовка программы:
int main()
{
return strike(1, 7, 10);
}
Задание 2
Сделайте чтобы программа вычисляла суммарный урон от трех последовательных ударов всеми видами оружия.
Задание 3
Переделайте предыдущую программу так чтобы результат выполнения функции передавался как аргумент в следующую функцию, чтобы можно было написать так:
int damage = apply_armor(apply_bonus(weapon_base_damage(weapon), level), armor, weapon);