轉(zhuǎn)圈圈模擬器

放在matlab里運(yùn)行
無聊隨便寫了點(diǎn)怪東西

%date 2023/4/30
clear all;clc;
%% 生成怪
number = menu('對(duì)手?jǐn)?shù)量','一個(gè)','兩個(gè)','三個(gè)','四個(gè)','五個(gè)','隨機(jī)(不大于五個(gè))');
if number == 6
? ? number = randi(5);
end
monster = (randi(501,1,number) + 499);
%% 攻擊
attack = menu('發(fā)動(dòng)一次攻擊','平A','戰(zhàn)技','終結(jié)技');
switch attack
? ? case 1
? ? ? ? way = 1;
? ? ? ? damage = (randi(201) + 99);
? ? case 2
? ? ? ? way = menu('','單體','群體');
? ? ? ? damage = (randi(301) + 299);s
? ? case 3
? ? ? ? way = menu('','單體','群體');
? ? ? ? damage = (randi(301) + 499);
end
%% 判定
%傷害
blood1 = monster;
blood2 = blood1;
switch way
? ? case 1
? ? ? ? all = {''};
? ? ? ? for i = 1:number
? ? ? ? ? ? all(i) = {sprintf('%i',i)};
????????end
? ? ? ? choice = menu('選擇攻擊目標(biāo)',all);
? ? ? ? blood2(choice) = blood1(choice) - damage;
? ? case 2
? ? ? ? blood2 = blood1 - damage;
end
%第一次判定
a = 0;
for n = 1:number
? ? if blood2(n) < 1/2*monster(n)
? ? ? ? a = a + 1;
? ? end
end
blood1 = blood2;
count = 0;
%循環(huán)判定
while a >= 1
????if blood1 < 0
? ? ? ? break;
? ? end
? ? spin = randi(201) + 99;
? ? blood2 = blood1 - a*spin;
? ? count = count + a;
? ? a = 0;
? ? for?n = 1:number
? ? ? ? if blood2(n) < 1/2*monster(n) && blood1(n) > 1/2*monster(n)
? ? ? ? ? ? a = a + 1;
? ? ? ? end
? ? end
end
%統(tǒng)計(jì)
dead = length(find(blood2<=0));
fprintf('黑塔轉(zhuǎn)了%i圈,總計(jì)擊倒了%i個(gè)敵人,場(chǎng)上還剩%i個(gè)敵人。',count,dead,number - dead);