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);