Here is my code for the UFO Project in C++
ufo.cpp
#include <iostream>
#include "ufo_functions.hpp"
int main() {
char play_again;
do
{
srand(time(NULL));
greet();
std::vector<std::string> codewords = {"codecademy", "school", "nintendo", "coding", "programming", "cplusplus"};
std::string codeword = codewords[rand() % codewords.size()];
std::string answer;
int misses = 0;
std::vector<char> incorrect;
bool guess = false;
char letter;
for (int l = 0; l < codeword.size(); l++)
{
answer += "_";
}
while (answer != codeword && misses < 7)
{
display_misses(misses);
display_status(incorrect, answer);
std::cout << "\n\nPlease enter your guess: ";
std::cin >> letter;
letter = tolower(letter);
for (int k = 0; k < codeword.size(); k++)
{
if (letter == codeword[k])
{
answer[k] = letter;
guess = true;
}
}
if (guess)
{
std::cout << "Correct!\n\n";
}
else
{
std::cout << "Incorrect! The tractor beam pulls the person in further.\n\n";
incorrect.push_back(letter);
misses++;
}
guess = false;
}
end_game(answer, codeword);
std::cout << "Would you like to play again?\n\nType y for yes and n for no\n\n";
std::cin >> play_again;
play_again = tolower(play_again);
std::cout << "\n\n";
} while(play_again == 'y');
}
ufo_functions.hpp
#include <vector>
void display_misses(int misses);
// Declare functions
void greet();
void end_game(std::string answer, std::string codeword);
void display_status(std::vector<char> incorrect, std::string answer);
ufo_functions.cpp
#include <iostream>
#include <vector>
// Define functions
void greet()
{
std::cout << "=============\n";
std::cout << "UFO: The Game\n";
std::cout << "=============\n";
std::cout << "Instructions: save your friend from alien abduction by \n";
std::cout << "guessing the letters in the codeword.\n";
}
void end_game(std::string answer, std::string codeword)
{
if (answer == codeword)
{
std::cout << "Hooray! You saved the person and earned a medal of honor!\n\n";
std::cout << "The codeword is " << codeword << "\n\n";
}
else
{
std::cout << "Oh no! The UFO just flew away with another person!\n\n";
std::cout << "The codeword was " << codeword << "\n\n";
}
}
void display_status(std::vector<char> incorrect, std::string answer)
{
std::cout << "\nIncorrect Guesses\n\n";
for (int i = 0; i < incorrect.size(); i++)
{
std::cout << incorrect[i] << ' ';
}
std::cout << "\nCodeword:\n\n";
for (int j = 0; j < answer.size(); j++)
{
std::cout << answer[j] << ' ';
}
}
void display_misses(int misses) {
if (misses == 0 || misses == 1) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " / \\ ( Send help! ) \n";
std::cout << " / 0 \\ / `-----------' \n";
std::cout << " / --|-- \\ / \n";
std::cout << " / | \\ \n";
std::cout << " / / \\ \\ \n";
std::cout << " / \\ \n";
}
else if (misses == 2) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " / 0 \\ ( Send help! ) \n";
std::cout << " / --|-- \\ / `-----------' \n";
std::cout << " / | \\ / \n";
std::cout << " / / \\ \\ \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
}
else if (misses == 3) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " /--|--\\ ( Send help! ) \n";
std::cout << " / | \\ / `-----------' \n";
std::cout << " / / \\ \\ / \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
}
else if (misses == 4) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " / | \\ ( Send help! ) \n";
std::cout << " / / \\ \\ / `-----------' \n";
std::cout << " / \\ / \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
}
else if (misses == 5) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " / / \\ \\ ( Send help! )\n";
std::cout << " / \\ / `-----------' \n";
std::cout << " / \\ / \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
}
else if (misses == 6) {
std::cout << " . \n";
std::cout << " | \n";
std::cout << " .-\"^\"-. \n";
std::cout << " /_....._\\ \n";
std::cout << " .-\"` `\"-. \n";
std::cout << " ( ooo ooo ooo ) \n";
std::cout << " '-.,_________,.-' ,-----------. \n";
std::cout << " / \\ ( Send help! ) \n";
std::cout << " / \\ / `-----------' \n";
std::cout << " / \\ / \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
std::cout << " / \\ \n";
}
}