Скачиваний:
8
Добавлен:
25.12.2019
Размер:
2.3 Кб
Скачать
clc
clear
close all

% main HP
health=zeros(2,1);
health(1,1)=ceil(abs(normrnd(120,1)));
health(2,1)=ceil(abs(normrnd(120,1)));

% main damage
damage=zeros(2,1);
damage(1,1)=floor(abs(normrnd(9,1)));
damage(2,1)=floor(abs(normrnd(9,1)));

% increase damage
k=zeros(2,1);
k(1,1)=floor((normrnd(3,1)+1));
k(2,1)=floor((normrnd(3,1)+1));

% reduce damage
p=zeros(2,1);
p(1,1)=normrnd(0,1);
p(2,1)=normrnd(0,1);

% last treatment befor battle
H=health;
D=zeros(2,1);
D(1,1)=floor(damage(1,1).*k(1,1));
D(2,1)=floor(damage(2,1).*k(2,1));

% run battle
figure('Name','Battle Field','NumberTitle','off');
while (H(1,1)>0) && (H(2,1)>0)

H(1,1)=H(1,1)-abs(D(2,1));
H(2,1)=H(2,1)-abs(D(1,1));

if H(1,1) < health(1,1)/2
D(2,1)=floor(damage(2,1).*p(2,1));
elseif H(2,1) < health(2,1)/2
D(1,1)=floor(damage(1,1).*p(1,1));
end

x=categorical({'HP Player 1','HP Player 2'});
b=bar(x,[health(1,1) H(1,1); health(2,1) H(2,1)]);
title('GREAT BATTLE');
axis manual;
xtips1 = b(1).XEndPoints;
ytips1 = b(1).YEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center','VerticalAlignment','bottom')

xtips2 = b(2).XEndPoints;
ytips2 = b(2).YEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'HorizontalAlignment','center','VerticalAlignment','bottom')

xlabel('Number of Fighter')
ylabel('Health')
ylim([0 (max(health(1,1),health(2,1))+10)]);
pause(1)
end

clear x

% fight results
if (H(1,1) > H(2,1) && H(1,1)> 0)
disp('WINNER - PLAYER 1');
fprintf(1,'Winner Health=%g',max(H(1,1),H(2,1)));
msgbox('WINNER - PLAYER 1','Winner');

elseif (H(1,1)==0 && H(2,1)==0)
disp('DRAW')
msgbox('DRAW','Winner');
elseif (H(1,1)<0 && H(2,1)==0)
disp('DRAW')
msgbox('DRAW','Winner');
elseif (H(1,1)==0 && H(2,1)<0)
disp('DRAW')
msgbox('DRAW','Winner');
elseif (H(1,1)<0 && H(2,1)<0)
disp('DRAW')
msgbox('DRAW','Winner');

elseif (H(2,1) > H(1,1) && H(2,1)>0)
disp('WINNER - PLAYER 2')
msgbox('WINNER - PLAYER 2','Winner');
fprintf(1,'Winner Health=%g',max(H(1,1),H(2,1)));

end



Соседние файлы в папке Дополнительное задание 1