Filter löschen
Filter löschen

List of All Timezones

1 Ansicht (letzte 30 Tage)
Jasmine Ershov
Jasmine Ershov am 26 Nov. 2019
Bearbeitet: Adam Danz am 1 Dez. 2019
I have MATLAB R2018b. Sometimes, when I run my code, I get a list of all of the timezones without typing anything to get them. Sometimes I get them, and sometimes I do not. Does anybody else have this issue? What is going on?

Antworten (1)

Adam Danz
Adam Danz am 26 Nov. 2019
Bearbeitet: Adam Danz am 26 Nov. 2019
Somewhere in your code timezones is being called. Search all of your files for the word timezones to find which file is printing those outputs.
If you don't recall ever using this function, one possibility is that you used a variable name "timezones" but the variable is not defined so Matlab assumes you're calling that function without any inputs which would result in printing all of those timezones to the command window.
  9 Kommentare
Adam Danz
Adam Danz am 1 Dez. 2019
"didn't I display what the opponent chose and then who won?"
Well, I just tested it again and now it's working. This time I used quotes "rock". This highlights the need for clear instructions because previously it wasn't working (maybe I didn't include the quotes or I used a different case).
Back to the main problem... something in your code is invoking a function or script or listener that contains a call to timezones(), if the pattern you're seeing matches the output to the timezones function.
If I were you, I'd search all of your code by following these steps (using Windows operating system).
  1. From the command window, press [ctrl]+[shift]+[f] to open the find-files interface.
  2. In the "find files containing text", write "timezones"
  3. In the "look in", I'd start by searching the parent directory that stores all of (or most of) of your custom matlab scripts and function
  4. Make sure "include subfolders" is selected
  5. Press "find" and wait for a list of files to appear.
Hopefully that will list some files where timezones appears.
191201 173705-Find Files.png
Adam Danz
Adam Danz am 1 Dez. 2019
Bearbeitet: Adam Danz am 1 Dez. 2019
Here's an example of using a dialog box rather than input(). The advantage is that user input is much more constrained. I quickly adapted your code to get it working and if you choose to go fowrard with it, you can clean it up. The user can continue playing as long as they wish by pressing any of the buttons.
h.fh = dialog();
h.instructions = uicontrol('Parent',h.fh,'Style','Text','String','Let''s play Rock, Paper Scissors!',...
'Units','Normalize','Position',[.1 .9 .8 .1],'FontSize', 18);
h.butn1 = uicontrol('Parent',h.fh,'Style','PushButton','String','Paper',...
'Units','Normalize','Position',[.1 .5 .2 .1], 'Callback',{@rpsFunc,'paper'});
h.butn2 = uicontrol('Parent',h.fh,'Style','PushButton','String','Rock',...
'Units','Normalize','Position',[.4 .5 .2 .1],'Callback',{@rpsFunc,'rock'});
h.butn3 = uicontrol('Parent',h.fh,'Style','PushButton','String','Scissors',...
'Units','Normalize','Position',[.7 .5 .2 .1],'Callback',{@rpsFunc,'scissors'});
h.results = uicontrol('Parent',h.fh,'Style','Text','String','',...
'Units','Normalize','Position',[.1 .1 .8 .1],'FontSize', 18,'Tag','ResponsBox');
function rpsFunc(hObj,~,rps)
% hObj is the object of the caller
% rps is either 'paper','rock','scissors', lower case
% Get the handle to the results textbox
resultsHand = findobj(hObj.Parent,'Tag','ResponsBox');
numRock = 0;
numPaper = 0;
numScissors = 0;
playAgain = true;
playerMoves = [numRock; numPaper; numScissors];
% while (playAgain)
randNum= randsample(3, 1);
if (randNum == 1)
aiChoice = "rock";
elseif (randNum == 2)
aiChoice = "paper";
elseif (randNum == 3)
aiChoice = "scissors";
end
if (strcmp(rps, 'rock'))
numRock = numRock + 1;
elseif (strcmp(rps, 'paper'))
numPaper = numPaper + 1;
elseif (strcmp(rps, 'scissors'))
numScissors = numScissors + 1;
else
resultsHand.String = 'You have not inputted rock, paper, or scissors';
end
resultsHand.String = ("The AI chose " + aiChoice);
if (strcmp(aiChoice, "rock") && strcmp(rps, "paper"))
resultsHand.String = "Your paper beat the AI's rock";
elseif (strcmp(aiChoice, "paper") && strcmp(rps, "scissors"))
resultsHand.String = "Your scissors beat the AI's paper";
elseif (strcmp(aiChoice, "scissors") && strcmp(rps, "rock"))
resultsHand.String = "Your rock beat the AI's scissors";
elseif (strcmp(aiChoice, "rock") && strcmp(rps, "scissors"))
resultsHand.String = "The AI's rock beat your scissors";
elseif (strcmp(aiChoice, "paper") && strcmp(rps, "rock"))
resultsHand.String = "The AI's paper beat your rock";
elseif (strcmp(aiChoice, "scissors") && strcmp(rps, "paper"))
resultsHand.String = "The AI's scissors beat your paper";
else
resultsHand.String = "It's a draw. No one wins this round.";
end
playerMoves = [numRock; numPaper; numScissors];
% playAgain = input("Would you like to play again?");
% end
end
191201 181635-.png
In my opinion, calling this "AI" is a stretch. But it does make it seem more interesting ;)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by