7. 행맨 게임
- 100 powerun
- 3월 24일
- 2분 분량
사용자로부터 문자를 입력 받아 숨겨진 단어를 맞추는 행맨 게임을 작성하세요. 사용자가 단어의 모든 문자를 맞추거나 주어진 기회 내에 맞추지 못할 때 까지 반복합니다.
게임 설명: 행맨 게임은 사용자가 단어를 추측하는 게임 입니다. 사용자는 알파벳을 하나씩 입력하고, 맞출 때 마다 단어의 해당 위치에 문자가 표시됩니다. 틀릴 뎡우, 기회가 줄어듭니다.
배열 사용: "char[]"배열을 사용하여 단어를 저장하고, 추측된 문자를 저장합니다.
반복문 사용: 게임은 사용자가 단어를 맞추거나 기회가 끝날 때 까지 반복됩니다.
조건문 사용: 각 입력된 문자가 단어에 포함되는지 확인합니다.
사용 변수 설명
secretWord: 맞춰야 할 단어입니다. 예제에서는 "hangman"으로 설정되어 있습니다.;
guessWord: 사용자가 맞춘 문자를 저장하는 문자 배열로, 초기에는 언더스코어("_")로 채워져 있습니다.
attempts: 사용자가 틀릴 수 있는 기회의 수로 초기에는 6으로 설정되어 있습니다.
wordGuessed: 사용자가 단어를 모두 맞췄는지를 나타내는 불리언 변수입니다.

처음
우선 위에서 제시한 변수들을 선언합니다.
그런 다음 guessWord의 경우 크기가 secretWord와 같기 때문에 guessWord의 길이를 secretWord와 동일하게 만들어줍니다. 조건에는 guessWord는 언더스코어가 기본이기 때문에 전부 언더스코어로 맞춰주고 혹시라도 secretWord가 랜덤한 값이 될 것을 예상하여 for문으로 언더스코어를 요소로 넣어줬습니다.

중간
우건 do-while문을 이용해 정답이 나오거나 도전 횟수가 전부 줄어들 때 까지 반복하게 만듭니다. 사용자에게 단어 입력을 얻어내고 string으로 받아낸 값을 char형으로 변형한 뒤 만일 조건인"길이가 1이고 알파벳'을 충족한다면 단어를 둘러보며 확인하게 됩니다.
만일 한번이라도 맞는 알파벳이 나왔다면 wordGuess를 true로 바꿔주어 도전 횟수가 차감되지 않게 해주고, 만일 한번이라도 안나왔다면 도전 횟수를 차감합니다. 아래에는 wordGuess가 true로 바뀌었을 것을 대비하여 false로 만들어줬습니다.

마무리
중간정산을 통해 알파벳 입력 후 현재 진행도와 남은 기회를 사용자에게 알려주고 만약 모든 글자가 맞춰졌다면 기회를 0으로 만들어 게임이 끝났음을 알립니다.
아래에 else들은 사용자가 잘못된 입력을 했을 때 띄워주는 안내문으로 알파뱃 이외의 단어는 사용할 수 없고, 빈칸입력, 2글자 이상 입력을 막고 있습니다.
이 반복문은 기회가 0이상일 때 계속해서 반복하게 됩니다.
만약 반복문이 끝나고 secretWord가 guessWord와 같다면 정답을 맞췄다는 안내를, 아니라면 기회를 모두 소진하여 게임오버했음을 알립니다.
Comentarios