8 Queen

2001-04-04   © 2001-2003 Harry M. Hardjono ramstrong@earthlink.net

Choose Your Browser

Home Page
Work
Sample Code


Word Count
Word Count
Word Count
Remove Tab
Anagram
8 Queen
Permute
Nim
Quicksort


 
#!/usr/bin/perl
# 8 Queen problem
# Harry M. Hardjono - 2000 Oct 16
 
&P(0..7);
 
sub P {
  grep {
    $r = shift(@_);
    $c = $r + scalar @p;
    unless (grep $_==$c--, @p) {
      $c = $r - scalar @p;
      unless (grep $_==$c++, @p) {
        push (@p,$r);
        if (@_) { P(@_);       }
        else    { PrettyPrint(@p) }
        $r = pop(@p);
      }
    }
    push  (@_,  $r);
  } @_;
}

sub PrettyPrint {
#Added 2001 Apr 4
#or just print "@p\n";
    grep { print '+'x$_,'O','+'x(7-$_),"\n";
    } @_;
    print "\n";
}