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.42 by pcg, Tue Jun 3 18:17:05 2003 UTC vs.
Revision 1.49 by pcg, Tue Jun 10 09:06:39 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
675 $self->{path} = $self->get_path; 681 $self->{path} = $self->get_path;
676 682
677 if ($self->{moveadj}) { 683 if ($self->{moveadj}) {
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;
686 my $move = scalar @{$self->{path}};
680 687
681 $self->{moveadj}->upper (scalar @{$self->{path}}); 688 $self->{moveadj}->upper ($move);
682 689
683 warn "UPDATE_TREE $pos,$upper";#d# 690 warn "UPDATE_TREE $pos,$upper";#d#
684 $self->{moveadj}->changed; 691 $self->{moveadj}->changed;
685 if ($pos == $upper) { 692 if ($pos == $upper) {
686 $self->{moveadj}->set_value (scalar @{$self->{path}}); 693 $self->{moveadj}->value ($move);
687 } else {
688 $self->{moveadj}->value_changed; 694 $self->{moveadj}->value_changed;
689 } 695 }
690 } 696 }
691} 697}
692 698
780 $text .= "\nHandicap: " . $self->{handicap}; 786 $text .= "\nHandicap: " . $self->{handicap};
781 $text .= "\nKomi: " . $self->{komi}; 787 $text .= "\nKomi: " . $self->{komi};
782 $text .= "\nSize: " . $self->size_string; 788 $text .= "\nSize: " . $self->size_string;
783 } 789 }
784 790
791 if ($self->is_scored) {
792 $text .= "\nResult: " . $self->score_string;
793 }
794
785 $self->{text}->append_text ("<infoblock>$text</infoblock>"); 795 $self->{text}->append_text ("<infoblock>$text</infoblock>");
786} 796}
787 797
788sub event_update_rules { 798sub event_update_rules {
789 my ($self, $rules) = @_; 799 my ($self, $rules) = @_;
796 $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}}; 806 $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}};
797 807
798 $text .= "\nTime: "; 808 $text .= "\nTime: ";
799 809
800 if ($rules->{timesys} == TIMESYS_NONE) { 810 if ($rules->{timesys} == TIMESYS_NONE) {
801 $text .= "infinite"; 811 $text .= "UNLIMITED";
802 } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) { 812 } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) {
803 $text .= util::format_time $rules->{time}; 813 $text .= util::format_time $rules->{time};
814 $text .= " ABS";
804 } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) { 815 } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) {
805 $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count}; 816 $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count};
806 $text .= sprintf " + %s (%d)", util::format_time $rules->{interval}, $rules->{count}; 817 $text .= sprintf " + %s (%d) BY", util::format_time $rules->{interval}, $rules->{count};
807 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { 818 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) {
808 $text .= util::format_time $rules->{time}; 819 $text .= util::format_time $rules->{time};
809 $text .= sprintf " + %s/%d", util::format_time $rules->{interval}, $rules->{count}; 820 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count};
810 } 821 }
811 822
812 $self->{text}->append_text ("<infoblock>$text</infoblock>"); 823 $self->{text}->append_text ("<infoblock>$text</infoblock>");
813} 824}
814 825

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines