#include #include #include #include #include #include #include using namespace std; int bit2dec(string s); vector get_numbers(int pow, int compliment) { string store; vector numbers; int constant = compliment; for(int i = 0; i < 2; i++){ for(int j = 0; j < 2; j++){ for(int k = 0; k < 2; k++){ for(int l = 0; l < 2; l++){ ostringstream stream; if(pow == 0){ stream << i << j << k << l << constant; } else if(pow == 1){ stream << i << j << k << constant << l; } else if(pow == 2){ stream << i << j << constant << k << l; } else if(pow == 3){ stream << i << constant << j << k << l; } else if(pow == 4){ stream << constant << i << j << k << l; } store = stream.str(); numbers.push_back(bit2dec(store)); } } } } return numbers; } ostream & operator<<(ostream & os, const vector & nums) { for(unsigned int i = 0; i < nums.size(); i++){ if(i % 4 == 0){ os << endl; } os << nums[i] << " "; } return os; } int bit2dec(string s) { int total = 0; int power = 0; for(int i = s.size() - 1; i >= 0; i--) { if(s[i] == '1') { total += pow(2,power); } power++; } return total; } int main() { srand (time(NULL)); int keep_playing = 0; while(keep_playing == 0){ ostringstream answer; for(unsigned int i = 0; i < 5 ; i++) { int switcher = rand() % 2; string check; cout << "Is your number in this list? enter y for yes n for no" << endl; cout << get_numbers(i, switcher) << endl; cin >> check; if(switcher == 0){ if(check == "y") { answer << '0'; } else { answer << '1'; } } if(switcher == 1) { if(check == "y") { answer << '1'; } else { answer << '0'; } } } string final = answer.str(); reverse (final.begin(), final.end()); cout << bit2dec(final) << endl; cout << "Do you want to keep playing? enter y for yes, n for no" << endl; string check; cin >> check; if(check == "n"){ keep_playing++; } } return 0; }