Поделитесь своими знаниями, ответьте на вопрос:
Программирование на Python, 35б даю ТЕМА: Работа со списками Задание У вас есть персонаж, обладающий рядом и статов. Напишите программу по заданным условиям: 1. Персонаж имеет набор статов: strength, dexterity, intelligence, wisdom, charisma. Каждая стата имеет свой запас. 2 Значения запасов каждой статы должны быть случайны – в пределах от 60 до 80 и быть представлены в списке stats = []: stats = [] attributes = 5 for i in range(attributes): r = random.randint(60, 80) stats.append(r) 2. В начале игры пользователю предоставляется возможность однократно повысить одну стату на случайное количество единиц – от 5 до 15: select = int(input('Select: ')) select -= 1 stats[select] = stats[select] + random.randint(5, 15) Обратите внимание, что повышая одну стату на сгенерированное число, все остальные должны уменьшиться на случайное значение в пределах от 5 до 15: for i in range(len(stats)): if i == select: continue stats[i] = stats[i] - random.randint(5, 15) 3 3. Персонаж обладает набором скилов: fireball, lightning, silence, fire ward. Использование каждого из них отнимает разное количество единиц статов, а именно: Атрибуты / Wisdom Charisma Fireball 12 15 28 10 5 Lightning 7 13 15 30 10 Silence 23 10 12 7 18 Fire Ward 20 23 14 6 17 Занесите эти данные в список, чтобы в дальнейшем воспользоваться ими в игре: fireball = [12, 15, 28, 10, 5] 4 4. Предоставьте пользователю возможность использовать скилы, например, по нажатию f применяется Fireball, l – Lightning и т. д. После применения какой-либо из запас статов будет уменьшаться, согласно приведенной выше таблице. Рассмотрим следующий пример: 1. Было Stats: 70 64 63 80 65. 2. Применили Fireball: 12 15 28 10 5. 3. Стало Stats: 58 49 35 70 60. Следите за тем, чтобы элементы в списке stats = [] не стали отрицательными.
Внимание! Если программа не работает, обновите версию!
1. Современное решение
begin
var m:=ReadInteger('Введите расстояние в метрах');
var (km,mm):=(m div 1000,m mod 1000);
Write(m,'км = ',km,'км');
if mm>0 then Writeln(' ',mm,'м') else Writeln
end.
Пример
Введите расстояние в метрах 4501
4501км = 4км 501м
2. Так часто учат писать в школе
program Perevod;
var
m,km,mm:integer;
begin
Write('Введите расстояние в метрах');
Readln(m);
km:=m div 1000;
mm:=m mod 1000;
Write(m,'км = ',km,'км');
if mm>0 then Writeln(' ',mm,'м')
else Writeln;
end.