String and display help
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
clear all clc
fid = fopen('hangman.txt', 'r'); if fid < 0, error('Cannot open file.'); end CC = textscan(fid, '%s'); C = CC{1}; fclose(fid); index = ceil(rand * numel(C)); word = C{index};
original='Hello World'; Word = word; Word(~isspace(Word)) = '*'
first_guess=char(input('Guess a letter \n','s'));
result1 = ~isempty(findstr(word,first_guess));
selected = first_guess; stars(original == first_guess) = first_guess
OUTPUT Word =
*******
Guess a letter i
stars =
   Empty string: 1-by-0
The word is signature, but I don't unerstand how it outputs an empty string. Also, how would I get the letter to replace the asterisk after each guess? Would I end up using a while loop to keep the user guessing until the word is uncovered? This is a lot harder than I thought it would be.
3 Commenti
  Walter Roberson
      
      
 il 5 Dic 2011
				http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
Risposta accettata
  Chandra Kurniawan
      
 il 5 Dic 2011
        Hello,
So long time you have waiting. Here I give you my code.
I have 'Hangman.txt'
signature
chair
calculator
window
picture
browser
phone
book
table
glass
And this is my code :
clear; clc;
fid = fopen('Hangman.txt','r');
if fid < 0,    error('Cannot open file');    end
data = textscan(fid,'%s');
data = data{1};
fclose(fid); 
index = ceil(rand * numel(data));
word = data{index};
masked = word; 
masked(~isspace(masked)) = '#';
complete = 0;
while complete == 0
    clc;
    fprintf('Word : %s\n',masked);
    letter = char(input('Guess a letter : ','s'));
    stat = findstr(word,letter);
    if ~isempty(stat)
        masked(stat) = letter;        
    end
    if isempty(findstr(masked,'#'))
        complete = 1;
    end    
end
clc; fprintf('Word : %s\n',masked);
Just try to run it.
3 Commenti
Più risposte (1)
  Sean de Wolski
      
      
 il 5 Dic 2011
        Use ismember to determine if the letter 'is a member' of the word.
%Sample word, disguised word and letter guess
word = 'signature';
word_disguised = repmat('*',size(word));
letter = 'q'; %try various letters
%Engine
idx = ismember(word,letter); %index of members
if ~any(idx)
    disp('Fail Lose an arm!');
else
    word_disguised(idx) = letter;
end
0 Commenti
Vedere anche
Categorie
				Scopri di più su Text Data Preparation in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!