#!/usr/bin/perl use Glib; use Gtk2; use KGS::Protocol; use KGS::Listener::Debug; use Audio::Data; use Audio::Play; use IO::Socket::INET; use List::Util; use Errno; use Storable; use Carp; init Gtk2; $SIG{QUIT} = sub { Carp::confess "SIGQUIT" }; our $HACK = 1; # do NEVER enable. ;) our $DEBUG_EXPOSE = 0; if ($HACK) { $KGS::debug = 1; } BEGIN { our $VERSION = "0.1"; our $config; our $LIBDIR = "."; our $APPDIR = "$LIBDIR/kgsueme"; our $IMGDIR = "$LIBDIR/images"; our $SNDDIR = "$LIBDIR/sounds"; for (qw(util.pl gtk.pl chat.pl image.pl sound.pl user.pl gamelist.pl userlist.pl challenge.pl board.pl game.pl room.pl roomlist.pl app.pl)) { require "$APPDIR/$_"; } } our $app = new app; if (0) { use KGS::Constants; for (19) { my $game = new game size => $_; if (1) { my $data = Storable::retrieve "board1.dat"; while (my ($k, $v) = each %$data) { $game->{$k} = $v; } $game->event_update_tree; } if (0) { $game->{cur_board} = new KGS::Game::Board; my @x = ( #MARK_B, #MARK_W, #MARK_GRAY_B | MARK_SMALL_W, #MARK_GRAY_W | MARK_SMALL_B, #MARK_W | MARK_TRIANGLE, 0, 0, 0, ); for $x (0..18) { for $y (0..18) { $game->{cur_board}{board}[$x][$y] = $x[rand @x]; } } $game->{cur_board}{board}[0][0] = MARK_B; $game->{cur_board}{board}[1][1] = MARK_GRAY_B | MARK_SMALL_W; $game->{cur_board}{board}[2][2] = MARK_W | MARK_TRIANGLE; $game->{cur_board}{board}[1][2] = MARK_B | MARK_LABEL; $game->{cur_board}{label}[1][2] = "198"; $game->{cur_board}{board}[0][2] = MARK_W | MARK_LABEL; $game->{cur_board}{label}[0][2] = "AWA"; $game->{board}->set_board ($game->{cur_board}); } $game->{window}->show_all; } } main Gtk2; $app->destroy; Gtk2->main_iteration while Gtk2->events_pending; 1;