Саня1585
09.12.2020 23:55

При разработке компьтерных игр зачастую создаётся сложная система классов. в этой вам будет необходимо сделать небольшую заготовку, которую потом можно будет использовать для создания своей игры. реализуйте класс weapon для оружия, который при инициализации должен принимать имя оружия name, наносимый урон damage, а также радиус, на котором оружие может достать до врага – range. в классе weapon должны быть реализованы следующие методы: hit(actor, target) – удар персонажем actor персонажа target. метод должен проверять, жив ли персонаж target, если нет, то выводить сообщение «враг уже повержен», иначе должна проводится проверка расстояния от actor до target. если расстояние больше range оружия, тогда надо выводить сообщение «враг слишком далеко для оружия ». в случае, если target жив и оружие имеет достаточный range, вывести сообщение «врагу нанесен урон оружием в размере » и нанести урон target. к строке – при к строке должно возвращаться имя оружия. реализуйте класс basecharacter для создания базовых персонажей, который при инициализации должен принимать pos_x и pos_y – позицию персонажа в мире, hp – количество жизней персонажа. класс basecharacter должен реализовывать методы: move(delta_x, delta_y) – для перемещения персонажа на delta_x и delta_y в игровом мире. is_alive() – проверка, жив ли персонаж. возвращает true, если жив, иначе – false. get_damage(amount) – убавляет количество жизней персонажа на amount. при достижении 0 или отрицательного значения персонаж считается мёртвым. get_coords() – возвращает кортеж с текущими координатами персонажа. реализуйте класс baseenemy для создания противников, который расширяет класс basecharacter. при инициализации он должен принимать pos_x и pos_y – позицию персонажа в мире, weapon – оружие, hp – количество жизней персо

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Lena2402bux
21.08.2022 18:31
1. Программа, создающая файл

var
  f:file of integer;
  i,k:integer;
begin
  Randomize;
  Assign(f,'in.dat'); Rewrite(f);
  for i:=1 to 20 do begin
    k:=Random(99)+1;
    Write(f,k)
    end;
  Close(f)
end.

Тестовое решение
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13

2. Основная программа

uses Crt;
const
  nn=100;
var
  i,j,k,n:integer;
  fin,fout:file of integer;
  a:array[1..nn] of integer;
  dub:boolean;
begin
  ClrScr;
  Assign(fin,'in.dat'); Reset(fin);
  Read(fin,k);
  if not eof(fin) then begin
    n:=1; Write(k,' '); a[n]:=k
    end
  else n:=0;
  while (not eof(fin)) and (n<=nn) do begin
    Read(fin,k); Write(k,' ');
    j:=1; dub:=false;
    while (j<=n) and (not dub) do begin
      dub:=(a[j]=k); Inc(j);
      end;
    if not dub then begin Inc(n); a[n]:=k; Inc(j) end
    end;
  Writeln;
  Close(fin);
  for i:=1 to n do Write(a[i],' ');
  Writeln; Writeln('n=',n);
  Assign(fout,'out.dat'); Rewrite(fout);
  Write(fout,n); Close(fout);
  ReadKey
end.

Тестовое решение:
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13
38 35 14 46 92 49 51 48 84 90 26 79 82 77 7 24 94 13
n=18

В качестве бонуса - решение этой же задачи в современной системе программирования PascalABC.NET.

// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
  var fin,fout:file of integer;
  Reset(fin,'in.dat');
  var k:integer;
  var a:=new integer[fin.FileSize];
  var n:=0;
  while not eof(fin) do begin
    Read(fin,k); a[n]:=k; Inc(n)
    end;
  Close(fin);
  a.Println;
  var b:=a.ToHashSet;
  b.Println; Writeln('n=',b.Count)
end.

Тестовое решение
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13
38 35 14 46 92 49 51 48 84 90 26 79 82 77 7 24 94 13
n=18

И вопрос: для чего давать школьникам, 9/10 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?
0,0(0 оценок)
Ответ:
Misha01923
14.05.2023 20:19

Первое поколение. Компьютеры на электронных лампах (194х-1955)

Быстродействие: несколько десятков тысяч операций в секунду.

Компьютер на электронных лампах

Особенности:

Поскольку лампы имеют существенные размеры и их тысячи, то машины имели огромные размеры.

Поскольку ламп много и они имеют свойство перегорать, то часто компьютер простаивал из-за поиска и замены вышедшей из строя лампы.

Лампы выделяют большое количество тепла, следовательно, вычислительные машины требуют специальные мощные охладительные системы.

Примеры компьютеров:

Колоссус – секретная разработка британского правительства (в разработке принимал участие Алан Тьюринг). Это первый в мире электронный компьютер, хотя и не оказавший влияние на развитие компьютерной техники (из-за своей секретности), но победить во Второй мировой войне.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота