/* yz@ai.univ-paris8.fr */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

const int N = 4;
const int M = 10;

int main() {
  int i, j, k;
  int a, b;
  int secret[N], guess[N];
  int win = 0;
  
  printf("****** 4digits by yz ******\n\n");
  
  // initialize random seed
  srand(time(NULL));
  
  // generate secret number
  for(i = 0; i < N; i++) {
    secret[i] = rand() % 10;
    for(j = 0; j < i; j++) {
      if(secret[i] == secret[j]) {
	i--;
	break;
      }
    }
  }
  
  for(i = 0; i < M; i++) {
    printf("[try %d/10]: ", i);
    scanf("%1d%1d%1d%1d", &guess[0], &guess[1], &guess[2], &guess[3]);
    
    // compare secret and guess
    a = b = 0;
    for(j = 0; j < N; j++) {
      for(k = 0; k < N; k++) {
	if(guess[j] == secret[k]) {
	  if(j == k) a++;
	  else       b++;
	}
      }
    }
    printf("%dA%dB\n", a, b);
    
    if(a == N) {
      win = 1;
      break;
    }
  }
  
  // win or lose
  if(win) {
    printf("\nYou win!");
  } else {
    printf("\nYou lose! the secret number is: ");
    for(i = 0; i < N; i++) {
      printf("%d", secret[i]);
    }
  }
  printf("\n");
  
  return 0;
}
