Need help to create a function for a roulette simulation?

3 vues (au cours des 30 derniers jours)
Steven Thies
Steven Thies le 12 Fév 2021
Commenté : Jan le 13 Fév 2021
My function does not work and i don't know how to link my input number n with the simulation of the roulette.
There are 18 red, 18 black and 1 green fields. If the ball lands on the field which the user choose then he gets the money back and gets the same amount of money which he used. if the ball lands not on the field which the user choose then he loose his money.
function [red, black] = n_montecarlo(n)
red = [3 12 7 18 9 14 1 16 5 23 30 36 27 34 25 21 19 32];
black = [26 35 28 29 22 31 20 33 24 10 8 11 13 6 17 2 4 15];
roulette = randi(37);
for n = red
if roulette == n
disp('win')
else
disp('lose')
for n = black
if roulette == n
disp('win')
else
disp('lose')
end
end
end
end
end

Réponse acceptée

Jan
Jan le 13 Fév 2021
"If the ball lands on the field which the user choose"
How does thze user choose a field? By the input n? This input is overwritten by
for n = red
Perhaps you want:
function n_montecarlo(n)
red = [3 12 7 18 9 14 1 16 5 23 30 36 27 34 25 21 19 32];
black = [26 35 28 29 22 31 20 33 24 10 8 11 13 6 17 2 4 15];
roulette = randi(37);
if n == roulette
disp('win')
else
disp('lose')
end
if any(n == red)
disp('red')
elseif any(n == black)
disp('black')
else
disp('green')
end
end
  6 commentaires
Steven Thies
Steven Thies le 13 Fév 2021
Modifié(e) : Jan le 13 Fév 2021
This is my Script. The function is n_montecarloreal(n) which i have already.
n = input('please choose a number.For red(3,12,7,18,9,14,1,16,5,23,30,36,27,34,25,21,19,32),black(26,35,28,29,22,31,20,33,24,10,8,11,13,6,17,2,4,15): ','s');
while isnan(str2double(n)) == true
n = input('Error.Please again ','s');
end
n = str2double(n);
m = n_montecarloreal(n);
output = (num2str(m));
disp(output)
function n_montecarloreal(n)
red = [3 12 7 18 9 14 1 16 5 23 30 36 27 34 25 21 19 32];
black = [26 35 28 29 22 31 20 33 24 10 8 11 13 6 17 2 4 15];
roulette = randi(37);
if n == roulette
disp('win')
else
disp('lose')
end
if any(n == red)
disp('red')
elseif any(n == black)
disp('black')
else
disp('green')
end
end
Jan
Jan le 13 Fév 2021
Your function n_montecarloreal(n) does not have an output yet. Maybe all you need is:
function Won = n_montecarloreal(n)
roulette = randi(37);
Won = (roulette == n);
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Board games dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by