Okay so this is currently what I have so far for my project and the problem I am currently having is creating an input or variable that will allow my game/code to be dependant on the number of players that are selected at the beginning. Im confused as to how my fprintf should look like since I need to create an array/matrix for the number of players selected.
%% "FIFTY the Party Dice Game"
clear
clc
Welcome = input('Welcome to the Fifty Dice Game!');
Player = input('Enter the number of players: ');
NumberOfPlayers=round(Player,0);
if(NumberOfPlayers<=0)
NumberOfPlayers=0;
end
% Step 1:Generate initial dice roll for x amount of players
% Step 2:Generate gamescore for x amount of players
% Make an array/matrix on how many players for fprintf
GameScore = linspace(Player, ,)
% Step 3:Create if statements that added the score depending if they matched.
% Step 4:Create Reroll
% Step 5:Create statement for while statement.
% Step 6:Create if statement for Reroll.
% Step 7:Insert While Loop.
% Value that will keep the game score
GameScore = 0;
Player_1 = 1;
Player_2 = 2;
Player_3 = 3;
Player_4 = 4;
% Generates Number of rolls according to number of players
dice1 =randi(6,1,Player);
dice2 =randi(6,1,Player);
%Create a game score equal to zero, depending on x amount of players
multigamescore = linspace(0,50,GameScore);
% Variable that will count the round number
RoundNumber = 0;
% While If statement/code block to set game score(Conditions for the game).
while(GameScore ~= 50)
dice1 = randi(6,1) ; %ReRoll of dice
dice2 = randi(6,1);
if(GameScore ~= 50)
% Increment the round number by 1.
RoundNumber = RoundNumber +1;
fprintf('\nRound %.f: \n',RoundNumber)
fprintf('** Score Board ** \n')
fprintf('Player %.f Score: \n', Player_1)
fprintf('Player %.f Score: \n', Player_2)
fprintf('Player %.f Score: \n', Player_3)
fprintf('Player %.f Score: \n', Player_4)
fprintf('Current Score: %.f \n',GameScore)
fprintf('You rolled %.f and %.f!\n\n',dice1, dice2)
end
%% Section for How Points are given.
if (dice1~=dice2)
fprintf('No points.\n')
elseif (dice1 == 3) && (dice2 ==3)
fprintf('Double 3! Game score set back to 0.\n')
GameScore = 0;
elseif (dice1== 6)&&(dice2 ==6)
fprintf('Double 6! Add 25 points to score.\n')
GameScore = GameScore + 25;
elseif (dice1 == 1) && (dice2 == 1)
fprintf('Double 1! Add 5 points to score.\n')
GameScore = GameScore + 5;
elseif (dice1 == 2) && (dice2 == 2)
fprintf('Double 2! Add 5 points to score.\n')
GameScore = GameScore + 5;
elseif (dice1 == 4) && (dice2 == 4)
fprintf('Double 4! Add 5 points to score.\n')
GameScore = GameScore + 5;
elseif (dice1 == 5) && (dice2 == 5)
fprintf('Double 5! Add 5 points to score.\n')
GameScore = GameScore + 5;
else
fprintf('Double dice! Add 5 points to score.\n')
GameScore = GameScore + 5;
end
if (GameScore == 50)
fprintf('\nRound %.f: \n',RoundNumber)
fprintf('Current Score: %.f \n',GameScore)
fprintf('You rolled %.f and %.f! \n\n',dice1, dice2)
fprintf('Congratulations Player %.f!!! You WON! Your final score is 50!', Player_1)
end
end

댓글 수: 4

Rik
Rik 2019년 9월 24일
It is a bad idea to have numbered variables. Since you have the number of players as an input, you should check that is a non-zero integer and use it to create an array. If you need to do something with all elements of an array you can look for a way to do it one go, or use a loop to do it element by element.
Luis Gomez
Luis Gomez 2019년 9월 24일
Okay cool, do you think you could help me with doing that? I've been looking for help at school and online and still haven't managed to find much help. I'm new to Matlab and don't have much experience with it.
darova
darova 2019년 9월 24일
I think he can help you. But it's only my opinion
Rik
Rik 2019년 9월 24일
You didn't really ask a specific question, so I'll just provide some random comments:
multigamescore = linspace(0,50,GameScore);
%this doesn't do what the comment promisses, it creates 0 length array (because GameScore is 0)
multigamescore=zeros(1,Player);
To get the number of players I would use something like this:
Player=0;%initialize to invalid number to enter loop
while Player<=0 || Player~=round(Player)
Player = input('Enter the number of players: ');
end
And for the display:
for n=1:Player
fprintf('Player %d Score: %d\n',n,score(n))
end

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Number games에 대해 자세히 알아보기

질문:

2019년 9월 24일

댓글:

Rik
2019년 9월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by