ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Games-Go-SimpleBoard/SimpleBoard.pm
(Generate patch)

Comparing Games-Go-SimpleBoard/SimpleBoard.pm (file contents):
Revision 1.11 by elmex, Fri Jun 27 12:40:29 2008 UTC vs.
Revision 1.13 by elmex, Thu Jul 24 08:50:53 2008 UTC

276 276
277 $suicide += $self->capture ($own, $x, $y); 277 $suicide += $self->capture ($own, $x, $y);
278 278
279 ${ $_->[5] } ||= !(@capture || $suicide); 279 ${ $_->[5] } ||= !(@capture || $suicide);
280 280
281 if ($suicide) {
282 $self->{board}[$x][$y] = 0
283
281 if (!$suicide && @capture == 1) { 284 } elsif (!$suicide && @capture == 1) {
282 # possible ko. now check liberties on placed stone 285 # possible ko. now check liberties on placed stone
283 286
284 my $libs; 287 my $libs;
285 288
286 $libs++ if $x > 0 && !($board->[$x-1][$y] & $opp); 289 $libs++ if $x > 0 && !($board->[$x-1][$y] & $opp);
315sub is_valid_move { 318sub is_valid_move {
316 my ($self, $colour, $x, $y, $may_suicide) = @_; 319 my ($self, $colour, $x, $y, $may_suicide) = @_;
317 320
318 my $board = $self->{board}; 321 my $board = $self->{board};
319 322
320 return if $board->[$x][$y] & (MARK_B | MARK_W | MARK_KO); 323 return if $board->[$x][$y] & (MARK_B | MARK_W | MARK_KO)
324 && !($board->[$x][$y] & MARK_GRAYED);
321 325
322 if ($may_suicide) { 326 if ($may_suicide) {
323 return 1; 327 return 1;
324 } else { 328 } else {
325 my ($own, $opp) = $colour == COLOUR_BLACK 329 my ($own, $opp) = $colour == COLOUR_BLACK

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines