KGS
view release on metacpan or search on metacpan
kgsueme/game.pl view on Meta::CPAN
$self->{userpanel}[$_]->configure ($self->{app}, $self->{user}[$_], $rules)
for COLOUR_BLACK, COLOUR_WHITE;
}
sound::play 3, "gamestart";
$self->{rules_inlay}->refresh;
}
### BOARD DISPLAY ###########################################################
sub update_timers {
my ($self, $timers) = @_;
my $running = $self->{showmove} == @{$self->{path}} && !$self->{teacher};
for my $colour (COLOUR_BLACK, COLOUR_WHITE) {
my $t = $timers->[$colour];
$self->{userpanel}[$colour]->set_timer (
$running && $colour == $self->{whosemove} && $t->[0],
$t->[1] || $self->{rules}{time}
+ ($self->{rules}{timesys} == TIMESYS_BYO_YOMI
kgsueme/game.pl view on Meta::CPAN
$self->{timers} = [
[$msg->{NOW}, $msg->{black_time}, $msg->{black_moves}],
[$msg->{NOW}, $msg->{white_time}, $msg->{white_moves}],
];
$self->update_timers ($self->{timers})
if $self->{showmove} == @{$self->{path}};
}
sub update_cursor {
my ($self) = @_;
return unless $self->{cur_board};
if ($self->{rules}{ruleset} == RULESET_JAPANESE) {
if ($self->{curnode}{move} == 0) {
$self->{whosemove} = $self->{handicap} ? COLOUR_WHITE : COLOUR_BLACK;
} else {
$self->{whosemove} = 1 - $self->{cur_board}{last};
}
kgsueme/game.pl view on Meta::CPAN
}
} else {
$self->{button_undo}->hide;
$self->{button_resign}->hide;
$self->{button_pass}->hide;
$self->{board}->set (cursor => undef);
#TODO# # implement coordinate-grabbing
}
}
sub update_board {
my ($self) = @_;
return unless $self->{path};
$self->{board_label}->set_text ("Move " . ($self->{showmove} - 1));
$self->{cur_board} = new KGS::Game::Board $self->{size};
$self->{cur_board}->interpret_path ([@{$self->{path}}[0 .. $self->{showmove} - 1]]);
$self->{userpanel}[$_]->set_captures ($self->{cur_board}{captures}[$_])
kgsueme/gamelist.pl view on Meta::CPAN
$self->{view2}->signal_connect(row_activated => sub {
my ($widget, $path, $column) = @_;
my $game = $self->{model2}->get ($self->{model2}->get_iter ($path), 0);
$self->{app}->open_game (%$game) unless $game->is_private;
1;
});
$self;
}
sub update {
my ($self, $room, $add, $update, $remove) = @_;
$self->{games}{$room->{name}} = $room->{games};
my $m1 = $self->{model1};
my $m2 = $self->{model2};
for (@$remove) {
(delete $_->{model})->remove (delete $_->{iter}) if $_->{model};
}
kgsueme/userlist.pl view on Meta::CPAN
my ($widget, $path, $column) = @_;
my $user = $self->{users}{$self->{model}->get ($self->{model}->get_iter ($path), 0)}
or return 1;
warn "selected user $user\n";
1;
});
$self;
}
sub update {
my ($self, $add, $update, $remove) = @_;
my $l = $self->{model};
for (@$remove) {
$l->remove (delete $_->{iter}) if $_->{iter};
}
for (@$add, @$update) {
$l->set ($_->{iter} ||= $l->append,
lib/KGS/Game/Tree.pm view on Meta::CPAN
);
sub init_tree {
my ($self) = @_;
$self->{tree} = [ {
id => 0,
move => -1,
} ];
}
sub update_tree {
my ($self, $tree) = @_;
my $node = $self->{curnode};
my $up_tree;
my $up_move;
#Carp::cluck KGS::Listener::Debug::dumpval $tree;#d#
#warn "update_tree = ".KGS::Listener::Debug::dumpval $tree;#d#
( run in 0.525 second using v1.01-cache-2.11-cpan-beeb90c9504 )