lynx   »   [go: up one dir, main page]

use Tk;

入門Perl・Tk

入門Perl・Tk

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。



※2005/04/22 Fri 11:07:57 に再編集されました。
※2004/10/30 Sat 17:19:54に再編集されました。

本末転倒

まずは、id:ef66様、わがままを聞いてくださってありがとうございます。
勝手にモジュールをインストールできない人様のサーバーでも、古いバージョンのPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIPを作成できればいい訳で。
興味が湧いたので、ググったところ、http://www.memb.jp/~deq/perl/doc-ja/Archive-Zip.htmlなんてモジュールもあることがわかりました。
今インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールをリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

Perlでexe


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit に付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月頃から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。

やってみるかな。

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

こんなのもあったんだ。

本日の素敵ワードたち

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロインは鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー。
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

SIMPLE2000

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


●水着の女の子ちゃんたちが奮闘!!
 水着のアイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
まあ、しょうがないな。お布施しよう。

use Tk;

入門Perl・Tk

入門Perl・Tk

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。


※2005/04/22 Fri 11:07:57 に再編集されました。
※2004/10/30 Sat 17:19:54に再編集されました。

本末転倒

まずは、id:ef66様、わがままを聞いてくださってありがとうございます。
勝手にモジュールをインストールできない人様のサーバーでも、古いバージョンのPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIPを作成できればいい訳で。
興味が湧いたので、ググったところ、http://www.memb.jp/~deq/perl/doc-ja/Archive-Zip.htmlなんてモジュールもあることがわかりました。
今インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールをリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

Perlでexe


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit に付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月頃から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。

やってみるかな。

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

こんなのもあったんだ。

本日の素敵ワードたち

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロインは鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー。
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

SIMPLE2000

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


●水着の女の子ちゃんたちが奮闘!!
 水着のアイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
まあ、しょうがないな。お布施しよう。

use Tk;

入門Perl・Tk

入門Perl・Tk

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

ONI 完全日本語版 Windows版

こんなのもあったんだ。

本日の素敵ワードたち

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロインは鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー。
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

Perlでexe


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit に付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月頃から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。

やってみるかな。

本末転倒

まずは、id:ef66様、わがままを聞いてくださってありがとうございます。
勝手にモジュールをインストールできない人様のサーバーでも、古いバージョンのPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIPを作成できればいい訳で。
興味が湧いたので、ググったところ、http://www.memb.jp/~deq/perl/doc-ja/Archive-Zip.htmlなんてモジュールもあることがわかりました。
今インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールをリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

SIMPLE2000

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


●水着の女の子ちゃんたちが奮闘!!
 水着のアイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
まあ、しょうがないな。お布施しよう。

Лучший частный хостинг