#!/usr/local/bin/perl -w

print "Enter numeric secret code: ";
chomp ($s = <STDIN>);
$l = length $s;

for $i (0..9){
    $guess= "$i" x $l;
    $b = bien();
    for (1..$b){
	push @sol, $i;
    }
}

$count=10;
$best=$guess= join "",@sol;
$MIN=0;
$r=$l;
while (1) {
    $guess = try();
    $count++;
    print "$count) $guess -> ";
    $b = bien();
#    $r = reg()-$b;
    $r = $l - $b;
    print "Bien $b Regular $r\n"; 
    if ($b>$MIN){
	$MIN=$b;
	$best=$guess;
    }
    last if $b==$l;
}

sub try{
    @g = split "", $best;
    for (0..int abs($r/2)){
	$r1 = int rand($l);
	$r2 = int rand($l);
	($g[$r1],$g[$r2]) = ($g[$r2],$g[$r1]); 
    }
    my $sol = join "",@g;
    return $sol;
}

sub bien{
    my $c=0;
    my $g = $guess;
    my $ss = $s;
    for my $i (0..$l-1){
	$c++ if (substr($g,$i,1) eq substr($ss,$i,1));
    }
    return $c;
}

__END__
