Author Topic: mastermind in c++  (Read 2676 times)

mustangtux

  • Guest
mastermind in c++
« on: July 23, 2010, 11:45:16 PM »
bah vi faccio vedere sto mastermind che ho fatto in c++ na cosuccia uccia... fatta neanche benissimo mi sa....

comunque il codice:
Code: [Select]
#include <ctime>
#include <iostream>
#include <cstdlib>
using namespace std;

void leggi (int[]);
int valuta (int[], int[]);
int main(void)
 {
  int n=0, x, i,p=0, M[4],V[4];
  cout<<"  Benvenuto al Mastermind BY Mustangtux!  ";
  cout<<endl;
  cout<<"Scopri il codice da 4 numeri.  Inserisci numeri da 1 a 8 (premi invio ad ogni numero inserito).   Hai 10 possibilità !"<<'\n'<<"Pallino Bianco: cifra esatta nel posto sbagliato.   Pallino nero: cifra esatta nel posto giusto.";
  cout<<endl;
  for (i=0; i<4; i++)
   {
    x=(rand() % 8) +1;
    M[i]=x;
   }
  while (n<4 && p<10)
   {
    leggi (V);
    n= valuta (M,V);
    p=p+1;
   }
   if(p==10){
   cout<<endl;
   cout<<"Hai perso, ci stai mettendo un secolo per un semplice codice: cambia lavoro!";
   }
   else{
   cout<<"hai eseguito "<<p<<" tentativi";
   }
  return 0;
 }

int valuta (int M[],int V[])
 {
  int i, s,et=0,ft=0,gt=0,ht=0,t, b=0, n=0;
  for (i=0;i<4;i++)
   {
    if (M[i]==V[i])
     {
      n=n+1;
      switch(i){
  case 0:
  et++;
  break;
  case 1:
  ft++;
  break;
  case 2:
  gt++;
  break;
  case 3:
  ht++;
  break;
  }
     }
 }
     for (t=0;t<4;t++){
       for (s=0;s<4 && s!=i;s++)
        {
          switch(t){
case 0: 
            if(M[t]==V[s] && et==0){
                b=b+1;
                }
                break;
                case 1: 
            if(V[s]==M[t] && ft==0){
                b=b+1;
                }
                break;
                case 2: 
            if(V[s]==M[t] && gt==0){
                b=b+1;
                }
                break;
                case 3: 
            if(V[s]==M[t] && ht==0){
                b=b+1;
                }
                break;
       }
      }
   }
   if(n==4){
   cout<<" Complimenti! Hai vinto!";
   cout<<endl;
   }
   else{
   cout<<"bianchi="<<b<<" neri="<<n<<'\n'<<"  No, ritenta"<<endl;
   }
   return n;
 }

void leggi (int V[])
 {
  int i;
  cout<<'\n'<<"tentativo"<<'\n';
  for (i=0; i<4; i++)
   {
    cout<<"numero";
    cin>>V[i];
   }
  return;
}
 




se volete provarlo, scaricate il file in allegato mettetelo nella home  e lanciatelo da terminale con   ./prova