0
我正在嘗試編寫一個hang子手遊戲的函數。該函數將接收一串猜測字和一串猜測字母。一個輸出是每個字母后的一個字符串,另一個輸出應該是與字不匹配的一串字母(我們稱之爲錯過的字母),最後一個輸出是遊戲的結果。如果我們得到六個以上的字母不匹配這個詞,那麼輸出結果就是'你輸了!',如果這些字母在六次錯誤猜測之前匹配,那麼輸出結果就是'你贏了!'。如果錯過的字母數量未達到6,則輸出結果應該是'您有剩餘的生命<#'。猜出的字母總是會被放在較低的位置,並且被猜出的字可以是大寫和小寫的組合。因此,如果字是字的Matlab'和猜測字母是「aeiot」輸出應該是 輸入迭代後打印每一行
word='MatLab'
letter='aeiot'
輸出
board=['_''a''_''_''a''_';
'_''a''_''_''a''_';
'_''a''_''_''a''_';
'_''a''_''_''a''_';
'_''a''t''_''a''_']
missed='eio'
result='You have 3 lives left.'
當我寫我無法弄清楚如何功能我可以在每次迭代之後獲得板,第二件事是如何獲得錯過的信件。
這裏是我的功能
function [boards, missed, result]=playHangman(word,letter)
for ind=1:length(letter)
compare=((word==letter(ind))|(word==(char(double(letter(ind)-32)))));
end
boards=word;
boards(~compare)='_';
missed=**??**
if strcmp(word,boards)
result='You win!';
elseif strcmp(word,boards)==false||6-length(missed)==0
result='You lose!';
else
result=sprintf('You have %d lives left.',6-length(missed));
end
end
任何幫助將不勝感激。謝謝
這是非常接近我想要的東西。我們希望將所有棋盤的結果存儲在一個輸出中。它應該處理串聯。我知道如何連接。但是,我不知道如何在循環中做到這一點。在while和while循環中,我很不清楚。不管怎麼說,還是要謝謝你! – user3226108
@ user3226108請參閱更新。我使用單元格數組來存儲每個迭代的結果 –
我們還沒有教過單元數組。這對我來說是個問題。但是,代碼適用於電路板。而錯過我們只需要錯過的信件。爲此,我們可以使用你的第一個代碼「missed = setdiff(letter,word)」。不需要使用單元陣列。但是,我嘗試了不同的輸入。它給出正確的錯過信件,但不保持其外觀順序。 – user3226108