Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Løsningsforslag til Hangman lagt til
Code Block
titleForslag til Løsning
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