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

my @c;

for (;;){
    $sol++;
loop:    
    init();
    for $q (0..7){
loop2:
	  $it++;
	$i = int 1+rand(8);
	$j = int 1+rand(8);
	if ($c[$i][$j]==1){
	    $it=0;
	    tacha($i,$j);
	    $queen[$sol][$q] = $i.$j;
	}elsif ($it>81*81){ goto loop; 
	}else{ goto loop2; }
    }
    for $i (1..$sol-1){
	$ok=0;
	for $j (0..7){
	    for $k (0..7){
		$ok++ if ($queen[$i][$j] eq $queen[$sol][$k] ); 
		if ($ok==8) { goto loop; }
	    }
	}
    }
    print "$sol  @{$queen[$sol]}\n";
}

sub init{
    for $i (1..8){
	for $j (1..8){
	    $c[$i][$j]=1;
	}
    }
    $it=0;
}

sub tacha{
    my ($i,$j) = @_;
    for $r (1..8){
	$c[$r][$j]=0;
    }
    for $c (1..8){
	$c[$i][$c]=0;
    }
    for $d (1..7){
	if (defined $c[$i-$d][$j-$d]) { $c[$i-$d][$j-$d]=0; }
	if (defined $c[$i-$d][$j+$d]) { $c[$i-$d][$j+$d]=0; }
	if (defined $c[$i+$d][$j-$d]) { $c[$i+$d][$j-$d]=0; }
	if (defined $c[$i+$d][$j+$d]) { $c[$i+$d][$j+$d]=0; }
    }
}

__END__
