/*Ett roligt spel med sifror (Mastermind)! Programmet väljer
 ett slumpmässigt 4-siffrigt tal och du ska gissa talet med
 hlälp av ledtrådar som Du får!
version 1.0
Khosrow Chavoshi
PCSK-9  TBV_Malmö */
#include<iostream.h>
#include <stdlib.h>
#include <time.h>

      int a[4];
      int b[4];
      int tal;
      int SkapaTal(void);
      int MataTal(void);
 

int main( void )
{

      int n=0;
      SkapaTal();
      cout<<"Datorn har slumpmassigt valt ett 4-siffrigt tal."<<endl
  <<"Du ska hitta detta med hjalp av ledtradar!"<<endl
  <<"Skriv ett 4-siffrigt tal utan nolla och inga sifror skall upprepas"<<endl;

           do
           {
           n++;
           MataTal();
           cout<<"    Forsok "<<n<<endl;
           }while(a[0]!=b[0] || a[1]!=b[1] || a[2]!=b[2] || a[3]!=b[3]);

      cout<<"\n\nBravoooo Du klarade det med "<<n<<" forsok."<<endl;

 return 0;
}

 /*------------------------------------------------------*/

int SkapaTal()
{

      int n=0;
      srand( (unsigned)time( NULL ) );

           do
           {

                 for(int i=0;i<4;i++)
                 {
                 tal=0;

                      do
                        {
                        tal=rand();
                       }while (tal>=10 || tal<=0) ;

                  a[i]=tal;
                  }

 
          }while(a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[1]==a[2]||a[1]==a[3]||a[2]==a[3]);

 return 0;
}

/*...........................................................................*/

int MataTal()
{

      char Tell[3][20]={" Ratt plats "," Byt plats ", " Finns inte "};

            do
           {
           cin >>tal;
           cout<<"          ";
           }while(tal<1234 || tal>9876);
 

      b[0]=int(tal/1000);
      b[1]=(int(tal/100))-b[0]*10;
      b[3]=tal%10;
      b[2]=((tal%100)-b[3])/10;
 

          for(int i=0;i<4;i++)
          {
            int jfr=2;
            cout<<b[i];

                for(int j=0;j<4;j++)

                       if(b[i]==a[j])
                      {
                       if(i==j)
                       jfr=0;
                       else
                       jfr=1;
                      }

                cout<<Tell[jfr];

 
          }

//cout<<a[0]<<a[1]<<a[2]<<a[3];

return 0;
}