Тема: работа со списками
у вас есть персонаж, рядом и статов.
напишите программу по заданным условиям:
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 = []
не стали отрицательными.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
int main()
{
int i, j, sum=0, n, m, p=1;
cout<<"Введите количество строк:"<<endl;
cin >> n;
cout<<"Введите количество столбцов:"<<endl;
cin >> m;
int k=i, h=j;
int a[n][m];
int max = a[0][0];
cout<<"Исходный массив:"<<endl;
for (i=0; i<n;i++)
{
for (j=0;j<m;j++)
{
a[i][j]=-10 + rand()%20;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for (i = 0; i < n; i++)
{
{
for (j = 0; j < m; j++)
{
sum += a[i][j];
}
cout<<"Сумма "<<i<<" строки равна: "<<sum<<endl;
sum = 0;
}
}
for (j = 0; j < m; j++)
{
for (i = 0; i < n; i++)
{
p *= a[i][j];
}
cout<<"Произведение "<<j<<" столбца равно: "<<p<<endl;
p = 1;
}
for(k=0, h=0; k<n && h<m; k++, h++)
{
if(a[k][h]>max)
{
max = a[k][h];
}
}
cout<<"Наибольшее число на главной диагонали: "<<max<<endl;
1. картинка
2. 2) палка
Объяснение:
1.
Общий порядок действий:
1) скобки
2) НЕ (¬, черта над выражением) - значение противоположно исходному высказыванию
3) И (∧) - истинно, когда оба исходных высказывания истинны
4) ИЛИ (∨) - ложно, когда оба исходных высказывания ложны
2.
(Первая буква слова согласная ИЛИ Вторая буква слова гласная) И Последняя буква гласная = 1 (истинно)
1) ирис
2) палка
3) словарь
И - истинно, когда оба исходных высказывания истинны
(Первая буква слова согласная ИЛИ Вторая буква слова гласная) = 1 (истинно)
Последняя буква гласная = 1 (истинно)
Проверим правую часть (Последняя буква гласная = 1 (истинно)):
1) ирис = 0 (ложно, с - согласная буква)
2) палка = 1 (истинно, а- гласная буква)
3) словарь = 0 (ложно, ь - не гласная и не согласная буква)
Осталось всего 1 слово (палка)
Проверим левую часть ((Первая буква слова согласная ИЛИ Вторая буква слова гласная) = 1 (истинно))
ИЛИ - истинно, когда любое из исходных высказываний истинно
Первая буква слова согласная = 1 (истинно)
ИЛИ
Вторая буква слова гласная = 1 (истинно)
2) палка = 1 (истинно, п - согласная буква, а - гласная буква)
1) ирис = 0 (ложно, и - гласная буква, р - согласная буква)
3) словарь = 1 (истинно, с - согласная буква, л - согласная буква)
Слово палка подходит и под левую часть