ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/kgsueme/game.pl
(Generate patch)

Comparing kgsueme/kgsueme/game.pl (file contents):
Revision 1.40 by pcg, Tue Jun 3 15:23:31 2003 UTC vs.
Revision 1.47 by pcg, Thu Jun 5 20:06:03 2003 UTC

39 if ($_[0] > $low) { 39 if ($_[0] > $low) {
40 util::format_time $_[0] - $low; 40 util::format_time $_[0] - $low;
41 } else { 41 } else {
42 sprintf "%s (%d)", 42 sprintf "%s (%d)",
43 util::format_time int (($_[0] - 1) % $interval + 1), 43 util::format_time int (($_[0] - 1) % $interval + 1),
44 $_[0] / $interval; 44 ($_[0] - 1) / $interval;
45 } 45 }
46 }; 46 };
47 47
48 } elsif ($timesys == TIMESYS_CANADIAN) { 48 } elsif ($timesys == TIMESYS_CANADIAN) {
49 $self->{set} = sub { $self->{time} = $_[0]; $self->{moves} = $_[1] }; 49 $self->{set} = sub { $self->{time} = $_[0]; $self->{moves} = $_[1] };
52 if (!$self->{moves}) { 52 if (!$self->{moves}) {
53 util::format_time $_[0] - $low; 53 util::format_time $_[0] - $low;
54 } else { 54 } else {
55 my $time = int (($_[0] - 1) % $interval + 1); 55 my $time = int (($_[0] - 1) % $interval + 1);
56 56
57 sprintf "%s/%d {%d}", 57 sprintf "%s/%d [%d]",
58 util::format_time $time, 58 util::format_time $time,
59 $self->{moves}, 59 $self->{moves},
60 $time / ($self->{moves} || 1); 60 $time / ($self->{moves} || 1);
61 61
62 } 62 }
230 230
231 { 231 {
232 $frame->add(my $vbox = new Gtk2::VBox); 232 $frame->add(my $vbox = new Gtk2::VBox);
233 $vbox->add($self->{title} = new Gtk2::Label $title); 233 $vbox->add($self->{title} = new Gtk2::Label $title);
234 234
235 $self->{moveadj} = new Gtk2::Adjustment 0, 0, 0, 1, 1, 0; 235 $self->{moveadj} = new Gtk2::Adjustment 1, 1, 1, 1, 1, 0;
236 236
237 $vbox->add(my $scale = new Gtk2::HScale $self->{moveadj}); 237 $vbox->add(my $scale = new Gtk2::HScale $self->{moveadj});
238 $scale->set_draw_value (0); 238 $scale->set_draw_value (0);
239 $scale->set_digits (0); 239 $scale->set_digits (0);
240 240
646 646
647sub update_board { 647sub update_board {
648 my ($self) = @_; 648 my ($self) = @_;
649 return unless $self->{path}; 649 return unless $self->{path};
650 650
651 #$self->{update_board_cb} ||= add Glib::Idle sub {
651 my $move = int $self->{moveadj}->get_value; 652 my $move = int $self->{moveadj}->get_value;
652 653
654 warn "update_board called $move\n";#d#
655
653 my $running = $move == @{$self->{path}}; 656 my $running = $move == @{$self->{path}};
654 657
655 $self->{board_label}->set_text ("Move $move"); 658 $self->{board_label}->set_text ("Move " . ($move - 1));
656 659
657 $self->{board} = new KGS::Game::Board $self->{size}; 660 $self->{board} = new KGS::Game::Board $self->{size};
658 $self->{board}->interpret_path ([@{$self->{path}}[0 .. $move - 1]]); 661 $self->{board}->interpret_path ([@{$self->{path}}[0 .. $move - 1]]);
659 662
660 for my $colour (WHITE, BLACK) { 663 for my $colour (WHITE, BLACK) {
661 $self->{userpanel}[$colour]->set_state ( 664 $self->{userpanel}[$colour]->set_state (
662 $self->{board}{captures}[$colour], 665 $self->{board}{captures}[$colour],
663 $self->{board}{timer}[$colour], 666 $self->{board}{timer}[$colour],
664 ($running && $self->{lastmove_colour} == !$colour) 667 ($running && $self->{lastmove_colour} == !$colour)
665 ? $self->{lastmove_time} : 0 668 ? $self->{lastmove_time} : 0
666 ); 669 );
667 } 670 }
668 671
669 $self->redraw ($self->repaint_board); 672 $self->redraw ($self->repaint_board);
673
674 # delete $self->{update_board_cb};
675 #}
670} 676}
671 677
672sub event_update_tree { 678sub event_update_tree {
673 my ($self) = @_; 679 my ($self) = @_;
674 680
678 my $upper = $self->{moveadj}->upper; 684 my $upper = $self->{moveadj}->upper;
679 my $pos = $self->{moveadj}->get_value; 685 my $pos = $self->{moveadj}->get_value;
680 686
681 $self->{moveadj}->upper (scalar @{$self->{path}}); 687 $self->{moveadj}->upper (scalar @{$self->{path}});
682 688
689 warn "UPDATE_TREE $pos,$upper";#d#
683 $self->{moveadj}->changed; 690 $self->{moveadj}->changed;
684 if ($pos == $upper) { 691 if ($pos == $upper) {
685 $self->{moveadj}->set_value (scalar @{$self->{path}}); 692 $self->{moveadj}->set_value (scalar @{$self->{path}});
686 } else { 693 } else {
687 $self->{moveadj}->value_changed; 694 $self->update_board;
688 } 695 }
689 } 696 }
690} 697}
691 698
692sub event_update_comments { 699sub event_update_comments {
709 s{ 716 s{
710 ( 717 (
711 \b 718 \b
712 (?:[bw])? 719 (?:[bw])?
713 [, ]{0,2} 720 [, ]{0,2}
714 [a-t] 721 [a-hj-t] # valid for upto 19x19
715 \s? 722 \s?
716 [0-9]{1,2} 723 [1-9]?[0-9]
717 \b 724 \b
718 ) 725 )
719 }{ 726 }{
720 "<coord>$1</coord>"; 727 "<coord>$1</coord>";
721 }sgexi; 728 }sgexi;
795 $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}}; 802 $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}};
796 803
797 $text .= "\nTime: "; 804 $text .= "\nTime: ";
798 805
799 if ($rules->{timesys} == TIMESYS_NONE) { 806 if ($rules->{timesys} == TIMESYS_NONE) {
800 $text .= "infinite"; 807 $text .= "UNLIMITED";
801 } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) { 808 } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) {
802 $text .= util::format_time $rules->{time}; 809 $text .= util::format_time $rules->{time};
810 $text .= " ABS";
803 } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) { 811 } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) {
804 $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count}; 812 $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count};
805 $text .= sprintf " + %s (%d)", util::format_time $rules->{interval}, $rules->{count}; 813 $text .= sprintf " + %s (%d) BY", util::format_time $rules->{interval}, $rules->{count};
806 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { 814 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) {
807 $text .= util::format_time $rules->{time}; 815 $text .= util::format_time $rules->{time};
808 $text .= sprintf " + %s/%d", util::format_time $rules->{interval}, $rules->{count}; 816 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count};
809 } 817 }
810 818
811 $self->{text}->append_text ("<infoblock>$text</infoblock>"); 819 $self->{text}->append_text ("<infoblock>$text</infoblock>");
812} 820}
813 821
821} 829}
822 830
823sub inject_final_result { 831sub inject_final_result {
824 my ($self, $msg) = @_; 832 my ($self, $msg) = @_;
825 833
826 $self->{text}->append_text ("\n<header>Game Over</header>" 834 $self->{text}->append_text ("<infoblock>\n<header>Game Over</header>"
827 . "\nWhite Score " . (util::toxml $msg->{whitescore}->as_string) 835 . "\nWhite Score " . (util::toxml $msg->{whitescore}->as_string)
828 . "\nBlack Score " . (util::toxml $msg->{blackscore}->as_string) 836 . "\nBlack Score " . (util::toxml $msg->{blackscore}->as_string)
837 . "</infoblock>"
829 ); 838 );
830} 839}
831 840
832sub destroy { 841sub destroy {
833 my ($self) = @_; 842 my ($self) = @_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines