104 lines
No EOL
2.4 KiB
C++
104 lines
No EOL
2.4 KiB
C++
#include "display.h"
|
|
#include <cassert>
|
|
#include <iostream>
|
|
#include <string_view>
|
|
#include <vector>
|
|
|
|
// prints out a picture of the hangman based on how many incorrect guesses have been made
|
|
void printHangmanPicture(int tries)
|
|
{
|
|
assert(tries >= 0 && tries <= 6);
|
|
|
|
std::cout << "===================================\n";
|
|
std::cout << " _____\n";
|
|
std::cout << " | |\n";
|
|
|
|
switch (tries)
|
|
{
|
|
case 0:
|
|
std::cout << " |\n";
|
|
std::cout << " |\n";
|
|
std::cout << " |\n";
|
|
break;
|
|
case 1:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " |\n";
|
|
std::cout << " |\n";
|
|
break;
|
|
case 2:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " | |\n";
|
|
std::cout << " |\n";
|
|
break;
|
|
case 3:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " /| |\n";
|
|
std::cout << " |\n";
|
|
break;
|
|
case 4:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " /|\\ |\n";
|
|
std::cout << " |\n";
|
|
break;
|
|
case 5:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " /|\\ |\n";
|
|
std::cout << " / |\n";
|
|
break;
|
|
case 6:
|
|
std::cout << " 0 |\n";
|
|
std::cout << " /|\\ |\n";
|
|
std::cout << " / \\ |\n";
|
|
break;
|
|
}
|
|
|
|
std::cout << " _|_\n";
|
|
std::cout << "===================================\n";
|
|
}
|
|
|
|
// prints letters into the console with spaces in between
|
|
void printLetters(std::string_view letters)
|
|
{
|
|
for (auto i : letters)
|
|
{
|
|
std::cout << " " << i;
|
|
}
|
|
std::cout << '\n';
|
|
}
|
|
|
|
// prints letters into the console with spaces in between
|
|
void printLetters(const std::vector <char>& letters)
|
|
{
|
|
for (auto i : letters)
|
|
{
|
|
std::cout << " " << i;
|
|
}
|
|
std::cout << '\n';
|
|
}
|
|
|
|
// used for printing players score to console
|
|
void printScore(int guessed_easy, int guessed_medium, int guessed_hard)
|
|
{
|
|
std::cout << "You already guessed:\n";
|
|
|
|
// use "word" instead of "words" if player has only guessed one word
|
|
std::cout << guessed_easy << " easy " << ((guessed_easy == 1) ? "word" : "words") << '\n';
|
|
|
|
std::cout << guessed_medium << " medium " << ((guessed_medium == 1) ? "word" : "words") << '\n';
|
|
|
|
std::cout << guessed_hard << " hard " << ((guessed_hard == 1) ? "word" : "words") << '\n';
|
|
}
|
|
|
|
// used to display the title screen
|
|
void titleScreen(int guessed_easy, int guessed_medium, int guessed_hard)
|
|
{
|
|
std::cout << "Welcome to Hangman!\n";
|
|
|
|
printScore(guessed_easy, guessed_medium, guessed_hard);
|
|
|
|
std::cout << "1. Easy\n";
|
|
std::cout << "2. Medium\n";
|
|
std::cout << "3. Hard\n";
|
|
std::cout << "4. Reset score\n";
|
|
std::cout << "5. Exit\n";
|
|
} |