М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
nicishcina
nicishcina
01.06.2021 10:43 •  Информатика

Поработайте с кодом игры Wizard Duel, созданной на занятии. Выполните следующие шаги:
1. Измените значение максимального здоровья игрока и бота.
2. Добавьте новое заклинание в список spells.
3. Добавьте информацию о заклинаниях. Пусть по нажатию
кнопки i пользователю предоставляется описание всех
заклинаний.
4. Добавьте в код изображение в формате ASCII-кода. Выберите картинку на свое усмотрение.
import random
import time
import os

min_health = 0
max_health = 20
player_health = max_health
bot_health = max_health

simple_spells = [["fireball", 10, 0], ["metabolism", 0 , 8], ["silence", 0, 0 ]]
complicated_spells = [['strength', 9, 3], ['vitality', 4, 8]]

name = 0
damage = 1
heal = 2

start_ascii = '''
__ __ __ __ __
| \ _ | \| \ | \ | \ |
| $$ / \ | $$ \$$ | $$ | \ __ __ | $$
| $$/ $\| $$| \| \ \ / \ / $$ | $$ | $$| \ | \ / \ | $$
| $$ $$$\ $$| $$ \\\| \| | $$ | $$| $$ | $$| \| $$
| $$ $$\$$\$$| $$ / $$/ $$| $$ \$$| $$ | $$ | $$ | $$| $$ | $$| $$ $$| $$
| \| $$ / | | $$ | $$__| $$ | $$__/ $$| $$__/ $$| | $$
| $$$ \$$$| $$| $$ \$$ $$| $$ \$$ $$ | $$ $$ \$$ $$ \$$ \| $$
\$$ \$$ \$$ \\ \$$ \ \ \ \ \$$
'''
gameover_ascii = '''
__ __ __ __
/ \ / \ | \ / \| \ / \ | \ | \| \| \\
| \| \| $$\ / $$| | \| $$ | $$| | \\
| $$ __\$$| $$__| $$| $$$\ / $$$| $$__ | $$ | $$| $$ | $$| $$__ | $$__| $$
| $$| \| $$ $$| \ | $$ \ | $$ | $$ \$$\ / $$| $$ \ | $$ $$
| $$ \| | $$\$$ $$ $$| | $$ | $$ \$$\ $$ | | \\
| $$__| $$| $$ | $$| $$ \$$$| $$| $$ | $$__/ $$ \$$ $$ | $$ | $$ | $$
\$$ $$| $$ | $$| $$ \$ | $$| $$ \ \$$ $$ \$$$ | $$ \| $$ | $$
\ \$$ \$$ \$$ \$$ \ \ \$ \ \$$ \$$
'''
while True:
print(start_ascii)
print("Начать игру? [y] - Да / [n] - Нет")
select = input()
if select == 'n' or select == 'N':
break
elif select == 'y' or select == 'Y':
os.system('cls')
spells = simple_spells
a = len(simple_spells)
print("ПАРАМЕТРЫ")
print("\t Магия Урон Лечение")
count = 1
for row in spells:
print(f"\n{[count]}", end=" - ")
count = count + 1
for elem in row:
print("\t", elem, end = "")
print("\nНовый раунд")
for round in range (1, 6):
choice = True
while choice:
player_select = input("Выберите магию: ")
if player_select > '0' and player_select max_health and bot_health > max_health:
player_health = max_health
bot_health = max_health
elif player_health > max_health:
player_health = max_health
elif bot_health > max_health:
bot_health = max_health
print(f" ИГРОК vs БОТ ")
print(f" {player_health} \t {bot_health}")

if player_health bot_health:
print("Поздравляем! Вы выиграли!\n")
elif player_health < bot_health:
print("Извини...но ты проиграл!")
else:
print("Ничья!")
time.sleep(5)
od.system('cls')
print("КОНЕЦ!")

👇
Открыть все ответы
Ответ:
даша2149
даша2149
01.06.2021
Подразумевающееся решение:
Объём информации о том, что отобран конкретный ученик, находится из уравнения 2^i = 64, т.е. i = 6 бит. Тогда было отобрано 72 / 6 = 12 человек.

На самом деле эта задача НЕКОРРЕКТНА. Разумнее хранить информацию о том, какое подмножество было выбрано. Всего подмножеств 2^64 - следовательно, любое подмножество однозначно кодируется 64 битами.
Например, кодировать можно так: на i-м месте будем ставить 1, если i-ый претендент выбран, и 0 в противном случае. Тогда строчка 001000...00 будет говорить о том, что выбран только третий претендент, а 111...110 - все претенденты кроме последнего.
4,7(99 оценок)
Ответ:
razor200711
razor200711
01.06.2021
Type
  TMatrix = array[,] of integer;
  TVector = array of integer;
var 
  A: TMatrix;
  B: TVector;
  m,n,i,j: integer;
  
procedure CreateMulVector(A:TMatrix; var B: TVector);
var i, j: integer; f: boolean;
begin
  SetLength(B, Length(A, 0));
  for i := 0 to Length(A, 0) - 1 do begin
    B[i] := 1; f := false;
    for j := 0 to Length(A, 1) - 1 do begin
      if A[i,j] > 0 then begin
        f := true;
        B[i] := B[i] * A[i,j];
      end;
    end;
    if not f then B[i] := 0;
  end;
end;

procedure WriteVector(B: TVector);
var i: integer;
begin
  for i := 0 to Length(B) - 1 do 
    write(B[i]:3);
end;

begin
  randomize;
  n := Random(10) + 1;
  m := Random(10) + 1;
  SetLength(A, n, m);
  writeln('Исходная матрица:');
  for i := 0 to n-1 do begin
    for j := 0 to m-1 do begin
      A[i,j] := Random(10) - 5;  
      write(A[i,j]:4);
    end;
    writeln;
  end;
  
  CreateMulVector(A, B);
  writeln('Полученный вектор:');
  WriteVector(B);
end.
4,4(46 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ