Тема: работа со списками
у вас есть персонаж, рядом и статов.
напишите программу по заданным условиям:
1. персонаж имеет набор статов: strength, dexterity, intelligence, wisdom, charisma. каждая стата имеет свой запас.
№9
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)
№9
3
3. персонаж обладает набором скилов: fireball, lightning,
silence, fire ward.
использование каждого из них отнимает разное количество единиц статов, а именно:
атрибуты занесите эти данные в список, чтобы в дальнейшем
воспользоваться ими в игре:
fireball = [12, 15, 28, 10, 5]
№9
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, нужно что бы (K*L) ->M = 1 И N*K*V*L = 1.
составляем систему.
1) N*K*L*V = 1 только при N=K=L=V=1; следовательно возможно лишь одно решение данной части 1111. Проверим другую часть
2) K*L - > M = 1 Упростив, получим НЕ K * НЕ L * M = 1;
здесь уже больше вариантов, а именно
101; 111; 110; 100; 001, и для каждого еще подходят 2 значения переменной V, так как она не участвует в этой операции. Получим
1010 1011 1111 1110 1100 1101 1001 1000 0010 0011.
Но так как оба условия должны выполняться, то подходит лишь ответ 1111.
Опять же повторюсь, не уверен, что правильно!
Вычислительная техника является важнейшим компонентом процесса вычислений и обработки данных. Первыми при для вычислений были, вероятно, всем известные счётные палочки, которые и сегодня используются в начальных классах многих школ для обучения счёту. Развиваясь, эти при становились более сложными, например, такими как финикийские глиняные фигурки, также предназначаемые для наглядного представления количества считаемых предметов. Такими при похоже, пользовались торговцы и счетоводы того времени.
Постепенно из простейших при для счёта рождались всё более и более сложные устройства: абак (счёты), логарифмическая линейка, арифмометр,компьютер. Несмотря на простоту ранних вычислительных устройств, опытный счетовод может получить результат при простых счётов даже быстрее, чем нерасторопный владелец современного калькулятора. Естественно, производительность и скорость счёта современных вычислительных устройств уже давно превосходят возможности самого выдающегося расчётчика-человека.