Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m doing a hangman game on PROLOG. The program assigns a word \"hidden\" and t

ID: 3866985 • Letter: I

Question

I'm doing a hangman game on PROLOG.

The program assigns a word "hidden" and the program requests letters until the word is found.

* How a limited number of attempts can be implemented. When the user fails a certain number of times the program ends and a message is displayed. *

Also know if the user is wrong to show a drawing or message as the user fails

+++++++++++++++CODE+++++++++++++++++++++++++++

word([l,o,v,e]).

start:- write('¿first letter? '),read(X),
word([X|T]),write('¡Correct! '),guess(T);
(write('¡Not Correct! '),start).

guess([]):- write('¡Congratulations the word is: '), word(W), write(W),!.
guess(L):- repeat,write('Next letter: '),read(X),
((L=[X|T1],write('¡Correct!. '),guess(T1));
(write('¡Incorrect! '),guess(L))).

Explanation / Answer

hangman(failedCount):-
getDataPhrases(answer),
!,
write('Welcome to hangman_game.'),
nl,
name(answer,answersList),
makeBlanks(answersList, emptyList),
getUserGuess(answersList,emptyList, failedCount).

% returns phases randomly

getDataPhrases(answer):-
wordPhrases(LEN),
length(LEN, X),
Ran is random(X),
Num is Ran+1,
getNth(LEN, Num, answer).

%getting possible wordPhrases to guess

wordPhrases(['guess_the_word','check_for_money','spider_man','electrical_engineering']).

% asking the user to guess
getUserGuess(answersList, emptyList, failedCount):-
name(emptyName, emptyList),
write(emptyName),
nl,
write('Enter guess, then followed by a period and press enter.'),
nl,
read(userGuess),
!,
name(userGuess, [GuessName]),
checkTheGuess(answersList,emptyList,GuessName, failedCount).

checkTheGuess(answersList, emptyList, userGuess, failedCount):-
memberchk(userGuess, emptyList),
write('You guessed correct word!'), nl,
!, getUserGuess(answersList, emptyList, failedCount).

checkTheGuess(answersList, emptyList, userGuess, FailedList):-
( length(FailedList, 5)
-> ... signal game failure and stop ...
; getUserGuess(answersList, emptyList, [userGuess|FailedList])
)


winnerCheck(answersList, emptyList, failedCount):-
name(answer, answersList),
name(emptyName, emptyList),
emptyName = answer,
!,
write('You won the game!').

winnerCheck(answersList, emptyList, failedCount):-
getUserGuess(answersList, emptyList, failedCount).


getNth([H|T],1,H).

getNth([H|T],N,E):-
N1 is N-1,
getNth(T,N1,E1),
E=E1.

makeBlanks(AnsCodes, BlankCodes) :-
maplist(blank_answer, AnsCodes, BlankCodes).

blank_answer(answer, Blank) :-
answer == 0'_ -> Blank = answer ; Blank = 0'* .

substitute(AnsCodes, BlankCodes, GuessName, NewBlanks) :-
maplist(placeTheGuess(GuessName), AnsCodes, BlankCodes, NewBlanks).

placeTheGuess(userGuess, answer, Blank, output) :-
userGuess == answer -> output = answer ; output = Blank.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote