I do not know what to do, I think I've made some mistake that I do not know.
In my program the user must think of a number, and the computer should try to guess what number the user thought. The computer may ask the user for a few times whether the number he thought is greater, less than or equal to the number the user thought.
#include <iostream>
#include <locale>
#include <algorithm>
using namespace std;
string resp;
int res;
int contr;
int resposta(int valor){
cout<<"O número que você digitou é "<<valor<<endl;
}
int metade(int meta){
if(contr == 50){
if(meta == 1){
contr = contr + contr/2;
descobridor(contr);
}else if(meta == 2){
contr = contr - contr/2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 75 || contr == 25){
if(meta == 1){
contr = contr + 12;
descobridor(contr);
}else if(meta == 2){
contr = contr - 12;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 87|| contr == 63 ){
if(meta == 1){
contr = contr + 6;
descobridor(contr);
}else if(meta == 2){
contr = contr - 6;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 13 || contr == 37 ){
if(meta == 1){
contr = contr + 6;
descobridor(contr);
}else if(meta == 2){
contr = contr - 6;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 93 || contr == 81){
if(meta == 1){
contr = contr + 3;
descobridor(contr);
}else if(meta == 2){
contr = contr - 3;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 69 || contr == 57){
if(meta == 1){
contr = contr + 3;
descobridor(contr);
}else if(meta == 2){
contr = contr - 3;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 7 || contr == 19){
if(meta == 1){
contr = contr + 3;
descobridor(contr);
}else if(meta == 2){
contr = contr - 3;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(contr == 31 || contr == 43){
if(meta == 1){
contr = contr + 3;
descobridor(contr);
}else if(meta == 2){
contr = contr - 3;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 96 || crtl == 90){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 72 || crtl == 66){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 78 || crtl == 84){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 60 || crtl == 54){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 10 || crtl == 4){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 22 || crtl == 16){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 28 || crtl == 34){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}else if(crtl == 40 || crtl == 46){
if(meta == 1){
contr = contr + 2;
descobridor(contr);
}else if(meta == 2){
contr = contr - 2;
descobridor(contr);
}else{
cout<<"Cheiro de Erro... interno"<<endl;
}
}
}
int descobridor(int crtl){
if(crtl == 75 || crtl == 25){ //1 parte
cout<<"Seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 87 || crtl == 63 ){ //2 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 13 || crtl == 37 ){ //2 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 93 || crtl == 81){ //3 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 69 || crtl == 57){ //3 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 7 || crtl == 19){ //3parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 31 || crtl == 43){ //3 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 96 || crtl == 90){ //4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 72 || crtl == 66){ //4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);]
compres();
}else if(crtl == 78 || crtl == 84){ //4parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 60 || crtl == 54){ //4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 10 || crtl == 4){//4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 22 || crtl == 16){ // 4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 28 || crtl == 34){//4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}else if(crtl == 40 || crtl == 46){//4 parte
cout<<"O seu número é maior ou igual a "<<contr<<"?"<<endl;
cin>>resp;
res = compUni(resp,contr);
compres();
}/*else if(crtl == ) codigo esta por terminar */
}
int compUni(string digitado, int control){
int valor;
if(digitado == "Sim"){
valor = 1;
return valor;
}else if(digitado == "Nao"){
valor = 2;
return valor;
}else if(digitado == "Igual"){
valor = 3;
return valor;
}else{
cerr<<"Não sou burro, só pra constar viu, mas confesso que não entendi você";
valor = 4;
return valor;
}
}
int compres(){
int val;
switch(res){
case 1:
cout<<"Então é maior que "<<contr<<endl;
val = 1;
metade(val);
case 2:
cout<<"Então é menor que "<<contr<<endl;
val = 2;
metade(val);
case 3:
resposta(contr);
case 4:
cout<<"Digite novamente"<<endl;
cin>>resp;
::res = compUni(resp,contr);
compres();
default:
cout<<"To bugadão tio, malz ae"<<endl;
}
}
int main(){ //versão 2.0 pq tava muito extenso //esse ficou maior ainda pelo menos eu evito varios if atras do outro e dentro do outro sla mo bagunça
setlocale(LC_ALL,"Portuguese");
cout<<"Este programa funciona da seguinte maneira... \n"
<<"Pense num número de 1 a 100 que eu vou usar minhas habilidades... \n"
<<"Agora quero que responda usando Sim , Nao e Igual... \n Boa Sorte!! \n"
<<"Tipo assim, Sim quando for maior, Nao quando for menor, e igual... quando for igual né poxa! \n"
<<"Seu número é maior ou igual a 50?"
<<endl;
cin>>resp;
contr = 50;
::res = compUni(resp,contr);
compres();
resposta(contr);
descobridor(contr);
}