오늘 구현할 프로그램은 행맨 입니다.
행맨이란?
이 게임은 플레이어가 숨겨진 단어를 추측하여 정답을 맞히는 게임입니다. 플레이어는 7번의 기회가 있고 그 이후에는 게임에서 패배합니다. 모든 기회를 쓰기전에 주어진 단어를 맞추면 게임에서 승리하게 됩니다.
소스코드
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
#include <cstdlib>
using namespace std;
// Function to display the hangman state
void displayHangman(int incorrectGuesses) {
const string hangmanStages[] = {
" +---+\n"
" |\n"
" |\n"
" |\n"
" ===\n",
" +---+\n"
" | |\n"
" |\n"
" |\n"
" ===\n",
" +---+\n"
" | |\n"
" O |\n"
" |\n"
" ===\n",
" +---+\n"
" | |\n"
" O |\n"
" | |\n"
" ===\n",
" +---+\n"
" | |\n"
" O |\n"
" /| |\n"
" ===\n",
" +---+\n"
" | |\n"
" O |\n"
" /|\\ |\n"
" ===\n",
" +---+\n"
" | |\n"
" O |\n"
" /|\\ |\n"
" / ===\n",
" +---+\n"
" | |\n"
" O |\n"
" /|\\ |\n"
" / \\ ===\n"
};
cout << hangmanStages[incorrectGuesses] << endl;
}
int main() {
vector<string> words = {"programming", "hangman", "computer", "algorithm", "developer", "coding"};
srand(static_cast<unsigned int>(time(nullptr)));
string wordToGuess = words[rand() % words.size()];
string wordGuessed(wordToGuess.length(), '_');
int incorrectGuesses = 0;
char guess;
bool isGameDone = false;
cout << "Welcome to Hangman!" << endl;
while (!isGameDone) {
cout << "Word to guess: " << wordGuessed << endl;
cout << "Incorrect guesses: " << incorrectGuesses << "/7" << endl;
displayHangman(incorrectGuesses);
cout << "Enter a letter guess: ";
cin >> guess;
bool isGuessCorrect = false;
for (size_t i = 0; i < wordToGuess.length(); i++) {
if (wordToGuess[i] == guess) {
wordGuessed[i] = guess;
isGuessCorrect = true;
}
}
if (!isGuessCorrect) {
incorrectGuesses++;
}
if (wordGuessed == wordToGuess) {
cout << "Congratulations! You guessed the word: " << wordToGuess << endl;
isGameDone = true;
} else if (incorrectGuesses == 7) {
cout << "Sorry, you've run out of guesses. The word was: " << wordToGuess << endl;
isGameDone = true;
}
}
return 0;
}
출력 결과
Welcome to Hangman!
Word to guess: _______
Incorrect guesses: 0/7
+---+
|
|
|
===
Enter a letter guess: a
Word to guess: _______
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: p
Word to guess: p_______
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: r
Word to guess: pr______
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: o
Word to guess: pro_____
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: g
Word to guess: prog____
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: r
Word to guess: progr___
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: a
Word to guess: progra__
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: m
Word to guess: program_
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: i
Word to guess: programi
Incorrect guesses: 1/7
+---+
| |
|
|
===
Enter a letter guess: n
Congratulations! You guessed the word: programming
'Programming language > C++' 카테고리의 다른 글
[C++] palindrome 예제 소스코드 (0) | 2023.10.06 |
---|---|
[C++] 환율 계산 프로그램 (0) | 2023.10.06 |
[C++] 텍스트 편집기 구현하기 (0) | 2023.10.06 |
[C++] To-Do Program 개발하기 (1) | 2023.10.06 |
[C++] 업다운 게임 구현하기 (숫자맞추기) (0) | 2023.10.06 |