Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [poisons, empowers, shuffles, avgPoisons] = deckSim(n)
- deck = [1,2,2,1]; %[poisons,shuffles,dmg empower,flame]
- belt = 1; %0=none,1=poison,2=shuffle
- emp = 0; %0=none, 1=dmg, 2=shuffle
- poisons = 2; %start combat with an empowered poison above head and poison on belt. ultimately doesnt really matter because i simulate over 100000 iterations for numbers
- empowers = 1;
- shuffles = 0;
- i = 1;
- while i<=n
- draw = randi(sum(deck));
- cardType = 1;
- while sum(deck(1:cardType))<draw
- cardType = cardType + 1;
- end
- deck(cardType) = deck(cardType) - 1;
- if(sum(deck) == 0)
- deck = [1,2,2,1];
- i = i+1;
- end
- switch cardType %decision making tree
- case 1 %drew a poison
- switch belt
- case 0 %draw poison & no saved card
- if emp == 2 %emp is shuffle -> use poison
- emp = 0;
- poisons = poisons + 1;
- shuffles = shuffles + 1;
- deck(1) = deck(1) + 1;
- elseif emp == 1 && deck(1) >= deck(2)%if empowerment is damage and there is greater or equal numbers of poisons in your deck as shuffles -> use the poison
- emp = 0;
- poisons = poisons + 1;
- empowers = empowers + 1;
- else %else -> save poison
- belt = 1;
- end
- case 1 %draw poison & saved poison
- poisons = poisons + 1; %-> use poison
- switch emp
- case 1
- empowers = empowers + 1;
- case 2
- shuffles = shuffles + 1;
- deck(1) = deck(1) + 1;
- end
- emp = 0;
- otherwise %draw poison & saved shuffle -> shuffle poison
- if emp ~= 2 %emp is not shuffle -> burn shuffle before useing poison
- belt = 0;
- end
- emp = 0;
- poisons = poisons + 1;
- shuffles = shuffles + 1;
- deck(1) = deck(1) + 1;
- end
- case 2 %drew a shuffle
- switch belt
- case 0 %draw shuffle & no saved card -> save shuffle
- belt = 2;
- case 1 %draw shuffle & saved poison -> shuffle poison
- belt = 0;
- emp = 0;
- poisons = poisons + 1;
- shuffles = shuffles + 1;
- deck(1) = deck(1) + 1;
- otherwise %draw shuffle & saved shuffle -> burn shuffle
- emp = 2;
- end
- case 3 %drew damage empower
- emp = 1;
- if belt == 1 && deck(1) >= deck(2) %if you have a poison card saved and there are more or equal numbers of poisons in your deck as shuffles -> use the poison
- emp = 0;
- belt = 0;
- poisons = poisons + 1;
- empowers = empowers + 1;
- end
- case 4 %drew flame -> use flame
- if emp == 2
- shuffles = shuffles + 1;
- deck(4) = deck(4) + 1;
- end
- emp = 0;
- end
- end
- poisons = poisons/n;
- empowers = empowers/n;
- shuffles = shuffles/n;
- avgPoisons=(poisons*10+empowers*4)/((shuffles+6)*2);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement