It is an extremely basic mini-game menu. Link to my game.
I know there are more experienced C++ programmers than me, so it would be a great help if you help make my code better.
Thank you.
PS: First time using Stack Exchange; please help me with how I can make my post better.
// Example program
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <locale>
#include <unistd.h>
// Hangman Game
void greet()
{
std::cout << "=============\n";
std::cout << "UFO: The Game\n";
std::cout << "=============\n";
std::cout << "Instructions: save your friend from alien abduction by guessing the letters in the codeword.\n";
}
void display_status(std::vector<char> incorrect, std::string answer)
{
std::cout << "\nIncorrect Guesses:\n";
for (int i = 0; i < incorrect.size(); i++)
{
std::cout << incorrect[i] << ' ';
}
std::cout << "\nCodeword:\n";
for (int i = 0; i < answer.length(); i++)
{
std::cout << answer[i] << ' ';
}
}
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";
}
else
{
std::cout << "Oh no! The UFO just flew away with another person!\n";
}
}
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 == 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";
}
}
// End Hangman game functions
// Tic Tac Toe Game
std::string board[9] = {" ", " ", " ", " ", " ", " ", " ", " ", " "};
int player = 1;
int position = 0;
void introduction()
{
std::cout << "Press [Enter] to begin: ";
std::cin.ignore();
std::cout << "\n";
std::cout << "===========\n";
std::cout << "Tic-Tac-Toe\n";
std::cout << "===========\n\n";
std::cout << "Player 1) X\n";
std::cout << "Player 2) 0\n\n";
std::cout << "Here's the 3 x 3 grid:\n\n";
std::cout << " | | \n";
std::cout << " 1 | 2 | 3 \n";
std::cout << "_____|_____|_____ \n";
std::cout << " | | \n";
std::cout << " 4 | 5 | 6 \n";
std::cout << "_____|_____|_____ \n";
std::cout << " | | \n";
std::cout << " 7 | 8 | 9 \n";
std::cout << " | | \n\n";
}
bool is_winner()
{
bool winner = false;
// rows
if ((board[0] == board[1]) && (board[1] == board[2]) && board[0] != " ")
{
winner = true;
}
else if ((board[3] == board[4]) && (board[3] == board[5]) && board[3] != " ")
{
winner = true;
}
else if ((board[6] == board[7]) && (board[6] == board[8]) && board[6] != " ")
{
winner = true;
}
// columns
else if ((board[0] == board[3]) && (board[0] == board[6]) && board[0] != " ")
{
winner = true;
}
else if ((board[1] == board[4]) && (board[1] == board[7]) && board[1] != " ")
{
winner = true;
}
else if ((board[2] == board[5]) && (board[2] == board[8]) && board[2] != " ")
{
winner = true;
} // diagonals
else if ((board[0] == board[4]) && (board[0] == board[8]) && board[0] != " ")
{
winner = true;
}
else if ((board[2] == board[4]) && (board[2] == board[6]) && board[2] != " ")
{
winner = true;
}
return winner;
}
bool filled_up()
{
bool filled = true;
for (int i = 0; i < 9; i++)
{
if (board[i] == " ")
{
filled = false;
}
}
return filled;
}
void draw()
{
std::cout << " | | \n";
std::cout << " " << board[0] << " | " << board[1] << " | " << board[2] << "\n";
std::cout << "_____|_____|_____ \n";
std::cout << " | | \n";
std::cout << " " << board[3] << " | " << board[4] << " | " << board[5] << "\n";
std::cout << "_____|_____|_____ \n";
std::cout << " | | \n";
std::cout << " " << board[6] << " | " << board[7] << " | " << board[8] << "\n";
std::cout << " | | \n";
std::cout << "\n";
}
void set_position()
{
std::cout << "Player " << player << "'s Turn (Enter 1-9): ";
while (!(std::cin >> position))
{
std::cout << "Player " << player << ", please enter a valid number between 1 and 9: ";
std::cin.clear();
std::cin.ignore();
}
std::cout << "\n";
while (board[position - 1] != " ")
{
std::cout << "Oops, there's already something in that position!\n\n";
std::cout << "Player " << player << "'s Turn (Enter 1-9): ";
std::cin >> position;
std::cout << "\n";
}
}
void update_board()
{
if (player % 2 == 1)
{
board[position - 1] = "X";
}
else
{
board[position - 1] = "0";
}
}
void change_player()
{
if (player == 1)
{
player++;
}
else
{
player--;
}
}
void take_turn()
{
while (!is_winner() && !filled_up())
{
set_position();
update_board();
change_player();
draw();
}
}
void end_game()
{
if (is_winner())
{
std::cout << "There's a winner!\n";
}
else if (filled_up())
{
std::cout << "There's a tie!\n";
}
}
// End Tic Tac Toe functions
// Now for the intro
void first_thing() {
std::cout << "What game do you want to play?\n";
std::cout << "1) Hangman with UFO\n";
std::cout << "2) Tic Tac Toe\n";
std::cout << "3) Rock Paper Scisors\n";
std::cout << "4) Memory Game\n";
int game;
std::cin >> game;
// Hangman scenario
if (game == 1)
{
greet();
std::string codeword = "codecademy";
std::string answer = "__________";
int misses = 0;
std::vector<char> incorrect;
bool guess = false;
char letter;
while (answer != codeword && misses < 7)
{
std::cout << "Welcome to tic tac toe\n";
display_misses(misses);
display_status(incorrect, answer);
std::cout << "\n\nPlease enter your guess: ";
std::cin >> letter;
for (int i = 0; i < codeword.length(); i++)
{
if (letter == codeword[i])
{
answer[i] = letter;
guess = true;
}
}
if (guess)
{
std::cout << "\nCorrect!\n";
}
else
{
std::cout << "\nIncorrect! The tractor beam pulls the person in further.\n";
incorrect.push_back(letter);
misses++;
}
guess = false;
}
end_game(answer, codeword);
}
// Tic Tac Toe Scenario
else if (game == 2) {
std::cout << "Welcome to Tic Tac Toe Game!!\n";
introduction();
take_turn();
end_game();
}
// Rock Paper Scissors Scenario
else if (game == 3) {
srand(time(NULL));
int computer = std::rand() % 3 + 1;
int user;
std::cout << "====================\n";
std::cout << "rock paper scissors!\n";
std::cout << "====================\n";
std::cout << "1) Rock\n";
std::cout << "2) Paper\n";
std::cout << "3) Scissors\n";
std::cout << "SHOOT!!\n ";
std::cin >> user;
if (user == 1)
std::cout << "you choose: Rock\n";
else if (user == 2)
{
std::cout << "you choose: Paper\n";
}
else
{
std::cout << "you choose: Scissors\n";
}
if (computer == 1)
{
std::cout << "cpu choose: Rock\n";
}
else if (computer == 2)
{
std::cout << "cpu choose: Paper\n";
}
else
{
std::cout << "cpu choose: Scissors\n";
}
if (user == computer)
{
std::cout << "it's a tie!\n";
}
// user rock
else if (user == 1)
{
if (computer == 2)
{
std::cout << "you lost! booooo!\n";
}
if (computer == 3)
{
std::cout << "you won! woohoo!\n";
}
}
// user paper
else if (user == 2)
{
if (computer == 1)
{
std::cout << "you won! woohoo!\n";
}
if (computer == 3)
{
std::cout << "you lost! boo!\n";
}
}
// user scissors
else if (user == 3)
{
if (computer == 1)
{
std::cout << "you won! woohoo!\n";
}
if (computer == 2)
{
std::cout << "you lost! booooo!\n";
}
}
}
// Memory Game
else if(game == 4) {
std::cout << "Welcome to memory game!!\n";
std::cout << "So host please enter the 1st word: ";
std::string o1;
std::string o2;
std::string o3;
std::string o4;
std::string o5;
std::string o6;
std::string o7;
std::string o8;
std::string o9;
std::string o10;
std::cin >> o1;
std::cout << " 2nd: \n";
std::cin >> o2;
std::cout << " 3rd: \n";
std::cin >> o3;
std::cout << " 4th: \n";
std::cin >> o4;
std::cout << " 5th:\n";
std::cin >> o5;
std::cout << " 6th: \n";
std::cin >> o6;
std::cout << " 7th:\n";
std::cin >> o7;
std::cout << " 8th: \n";
std::cin >> o8;
std::cout << "9th: \n";
std::cin >> o9;
std::cout << " 10: \n";
std::cin >> o10;
std::cout << "\n";
std::cout << "---------------- \n";
std::cout << "Words are: \n";
std::cout << " " << o1 << ", " << o2 << ", " << o3 << ", " << o4 << ", " << o5 << ", " << o6 << ", " << o7 << ", " << o8 << ", " << o9 << ", " << o10 << " \n";
std::cout << "Remember, you have 60seconds.....\n\n";
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n";
sleep(2);
std::cout << "Done!!\n";
std::cout << "Now enter word 1: ";
std::string ans1;
int points = 0;
std::string ans2;
std::string ans3;
std::string ans4;
std::string ans5;
std::string ans6;
std::string ans7;
std::string ans8;
std::string ans9;
std::string ans10;
std::cin >> ans1;
if (ans1 == o1) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "2nd: ";
std::cin >> ans2;
if (ans2 == o2) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "3rd: ";
std::cin >> ans3;
if (ans3 == o3) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "4th: ";
std::cin >> ans4;
if (ans4 == o4) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "5th: ";
std::cin >> ans5;
if(ans5 == o5) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "6th: ";
std::cin >> ans6;
if(ans6 == o6) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "7th: ";
std::cin >> ans7;
if (ans7 == o7) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "8th: ";
std::cin >> ans8;
if (ans8 == o8) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Inccorect\n";
--points;
}
std::cout << "9th: ";
std::cin >> ans9;
if (ans9 == o9) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
--points;
}
std::cout << "Final one: ";
std::cin >> ans10;
if (ans10 == o10) {
std::cout << "Correct\n";
++points;
}
else {
std::cout << "Incorrect\n";
points = points - 1;
}
std::cout << " You finished, let's see if you won?\n";
if (points < 0)
{
points = 0;
}
std::cout << "Your points are: " << points << "\n";
if (points > 5) {
std::cout << "Congrats you passed the text!!!\n\n";
}
else {
std::cout << "Oops try again!\n";
}
}
}
int main()
{
bool Quit = false;
char answer;
std::string name;
std::cout << "What is your name? ";
getline(std::cin, name);
std::cout << "Hello, " << name << "!\n";
std::cout << "Welcome to Kanav's Game\n";
while(!Quit) {
first_thing();
std::cout << "Would you like to quit Y / N: ";
std::cin >> answer;
answer = std::toupper(answer);
if (answer == 'Y')
{
Quit = true;
std::cout << "BYE!!!";
return 0;
}
}
}