necesito una colaboracion el problema consiste en realizar un pequeño juego se llama "picas y fijas" donde tienes que adivinar el numero del oponente(el numero tiene que ser de 4 cifras) tal cual y como esta un ejemplo jugador quiere que le adivine un numero ejemplo (1) 1234 y el otro dice 9831 entonces existe 1 fija y una pica (las picas es el numero que adivino pero que esta en otra pocicion diferente al numero que hay que adivinar(1234)en este caso es el 1) y 1 fija (la fija es que el numero que adivino y que esta en la casilla correcta del oponente en este caso es el 3) que me sujeririan para comenzar con el programa
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
hola
el codigo esta echo en borland 5.00 y corre en el c++ o turbo c 3.00
#include "iostream.h"
#include "conio.h"
main()
{int a[4], b[4],c,d;
clrscr();
for(c=1;c<=4;c++)
{cout<<"Ingrese el digito numero "<<c<<" del numero 'fijo'"<<endl;
cin>>a[c];
clrscr();
}
clrscr();
cout<<"Ahora el contrincante: "<<endl;
for (d=1;d<=4;d++)
{cout<<"Ingrese el digito numero "<<d<<" del numero 'fijo'"<<endl;
cin>>b[d];
}
if (b[1]==a[1])
{cout<<"El numero "<<b[1]<<" es correcto en la posicion 1"<<endl;
if (b[2]==a[2])
{cout<<"El numero "<<b[2]<<" es correcto en la posicion 2"<<endl;
if (b[3]==a[3])
{cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<"es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
}
}
else
{while(b[3]!=a[3])
{cout<<"Ingrese el tercer numero"<<endl;
cin>>b[3];
}
cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<"es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
cout<<"Ganaste"<<endl;
}
}
}
else
{while (b[2]!=a[2])
{cout<<"Ingrese el segundo numero"<<endl;
cin>>b[2];
}
if (b[3]==a[3])
{cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<"es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
}
}
else
{while(b[3]!=a[3])
{cout<<"Ingrese el tercer numero"<<endl;
cin>>b[3];
}
cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<"es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
cout<<"Ganaste"<<endl;
}
}
}
}
else
{while (b[1]!=a[1])
{cout<<"Ingrese el primer numero"<<endl;
cin>>b[1];
}
if (b[2]==a[2])
{cout<<"El numero "<<b[2]<<" es correcto en la posicion 2"<<endl;
if (b[3]==a[3])
{cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<" es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
}
}
else
{while(b[3]!=a[3])
{cout<<"Ingrese el tercer numero"<<endl;
cin>>b[3];
}
cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<" es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
cout<<"Ganaste"<<endl;
}
}
}
else
{while (b[2]!=a[2])
{cout<<"Ingrese el segundo numero"<<endl;
cin>>b[2];
}
if (b[3]==a[3])
{cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<" es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
}
}
else
{while(b[3]!=a[3])
{cout<<"Ingrese el tercer numero"<<endl;
cin>>b[3];
}
cout<<"El numero "<<b[3]<<" es correcto en la posicion 3"<<endl;
if (b[4]==a[4])
{cout<<"El numero "<<b[4]<<" es correcto en la poscion 4"<<endl;
cout<<"Ganaste"<<endl;
}
else
{while(b[4]!=a[4])
{cout<<"Ingrese el ultimo numero"<<endl;
cin>>b[4];
}
cout<<"Ganaste"<<endl;
}
}
}
}
getch();
return(0);
}
el codigo es sencillo, aqui te mando uno, esta hecho en el dev, pero si usas el visual studio, tendras que cambiar algo,
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int nAdivinado, W, X, Y, Z;
int nOriginal, A, B, C, D;
int num2;
cout<<"Ingrese un numero de 4 cifras:\n";
cin>>nOriginal;
cout<<"Ingrese el numero que crea que es:\n";
cin>>nAdivinado;
//esta primera parte es para, identificar el numero cifra x cifra
//reconocimiento de cifras
//obteniendo unidades
D=nOriginal%10;
num2=nOriginal/10;
//obteniendo decenas
C=num2%10;
num2=num2/10;
//obteniendo centenas y millares
B=num2%10;
A=num2/10;
//ABCD seria el numero que se tiene que adivinar
//reconocimiemto del numero que ingreso
//obteniendo unidades
Z=nAdivinado%10;
num2=nAdivinado/10;
//obteniendo decenas
Y=num2%10;
num2=num2/10;
//obteniendo centenas y millares
X=num2%10;
W=num2/10;
//WXYZ seria el numero que estas probando
//comparamos is existen fijas,
if(A==W)
cout<<"Existe una fija en los millares.\n";
if(B==X)
cout<<"Existe una fija en las centenas.\n";
if(C==Y)
cout<<"Existe una fija en las decenas.\n";
if(D==Z)
cout<<"Existe una fija en las unidades.\n";
//verificamos si existen picas
//aqui comparo cada cifra delnumero original con el numero que yo supuestamento doy
//veras que no comparo el numero con el del miso orden(por ejemplo no comparo la unidad de las decenas
//de uno con las decenas del otro ya que si son iguales irian en el caso de las fijas,)
if(A==X)
cout <<"Existe una pica para el numero: "<<X <<"\n";
else
if(A==Y)
cout <<"Existe una pica para el numero: "<<Y <<"\n";
else
if(A==Z)
cout <<"Existe una pica para el numero: "<<Z <<"\n";
if(B==W)
cout <<"Existe una pica para el numero: "<<X <<"\n";
else
if(B==Y)
cout <<"Existe una pica para el numero: "<<Y <<"\n";
else
if(B==Z)
cout <<"Existe una pica para el numero: "<<Z <<"\n";
if(C==W)
cout <<"Existe una pica para el numero: "<<X <<"\n";
else
if(C==X)
cout <<"Existe una pica para el numero: "<<Y <<"\n";
else
if(C==Z)
cout <<"Existe una pica para el numero: "<<Z <<"\n";
if(D==W)
cout <<"Existe una pica para el numero: "<<X <<"\n";
else
if(D==X)
cout <<"Existe una pica para el numero: "<<Y <<"\n";
else
if(D==Y)
cout <<"Existe una pica para el numero: "<<Z <<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
el programa podria ser optimizado para ahorrar codigo,
espero que te sirva de ayuda
Saludos
Hola.
Es fácil.
Guarda ambos números en arreglos separados.
Haz un ciclo para compararlos (necesitas una variable para ir recorriendo ambos al mismo tiempo.)
Si a[i]==b[i] (suponiendo i=2), entonces tienes una fija.
Después son ciclos for anidados para comparar uno por uno:
for(i=0;i<4;i++)
for(k=0;k<4;k++)
if(a[i]==b[k]) entonces alguno de b[k] se es igual al valor a[i].
Como ya buscaste las fijas, si i y k son iguales, las descartas porque ya las encontraste arriba.
Suerte y un saludo.