Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/11/2014, 15:44
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 3 meses
Puntos: 10
Respuesta: Mastermind c++ (juego)

Esta no es la mejor de las soluciones, porque hace recorridos dobles , breaks y engendros así, pero a estas horas.....
Código C++:
Ver original
  1. string evaluar (string cadena, string referencia);
  2.  
  3. int main()
  4. {
  5.  
  6.     cout<<evaluar("12345","54321")<<endl;
  7.     cout<<evaluar("abbcd","accbd")<<endl;
  8.     return 0;
  9. }
  10.  
  11. string evaluar (string cadena, string referencia)
  12. {
  13.     int acertados=0;
  14.     int aproximaciones=0;
  15.     //asumimos que las cadenas tienen el mismo tamaño
  16.     for (int i=0;i<cadena.size();i++)
  17.     {
  18.         if (cadena[i]==referencia[i])
  19.         {
  20.             acertados++;
  21.         }
  22.         else
  23.         {
  24.             for (int j=0;j<cadena.size();j++)
  25.             {
  26.                 if (cadena[i]==referencia[j])
  27.                 {
  28.                             aproximaciones++;
  29.                             break;
  30.                 }
  31.             }
  32.         }
  33.     }
  34.     stringstream iss;
  35.     iss<<acertados<<"A, "<<aproximaciones<<"a";
  36.     return iss.str();
  37. }

(creo que funciona)
Saludos!
__________________
Mi calculadora en Qt