#!/usr/local/bin/perl -w print "Enter numeric secret code: "; chomp ($s = ); $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__