(Python)
Этап 1
На первом этапе вам достаточно написать главный игровой цикл, за который производятся только ходы игрока. Каждый ход игрока выполняется по следующим правилам:
Герой пытается попасть по дракону. Вероятность успеха - 75%
Если герой попал:
Урон = сила героя + оружие героя - защита дракона
У дракона отнимается здоровье, равное урону
Отображается сообщение о нанесённом уроне.
Если герой не попал:
Отображается сообщение о том, что герой не попал
В конце хода вывести сообщение об оставшемся здоровье дракона.
Вероятность можно определять с а, например:
if random.radnom() < 0.6: ... # 60%
if random.random() < 0.3: ... # 30%
и т.д.
Главный цикл должен повторять ходы героя до тех пор, пока у дракона не останется 0 хп.
Если у дракона больше нет жизненной энергии:
Показать сообщение, что герой победил
Выйти из цикла.
Указания:
Для вывода информации о драконе напишите отдельную функцию display_dragon_info(). На первом этапе достаточно выводить его здоровье.
Напишите функцию modify_health, которая принимает два аргумента:
Персонажа, у которого нужно изменить показатель здоровья
Количество жизненной энергии, на которое нужно изменить этот показатель. Внутри себя функция всегда прибавляет этот показатель. Таким образом, если нужно уменьшить показатель здоровья, то в функцию нужно передать отрицательное число.
Функция должна следить, чтобы показатель здоровья не стал меньше 0, даже если нанесённый урон больше оставшегося здоровья.
Функция отвечает только за изменение показателей здоровья персонажей и не должна выводить никаких сообщений.
В сообщениях о нанесённом уроне урон должен выводиться без знака минус.
Пример работы функции:
modify_health(dragon, -50) # нанести 50 ед урона дракону
При выводе сообщения:
"Дракон получил 50 ед. урона" # без знака минус
var m:array [0..14] of integer; i:integer;
function IsPositive(a:integer):boolean;
begin
result:=(a>-1);
end;
procedure work;
var min, max, count:integer;
begin
count:=0;
min:=m[0];
max:=0;
for i:=0 to 14 do begin
if IsPositive(m[i]) then begin
inc(count);
if m[i]>max then max:=m[i];
if m[i]<min then min:=m[i];
end;
end;
writeln('MAX: ', max);
writeln('MIN: ', min);
writeln('Count: ', count);
end;
begin
for i:=0 to 14 do begin
write('n: ');
readln(m[i]);
end;
work;
readln;
end.
Если число 3306(10) в системе исчисления с основанием а заканчивается цифрой 3, то тогда
число 3303 делится на основание системы а.
Отсюда алгоритм поиска. Находим все делители числа 3303.
3303 = 3*1101 = 3*3*367. Число 367 - простое. Поэтому основаниями системы исчисления
могут быть только 3, 9, 367. Основание =3 не подходит, так как по условию число должно заканчиваться на 3 -> основание больше 3. Остаются 9, 367.