Triplex game and print

I wanted to give more polish to the game’s plot, but I have a creative block today. The important thing is that it is working.
I made the story in Portuguese because I’m in Brazil, and I’m sharing the result with my family.

#include <iostream> //incluir biblioteca externa para print no terminal
#include <ctime>

void PrintIntroduction()
    std::cout <<"TTTTTTTTTTTTTTTTTTTTTTT                     iiii                     lllllll                   XXXXXXX       XXXXXXX !!! ";
    std::cout <<"\nT:::::::::::::::::::::T                    i::::i                    l:::::l                   X:::::X       X:::::X!!:!!";
    std::cout <<"\nT:::::::::::::::::::::T                     iiii                     l:::::l                   X:::::X       X:::::X!:::!";
    std::cout <<"\nT:::::TT:::::::TT:::::T                                              l:::::l                   X::::::X     X::::::X!:::!";
    std::cout <<"\nTTTTTT  T:::::T  TTTTTTrrrrr   rrrrrrrrr  iiiiiiippppp   ppppppppp    l::::l     eeeeeeeeeeee  XXX:::::X   X:::::XXX!:::!";
    std::cout <<"\n        T:::::T        r::::rrr:::::::::r i:::::ip::::ppp:::::::::p   l::::l   ee::::::::::::ee   X:::::X X:::::X   !:::!";
    std::cout <<"\n        T:::::T        r:::::::::::::::::r i::::ip:::::::::::::::::p  l::::l  e::::::eeeee:::::ee  X:::::X:::::X    !:::!";
    std::cout <<"\n        T:::::T        rr::::::rrrrr::::::ri::::ipp::::::ppppp::::::p l::::l e::::::e     e:::::e   X:::::::::X     !:::!";
    std::cout <<"\n        T:::::T         r:::::r     r:::::ri::::i p:::::p     p:::::p l::::l e:::::::eeeee::::::e   X:::::::::X     !:::!";
    std::cout <<"\n        T:::::T         r:::::r     rrrrrrri::::i p:::::p     p:::::p l::::l e:::::::::::::::::e   X:::::X:::::X    !:::!";
    std::cout <<"\n        T:::::T         r:::::r            i::::i p:::::p     p:::::p l::::l e::::::eeeeeeeeeee   X:::::X X:::::X   !!:!!";
    std::cout <<"\n        T:::::T         r:::::r            i::::i p:::::p    p::::::p l::::l e:::::::e         XXX:::::X   X:::::XXX !!! ";
    std::cout <<"\n      TT:::::::TT       r:::::r           i::::::ip:::::ppppp:::::::pl::::::le::::::::e        X::::::X     X::::::X     ";
    std::cout <<"\n      T:::::::::T       r:::::r           i::::::ip::::::::::::::::p l::::::l e::::::::eeeeeeeeX:::::X       X:::::X !!! ";
    std::cout <<"\n      T:::::::::T       r:::::r           i::::::ip::::::::::::::pp  l::::::l  ee:::::::::::::eX:::::X       X:::::X!!:!!";
    std::cout <<"\n      TTTTTTTTTTT       rrrrrrr           iiiiiiiip::::::pppppppp    llllllll    eeeeeeeeeeeeeeXXXXXXX       XXXXXXX !!! ";
    std::cout <<"\n                                                  p:::::p                                                                ";
    std::cout <<"\n                                                  p:::::p                                                                ";
    std::cout <<"\n                                                 p:::::::p                                                               ";
    std::cout <<"\n                                                 p:::::::p                                                               ";
    std::cout <<"\n                                                 p:::::::p                                                               ";
    std::cout <<"\n                                                 ppppppppp                                                         \n\n\n";
    // Print welcome message to terminal
    std::cout  <<"                     #==============================================================================#\n";
    std::cout  <<"                     #             Ola sobrevivente, voce precisa escapar de uma caixa.             #\n"; //print terminal primeira msg
    std::cout  <<"                     #         A caixa esta trancada, voce avista alguns cadeados na porta.         #\n";
    std::cout  <<"                     #   Voce nao sabe onde esta, nem o motivo, mas precisa sair dai com urgencia.  #\n";
    std::cout  <<"                     #                                 Boa sorte!                                   #\n";
    std::cout  <<"                     #==============================================================================#\n\n\n";

bool PlayGame(int Difficulty)
    //declare 3 number code
    const int CodeA = rand() % Difficulty + Difficulty; //variavel CodeA, protegida com const para nao ser alterada
    const int CodeB = rand() % Difficulty + Difficulty;
    const int CodeC = rand() % Difficulty + Difficulty;

    const int CodeSum = CodeA + CodeB + CodeC; //soma das variaveis
    const int CodeProduct = CodeA * CodeB * CodeC; //multiplicacao das variaveis

    //print CodeSum and CodeProduct to the terminal
    std::cout  <<"Aqui tem um cadeado de 3 digitos numericos de Dificuldade " << Difficulty;
    std::cout  <<".\nTem uma etiqueta presa a ele com uma dica.\n";
    std::cout  <<"Os digitos somados resulta em: " << CodeSum; // print da soma
    std::cout  <<"\nOs digitos multiplicados resulta em: " << CodeProduct;// print da multiplicacao
    std::cout  <<"\nDigite a combinacao correta um digito por vez: \n";

    //declarar as variaveis para armazenar entrada no terminal
    int GuessA, GuessB, GuessC;
    std::cin >> GuessA >> GuessB >> GuessC;

    int GuessSum = GuessA + GuessB + GuessC;
    int GuessProduct = GuessA * GuessB * GuessC;

    //verifica se o playes esta certo
    if (GuessSum == CodeSum && GuessProduct == CodeProduct)
        std::cout << "Uhuull, conseguiu abrir o cadeado! \n\n\n";
        return true;
        std::cout << "Ops... Tente novamente!\n\n\n";
        return false;

int main() // funcao princial, agrupar argumentos

    int LevelDifficulty = 1;
    const int MaxLevelDifficulty = 5;

    while (LevelDifficulty <= MaxLevelDifficulty) // Loop game until all levels completed
        bool bLevelComplete = PlayGame(LevelDifficulty);
        std::cin.clear();// Clear any errors
        std::cin.ignore();// Discards the buffer

        if (bLevelComplete)

    std::cout << "Parabens, conseguiu abrir todos cadeados.\n\n";
    std::cout << "        GGGGGGGGGGGGG                                                                   OOOOOOOOO                                                                   \n";
    std::cout << "     GGG::::::::::::G                                                                 OO:::::::::OO                                                                 \n";
    std::cout << "   GG:::::::::::::::G                                                               OO:::::::::::::OO                                                               \n";
    std::cout << "  G:::::GGGGGGGG::::G                                                              O:::::::OOO:::::::O                                                              \n";
    std::cout << " G:::::G       GGGGGG  aaaaaaaaaaaaa      mmmmmmm    mmmmmmm       eeeeeeeeeeee    O::::::O   O::::::Ovvvvvvv           vvvvvvv eeeeeeeeeeee    rrrrr   rrrrrrrrr   \n";
    std::cout << "G:::::G                a::::::::::::a   mm:::::::m  m:::::::mm   ee::::::::::::ee  O:::::O     O:::::O v:::::v         v:::::vee::::::::::::ee  r::::rrr:::::::::r  \n";
    std::cout << "G:::::G                aaaaaaaaa:::::a m::::::::::mm::::::::::m e::::::eeeee:::::eeO:::::O     O:::::O  v:::::v       v:::::ve::::::eeeee:::::eer:::::::::::::::::r \n";
    std::cout << "G:::::G    GGGGGGGGGG           a::::a m::::::::::::::::::::::me::::::e     e:::::eO:::::O     O:::::O   v:::::v     v:::::ve::::::e     e:::::err::::::rrrrr::::::r\n";
    std::cout << "G:::::G    G::::::::G    aaaaaaa:::::a m:::::mmm::::::mmm:::::me:::::::eeeee::::::eO:::::O     O:::::O    v:::::v   v:::::v e:::::::eeeee::::::e r:::::r     r:::::r\n";
    std::cout << "G:::::G    GGGGG::::G  aa::::::::::::a m::::m   m::::m   m::::me:::::::::::::::::e O:::::O     O:::::O     v:::::v v:::::v  e:::::::::::::::::e  r:::::r     rrrrrrr\n";
    std::cout << "G:::::G        G::::G a::::aaaa::::::a m::::m   m::::m   m::::me::::::eeeeeeeeeee  O:::::O     O:::::O      v:::::v:::::v   e::::::eeeeeeeeeee   r:::::r            \n";
    std::cout << " G:::::G       G::::Ga::::a    a:::::a m::::m   m::::m   m::::me:::::::e           O::::::O   O::::::O       v:::::::::v    e:::::::e            r:::::r            \n";
    std::cout << "  G:::::GGGGGGGG::::Ga::::a    a:::::a m::::m   m::::m   m::::me::::::::e          O:::::::OOO:::::::O        v:::::::v     e::::::::e           r:::::r            \n";
    std::cout << "   GG:::::::::::::::Ga:::::aaaa::::::a m::::m   m::::m   m::::m e::::::::eeeeeeee   OO:::::::::::::OO          v:::::v       e::::::::eeeeeeee   r:::::r            \n";
    std::cout << "     GGG::::::GGG:::G a::::::::::aa:::am::::m   m::::m   m::::m  ee:::::::::::::e     OO:::::::::OO             v:::v         ee:::::::::::::e   r:::::r            \n";
    std::cout << "        GGGGGG   GGGG  aaaaaaaaaa  aaaammmmmm   mmmmmm   mmmmmm    eeeeeeeeeeeeee       OOOOOOOOO                vvv            eeeeeeeeeeeeee   rrrrrrr            \n";

    return 0; //retorno sucesso, fim da funcao

Difficulty 4 is my nemesis :rofl:

1 Like

Haha what makes difficultly 4 your nemesis?

The difficulty itself, as it is generated randomly, does not follow a tenuous line, time can come from an easy number to calculate and time can be very difficult, but in difficulty 4, even if I put random numbers to see if a simpler calculation would come, but I was not lucky. Only that, it is not impossible, only difficult.

Privacy & Terms