Question

In: Computer Science

Write a MATLAB program to simulate the Stuck in the Mud game, The following link contains...

Write a MATLAB program to simulate the Stuck in the Mud game, The following link contains the detail game description: https://www.activityvillage.co.uk/stuck-in-the-mud , with additional features that can:

• Use five (5) 6-sided dice to automatically play the Stuck in the Mud game against a player.

• Greet the player when the game starts.

• Let the player to choose the number of rounds to play. Take care of the user input to ensure the program will not crash with inputs like 0, 1.2, -1, 999, and so on...

• The program should not play if the user enters a 0 or any negative value.

• The program should accurately play the number of rounds specified by the user. The player and the computer play in turns for each round.

• The program can always pick one side to start the game first, either the player side or the computer side. Randomly pick a side to start the rotation is optional.

• Print the current round number clearly in the command window.

• If the player side starts first, the program will automatically roll all five (5) dice for the player. If the player rolled any 2s or 5s, the player does not score any points for this throw. The player can only score on a roll which does not include the number 2 and 5. Any dice with a 2 or a 5 becomes stuck in the mud. If this throw does not contain any 2s or 5s, the score is incremented by the sum of the dice values. The player needs to set aside any 2s and 5s and throw the remaining dice. Again, if any 2s or 5s are rolled, the score will not be incremented for this throw. Throws without 2s and 5s are added to the previous total score. Continue in this way until all the dice are stuck.

• The dice rolled for the player, the stuck dice, and the scores during the process should clearly be printed in the command window.

• The program then automatically roll all five (5) dice for the computer. Follow the game rules until all five (5) dice are stuck.

• The dice rolled for the computer, the stuck dice, and the scores during the process should also be clearly printed in the command window. • Accurately track the total scores for the player and the computer.

• After all the rounds have been played, select a winner based on the highest total score. It is also possible that the game ends in a tie.

• Add voice to the game to report the details of the game for the player.

o Preloaded voices can be found here

https://drive.google.com/file/d/0B2evz1N1HPsoYlRvd1BLb0k5UHM/view?usp=sharing

o  The following websites can convert any text into voices with downloadable mp3 files.

§ www.fromtexttospeech.com

§ www.text2speech.org

o If you have a mic, you can also record your own voice using the Windows Sound Recorder.

o MATLAB can play any WMA, MP3, MPEG-4 AAC, WAV, FLAC audio files. [y,Fs] = audioread('fileName.mp3'); % read sound file sound(y,Fs); % play sound file o Additional sound effects are welcome.

• Add voice to greet the player.

• Add voice to ask the player to enter the number of rounds to play.

• Add voice to announce the current round number (i.e., round 1, round 2, and so on…).

• Add voice to announce the current turn (i.e. the player is rolling or the computer is rolling). • Add voice to announce the current roll number (i.e. roll 1, roll 2, and so on…).

• Add voice to announce each dice rolled.

• Add voice to announce the sum of the score for the current turn after each throw.

• Add voice to announce the number of dice stuck after each throw.

• After one side played, add voice to announce the current total score for the side. For example, 35 points can be announced as three-five.

• After all the rounds are played, add voice to announce the winner or tie.

Add pause as needed between sentences to ensure one sentence is finished before the next sentence starts.

Use at least one user-defined function in the program to reduce code repetition.

The finished program can look like the following example. Extra components are always welcome.

(Play a voice greeting.)

(Play a voice to request the user input.)

Enter the number of rounds to play: 2

ROUND 1!!!                    (Announce round #1.)

The player starts first:         (Announce the player’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            5   1   4   5   6 (Announce rolling 5-1-4-5-6.)

    Stuck in the mud:   5           5    

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 2 (Announce the number of dice stuck: 2)

ROLL 2                       (Announce roll #2.)

    Rolling:                2   2       2 (Announce rolling 2-2-2.)

    Stuck in the mud:   5   2   2   5   2

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The player scores:        0     (Announce the player score: 0)

The Player Total Scored: 0 (Announce the player total score: 0)

The computer goes next:          (Announce the computer’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            2   4   3   5   4 (Announce rolling 2-4-3-5-4.)

    Stuck in the mud:   2           5    

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 2 (Announce the number of dice stuck: 2)

ROLL 2                       (Announce roll #2.)

    Rolling:                1   2       4 (Announce rolling 1-2-4.)

    Stuck in the mud:   2       2   5    

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 3 (Announce the number of dice stuck: 3)

ROLL 3                       (Announce roll #3.)

    Rolling:                4           2 (Announce rolling 4-2.)

    Stuck in the mud:   2       2   5   2

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 4                       (Announce roll #4.)

    Rolling:                5             (Announce rolling 5.)

    Stuck in the mud:   2   5   2   5   2

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The computer scores:        0 (Announce the computer score: 0)

The Computer total scored: 0 (Announce the computer total score: 0)

ROUND 2!!!                    (Announce round #2.)

The player starts first:         (Announce the player’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            2   4   4   2   5 (Announce rolling 2-4-4-2-5.)

    Stuck in the mud:   2           2   5

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 3 (Announce the number of dice stuck: 3)

ROLL 2                       (Announce roll #2.)

    Rolling:                2   2         (Announce rolling 2-2.)

    Stuck in the mud:   2   2   2   2   5

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The player scores:        0     (Announce the player score: 0)

The Player Total Scored: 0    (Announce the computer score: 0)

The computer goes next:          (Announce the computer’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            4   4   1   1   1 (Announce rolling 4-4-1-1-1.)

    Stuck in the mud:                    

Game score: 11                (Announce the score: 1-1)

Number of dice stuck: 0 (Announce the number of dice stuck: 0)

ROLL 2                       (Announce roll #2.)

    Rolling:            1   4   5   6   4 (Announce rolling 1-4-5-6-4.)

    Stuck in the mud:           5        

Game score: 11                (Announce the score: 1-1)

Number of dice stuck: 1 (Announce the number of dice stuck: 1)

ROLL 3                       (Announce roll #3.)

    Rolling:            6   5       1   1 (Announce rolling 6-5-1-1.)

    Stuck in the mud:       5   5        

Game score: 11                (Announce the score: 1-1)

Number of dice stuck: 2 (Announce the number of dice stuck: 2)

ROLL 4                       (Announce roll #4.)

    Rolling:            2           5   1 (Announce rolling 2-5-1.)

    Stuck in the mud:   2   5   5   5    

Game score: 11                (Announce the score: 1-1)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 5                       (Announce roll #5.)

    Rolling:                            5 (Announce rolling 5.)     Stuck in the mud:   2   5   5   5   5

Game score: 11                (Announce the score: 1-1)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The computer scores:        11 (Announce the computer score: 1-1)

The Computer total scored: 11 (Announce the computer total score: 1-1)

The computer wins!              (Announce the computer wins.)

>>

The program should end when the player wants to play 0 round.

(Play a voice greeting.)

(Play a voice to request the user input.)

Enter the number of rounds to play: 0

The game ends with a tie     (Announce the game ends in a tie.)

The program should be able to handle a negative input.

(Play a voice greeting.)

(Play a voice to request the user input.)

Enter the number of rounds to play: -1

The game ends with a tie (Announce the game ends with a tie.)

>>

The program should be able to handle a floating point input without crashing.

(The following example takes the floor value of 1.2 and only runs 1 round. )

(Play a voice greeting.)

(Play a voice to request the user input.)

Enter the number of rounds to play: 1.2

ROUND 1!!!                    (Announce round #1.)

The player starts first:         (Announce the player’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            3   6   2   2   6 (Announce rolling 3-6-2-2-6.)

    Stuck in the mud:           2   2       Game score: 0      (Announce the score: 0)

Number of dice stuck: 2 (Announce the number of dice stuck: 0)

ROLL 2                       (Announce roll #2.)

    Rolling:            4   4           4 (Announce rolling 4-4-4.)

    Stuck in the mud:           2   2    

Game score: 12                (Announce the score: 1-2)

Number of dice stuck: 2 (Announce the number of dice stuck: 2)

ROLL 3                       (Announce roll #3.)

    Rolling:            3   1           5 (Announce rolling 3-1-5.)

    Stuck in the mud:           2   2   5

Game score: 12                (Announce the score: 1-2)

Number of dice stuck: 3 (Announce the number of dice stuck: 3)

ROLL 4                       (Announce roll #4.)

    Rolling:            6   5             (Announce rolling 6-5.)

    Stuck in the mud:       5   2   2   5

Game score: 12                (Announce the score: 1-2)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 5                       (Announce roll #5.)

    Rolling:            1                 (Announce rolling 1.)

    Stuck in the mud:       5   2   2   5

Game score: 13                (Announce the score: 1-3)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 6                       (Announce roll #6.)

    Rolling:            1                 (Announce rolling 1.)

    Stuck in the mud:       5   2   2   5

Game score: 14                (Announce the score: 1-4)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 7                      (Announce roll #7)

    Rolling:            5                 (Announce rolling 5.)

    Stuck in the mud:   5   5   2   2   5

Game score: 14                (Announce the score: 1-4)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The player scores:       14    (Announce the player score: 1-4)

The Player Total Scored: 14 (Announce the player total score: 1-4)

The computer goes next:          (Announce the computer’s turn.)

ROLL 1                       (Announce roll #1.)

    Rolling:            6   5   6   4   2 (Announce rolling 6-5-6-4-2.)

    Stuck in the mud:       5           2

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 2 (Announce the number of dice stuck: 2)

ROLL 2                       (Announce roll #2.)

    Rolling:            2       4   5     (Announce rolling 2-4-5.)

    Stuck in the mud:   2   5       5   2

Game score: 0                 (Announce the score: 0)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 3                       (Announce roll #3.)

    Rolling:                    4         (Announce rolling 4.

    Stuck in the mud:   2   5       5   2

Game score: 4                 (Announce the score: 4)

Number of dice stuck: 4 (Announce the number of dice stuck: 4)

ROLL 4                       (Announce roll #4.)

    Rolling:                    2         (Announce rolling 2.)

    Stuck in the mud:   2   5   2   5   2

Game score: 4                 (Announce the score: 4)

Number of dice stuck: 5 (Announce the number of dice stuck: 5)

The computer scores:        4 (Announce the computer score: 4)

The Computer total scored: 4 (Announce the computer total score: 4)

The player wins!               (Announce the player wins.)

Solutions

Expert Solution

Screenshot of the code:

Sample Output:

Code to copy:

%prompt the user to enter the rounds.
N=input('Enter the number of rounds to play');
N=floor(N);

%Check the value of round.
if N>0
  
Playertotalscore=0;
Computertotalscore=0;

%Start the for loop for N rounds.
for i=1:N

%Concatenate function.
round=strcat('ROUND',num2str(i));
  
%Display the round.
disp(round);
  
%Print on the output screen.
prompt='Player Starts First: ';
input(prompt);
  
%Fix the value of dice.
j=1;dice=5;
Playerscore=0;
SIM=zeros(1,1);
  
%Check the dice values.
while dice>0
diceo=dice;
fprintf('\r\n');
  
%Concatenate function.
roll=strcat('ROLL',num2str(j));
  
%display
disp(roll);
  
%random dice value.
c=ceil(6*rand(1,dice));
fprintf('\n Rolling...');
  
%for loop for dice values.
for k=1:dice;
string=num2str(c(k));
fprintf(' %d ',c(k));

end
  
%if dice value is 2 or 5
r=[c(find(c==2)) c(find(c==5))];
SIM=[SIM r];
fprintf('\n Stuck in the Mud: ');
  
%start from 2 to end.
SIM=SIM(2:end);
d=length(SIM);
  
%start the for loop.
for k=1:d;
string=num2str(SIM(k));

fprintf(' %d ',SIM(k));
end
dice=5-d;
  
%Find the sum
if dice==diceo;
SUM=sum(c);
else SUM=0;
end
Playerscore=Playerscore+SUM;
  
%Print the results.
fprintf('\n Game Score: %d',Playerscore);

fprintf('\n Number of dice stuck in the mud: %d',d);

j=j+1;
SIM=[0 SIM];
end
  
%Add the player score.
Playertotalscore=Playertotalscore+Playerscore;
fprintf('\n The Player Scores: %d',Playerscore);
pause(1);
fprintf('\n The Player Total Scored: %d',Playertotalscore);

pause(1);
  
%Computer's turn
fprintf('\r\n Computer goes Next: ');

j=1;dice=5;Computerscore=0;SIM=zeros(1,1);
  
%Go till dice is greater than 0
while dice>0
diceo=dice;
fprintf('\r\n');
roll=strcat('ROLL',num2str(j));
  
%Display the roll
disp(roll);
c=ceil(6*rand(1,dice));
fprintf('\n Rolling...');
  
%Start the for loop.
for k=1:dice;
string=num2str(c(k));
fprintf(' %d ',c(k));
r=[c(find(c==2)) c(find(c==5))];
SIM=[SIM r];
fprintf('\n Stuck in the Mud: ');
SIM=SIM(2:end);
d=length(SIM);
  
%Start the for loop
for k=1:d;
string=num2str(SIM(k));
% tts(string);
fprintf(' %d ',SIM(k));
end
dice=5-d;
if dice==diceo;
SUM=sum(c);
else SUM=0;
end
Computerscore=Computerscore+SUM;
fprintf('\n Game Score: %d',Computerscore);

fprintf('\n Number of dice stuck in the mud: %d',d);

j=j+1;
SIM=[0 SIM];
end
  
%Calculate the total score.
Computertotalscore=Computertotalscore+Computerscore;
fprintf('\n The Computer Scores: %d',Computerscore);
pause(1);
fprintf('\n The Computer Total Scored: %d',Computertotalscore);

i=i+1;
end
  
%Calculate the difference.
h=Computertotalscore-Playertotalscore;
  
%Declare the winner
if h<0
fprintf('\n The Player won the game\n');

end
if h>0
fprintf('\n The Computer won the game\n');
end
if h==0
fprintf('\n the game ends with a tie\n');

end

end
end


Related Solutions

Stuck in the mud is a popular dice game in UK. The game uses five (5)...
Stuck in the mud is a popular dice game in UK. The game uses five (5) 6-sided dice to play. The players play in turns. Choose one player to start the game. The player will roll all five (5) dice. If the player rolled any 2s or 5s, the player does not score any points for this throw. The player can only score on a roll which does not include the number 2 and 5. Any dice with a 2...
Overview For this assignment, write a program that uses functions to simulate a game of Craps....
Overview For this assignment, write a program that uses functions to simulate a game of Craps. Craps is a game of chance where a player (the shooter) will roll 2 six-sided dice. The sum of the dice will determine whether the player (and anyone that has placed a bet) wins immediately, loses immediately, or if the game continues. If the sum of the first roll of the dice (known as the come-out roll) is equal to 7 or 11, the...
For this assignment, write a program that uses functions to simulate a game of Craps. Craps...
For this assignment, write a program that uses functions to simulate a game of Craps. Craps is a game of chance where a player (the shooter) will roll 2 six-sided dice. The sum of the dice will determine whether the player (and anyone that has placed a bet) wins immediately, loses immediately, or if the game continues. If the sum of the first roll of the dice (known as the come-out roll) is equal to 7 or 11, the player...
Write a modular program to simulate the Game of Life and investigate the patterns produced by...
Write a modular program to simulate the Game of Life and investigate the patterns produced by various initial configurations. Some configurations die off rather rapidly; others repeat after a certain number of generations; others change shape and size and may move across the array; and still others may produce ‘gliders’ that detach themselves from the society and sail off into space! Since the game requires an array of cells that continually expands/shrinks, you would want to use multi-dimensional arrays and...
Write a program in Matlab where the program plays a hot and cold game. The user...
Write a program in Matlab where the program plays a hot and cold game. The user answers two inputs: x=input('what is the x location of the object?') y=input('what is the y location of the object?') You write the program so that the computer plays the game. Pick a starting point. Program Calculates the distance to the object. Program picks another point, calculates the distance to the object. Program knows its at the right spot when the distance is less than...
Write a program in Python to simulate a Craps game: 1. When you bet on the...
Write a program in Python to simulate a Craps game: 1. When you bet on the Pass Line, you win (double your money) if the FIRST roll (a pair of dice) is a 7 or 11, you lose if it is ”craps” (2, 3, or 12). Otherwise, if it is x ∈ {4, 5, 6, 8, 9, 10}, then your point x is established, and you win when that number is rolled again before ’7’ comes up. The game is...
Programming Language: C++ Overview For this assignment, write a program that will simulate a single game...
Programming Language: C++ Overview For this assignment, write a program that will simulate a single game of Craps. Craps is a game of chance where a player (the shooter) will roll 2 six-sided dice. The sum of the dice will determine whether the player (and anyone that has placed a bet) wins immediately, loses immediately, or if the game continues. If the sum of the first roll of the dice is equal to 7 or 11, the player wins immediately....
A baby elephant is stuck in a mud hole. To help pull it out, game keepers use a rope to apply a...
A baby elephant is stuck in a mud hole. To help pull it out, game keepers use a rope to apply a force FA, as part a of the drawing shows. By itself, however, force FAis insufficient. Therefore, two additional forces FB and FC are applied, as in part b of the drawing. Each of these additional forces has the same magnitude F. Themagnitude of the resultant force acting on the elephant in part b of the drawing is k...
write a matlab code to simulate fiber optics communication system on matlab simulink
write a matlab code to simulate fiber optics communication system on matlab simulink
MATLAB: Write as a script in the editor window of matlab. Quadratic roots. Write a program,...
MATLAB: Write as a script in the editor window of matlab. Quadratic roots. Write a program, quadroots.m, for finding the roots of the second- order polynomial ax2 + bx + c. Use the quadratic equation. The inputs are the coefficients a,b, and c and the outputs are z1 and z2. The program should produce (exactly) the following output in the Command window when run with (a, b, c) = (1, 2, −3):
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT