Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc; clear all;
- N = 3e4;
- win = zeros(1,N);
- turns = zeros(1,N);
- first = zeros(1,N);
- a_ac = 12;
- d_ac = 17;
- d_dc = 15;
- a_con_mod = 4;
- for i = 1:N
- a_hp = roll(15,12) + 60;
- d_hp = roll(14,10) + 56;
- a_init = roll(1,20)+2;
- d_init = roll(1,20);
- % init == 1 for dragon, 0 for ape
- if a_init == d_init
- init = rand() > 0.5;
- else
- init = d_init > a_init;
- end
- breath = 1;
- first(i) = init;
- t = 0;
- while d_hp > 0 && a_hp > 0
- if init == 0 % ape's turn
- d_hp = d_hp - ((roll(1,20)+9) >= d_ac) * (roll(3,10)+6);
- d_hp = d_hp - ((roll(1,20)+9) >= d_ac) * (roll(3,10)+6);
- init = 1;
- t = t + 1;
- else % dragon's turn
- if breath
- breath_damage = roll(10,8);
- if (roll(1,20) + a_con_mod) >= d_dc
- breath_damage = floor(breath_damage / 2);
- end
- a_hp = a_hp - breath_damage;
- else
- a_hp = a_hp - ((roll(1,20)+7) >= a_ac) * (roll(2,10)+4 + roll(1,8));
- a_hp = a_hp - ((roll(1,20)+7) >= a_ac) * (roll(2,6)+4);
- a_hp = a_hp - ((roll(1,20)+7) >= a_ac) * (roll(2,6)+4);
- end
- breath = roll(1,6) >= 5;
- init = 0;
- t = t + 1;
- end
- end
- win(i) = d_hp > a_hp;
- turns(i) = t;
- end
- dragon_win_percentage = sum(win)/length(win) * 100
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement