function playHangman()
secretWord = lower(input('Skriv inn ordet som etterspørres:', 's'));
fprintf('\n\n\n\n\n\n\n');
errors = 0;
guessedChars = '';
revealed = '';
hasWon = false;
while true
[didFind, revealed] = checkRevealed(secretWord, revealed, guessedChars);
if ~didFind
errors = errors + 1;
end
printHangman(errors);
printRevealed(revealed);
if strcmp(revealed, secretWord)
hasWon = true;
break
end
if errors >= 6
printHangman(errors);
break
end
guessedChar = input('Gjett ny bokstav:', 's');
if length(strfind(guessedChars, guessedChar)) == 0
guessedChars = [guessedChars guessedChar];
else
fprintf('Bokstaven er allerede gjettet...\n');
errors = errors - 1;
pause(1);
end
end
if hasWon
fprintf('Gratulerer, du vant!\n')
else
fprintf('Du tapte...\n')
end
end
function [didMatch, revealedWord] = checkRevealed(word, revealed, chars)
revealedWord = '';
for i = 1 : length(word)
revealedWord(i) = '_';
for j = 1 : length(chars)
if chars(j) == word(i)
revealedWord(i) = chars(j);
continue
end
end
end
didMatch = ~strcmp(revealed, revealedWord);
revealed = revealedWord;
end
function printHangman(errors)
fprintf('\to----------------- o\n');
fprintf('\t|\t\t%s\n', fill(1, errors));
fprintf('\t|\t\t%s\n', fill(2, errors));
fprintf('\t|\t\t%s\n', fill(3, errors));
fprintf('\t|\t\t%s\n', fill(4, errors));
fprintf('\t|\t\t%s\n', fill(5, errors));
fprintf('\t|\t\t%s\n', fill(6, errors));
fprintf('\t|\t\t%s\n', fill(7, errors));
fprintf('\t|\t\t\n');
fprintf('\t|\t\t\n');
fprintf(' / \\\n');
end
function printRevealed(revealed)
fprintf('\t');
for j = 1 : length(revealed)
fprintf('%s ', revealed(j));
end
fprintf('\n');
end
function string = fill(line, errors)
string = "";
list = {" |", " _\\//^", " (_oo", " |", " /|\", " |", " LL"};
if errors >= line
string = list{line};
end
end |