How to write a game that input 3 numbers that must be equal to random sum and random product of the numbers in C++

1 Answer

0 votes
#include <iostream>
#include <ctime>

bool play(int level, int max_level) {
    const int a = rand() % level + level;
    const int b = rand() % level + level;
    const int c = rand() % level + level;
    
    const int sumabc = a + b + c;
    const int productabc = a * b * c;

    std::cout << "Level " << level << " of " << max_level << "\n";
    std::cout << "Enter 3 numbers:\n";
    std::cout << "a + b + c must be = " << sumabc << "\n";
    std::cout << "a * b * c must be = " << productabc << "\n";

    int usera, userb, userc;
    std::cin >> usera >> userb >> userc;

    int usersum = usera + userb + userc;
    int userproduct = usera * userb * userc;

    if (usersum == sumabc && userproduct == productabc) {
        std::cout << "OK\n\n";
        return true;
    }
    else {
        std::cout << "Wrong\n\n";
        return false;
    }
}

int main()
{
    srand(time(NULL));
    
    int level = 1;
    int const max_level = 3;

    while (level <= max_level) {
        bool LevelOK = play(level, max_level);
        std::cin.clear(); 
        std::cin.ignore(); 

        if (LevelOK) {
            level++;
        }
    }
    std::cout << "END\n";
    
    return 0;
}



/*
run 1:

Level 1 of 3
Enter 3 numbers:
a + b + c must be = 3
a * b * c must be = 1
1 1 1
OK

Level 2 of 3
Enter 3 numbers:
a + b + c must be = 8
a * b * c must be = 18
3 3 2
OK

Level 3 of 3
Enter 3 numbers:
a + b + c must be = 12
a * b * c must be = 60
4 3 5
OK

END

*/


/*
run 2:

Level 1 of 3
Enter 3 numbers:
a + b + c must be = 3
a * b * c must be = 1
1 1 1
OK

Level 2 of 3
Enter 3 numbers:
a + b + c must be = 9
a * b * c must be = 27
3 3 3
OK

Level 3 of 3
Enter 3 numbers:
a + b + c must be = 11
a * b * c must be = 45
3 5 3
OK

END

*/


/*
run 3 :

Level 1 of 3
Enter 3 numbers:
a + b + c must be = 3
a * b * c must be = 1
1 1 1
OK

Level 2 of 3
Enter 3 numbers:
a + b + c must be = 8
a * b * c must be = 18
3 3 2
OK

Level 3 of 3
Enter 3 numbers:
a + b + c must be = 14
a * b * c must be = 100
1 2 3
Wrong

Level 3 of 3
Enter 3 numbers:
a + b + c must be = 11
a * b * c must be = 48
3 4 5
Wrong

Level 3 of 3
Enter 3 numbers:
a + b + c must be = 10
a * b * c must be = 36
3 4 3
OK

END

*/

 



answered Feb 8, 2021 by avibootz
edited Feb 8, 2021 by avibootz
...