カテゴリー「Python」の50件の記事

2008年9月15日

from __future__ import hatsune

 先に

にて公開した LaLaVoice 版 01_ballade を動画にしてニコニコ動画に上げたので、それの動画部分作成に作ったプログラムを公開しておきます。

続きを読む "from __future__ import hatsune"

| | トラックバック (0)

2008年8月 2日

Pygame1.8.1出たよ!

Many bug fixes and improvements, including:

  • BLEND_RGBA_* blitters and blenders to go with the BLEND_RGB_* blend modes.
  • documentation updates (mainly for new sprite classes released in 1.8.0)
  • sound fixes, and streaming some music from file like objects
  • image saving fixes
  • greatly expanded tests
  • Pixelarray, and surfarray updates and fixes.
  • Enhanced Color class, reimplemented in C for speed.
  • New Windows and Mac binary installers.

 kokoro.py での

python.exe - エントリ ポイントが見つかりません: (×) プロシージャ エントリ ポイント SDL_GetKeyRepeat がダイナミック リンク ライブラリ SDL.dll から見つかりませんでした。

も出なくなったよsign01

 音質もまともになったしsmile

続きを読む "Pygame1.8.1出たよ!"

| | トラックバック (0)

2008年4月27日

それは kokoro.py と言うプログラム

【ニコニコ動画】LaLaVoice で「ココロ」

 ニコニコに上げた LaLaVoice で「ココロ」 の動画部分を作るのに使ったプログラム公開しておきますね。

 パブリックドメイン扱いにしますので流用できる人はどうぞ。(泥縄ででっちあげたあまりきれいでないプログラムなので「Pygame の使用例」くらいの意味しかないかもしれませんけれども)

続きを読む "それは kokoro.py と言うプログラム"

| | トラックバック (1)

2008年4月 9日

smf2txt.py ‐ SMF をテキストに

 LaLaVoice で曲作るつもりが明後日の方に迷走中。

何故か Standard MIDI File をテキストファイルにして内容を表示する Python スクリプトを作ってしまいました。

 コマンドラインから対象のMIDIファイル名を引数にして実行するとそれをテキストファイルにします。が、単に(ダブルクリックするなりして)実行してもダイアログ出すので、そこで指定するのでもよし。

続きを読む "smf2txt.py ‐ SMF をテキストに"

| | トラックバック (0)

2008年1月28日

2007年下半期ライトノベルサイト杯結果と、同じのに投票した方々

 という事で結果発表とのこと。開催ごくろうさまでした。

 新規作品部門だと

  1. 時載りリンネ!
  2. さよならピアノソナタ
  3. 暴風ガールズファイト
  4. アストロノト!
  5. ドアーズ

まで、既存作品部門だと

  1. “文学少女”と~
  2. とらドラ
  3. クジラのソラ
  4. バカとテストと召喚獣

までが上位陣と見なしていいかな。

 読んでるのは暴風、とらドラ、クジラ、あとドアーズを連載時にちょろちょろとだから半分以上を読んでいないや。特に票を取っている両部門のトップは気になるところ。でもとりあえず読んでみたいのはバカテスかな。なんか秀吉が……あ、いや、バカ話らしいのが興味あるし。しかしドアーズにバカテスと、上位陣の下端にバカ話がかろうじて引っかかっているあたり面白い偶然ですね。

続きを読む "2007年下半期ライトノベルサイト杯結果と、同じのに投票した方々"

| | トラックバック (0)

2007年11月14日

相関図ジェネレータでみっくみく

 相関図ジェネレータでいろいろ作ってみたよ。

 あとこれの他に『暴風ガールズファイト』と『キミキス pure rouge』については各記事に追加で入れておいたので暇と興味がありましたら見てやってください。

続きを読む "相関図ジェネレータでみっくみく"

| | トラックバック (0)

2007年11月 2日

愚かな一貫性は小人物に憑いたおばけである

PEP 8 に従って Python スクリプトを整形する

使ってみた。

続きを読む "愚かな一貫性は小人物に憑いたおばけである"

| | トラックバック (0)

2007年10月28日

「書籍・雑誌」TimeLine

このブログの「書籍・雑誌」カテゴリーの記事を TimeLine してみました。

続きを読む "「書籍・雑誌」TimeLine"

| | トラックバック (0)

2007年10月 1日

cococontents.py ver.1.0.5 ココログに「目次」を投稿[改改改改]

ココログ目次投稿 Python スクリプトの《総目次》のカテゴリー表示を、種別と(それ以外の)固有名の2段に分けて表示するよう前の版から改良しました。

ソース中で定数「CLASS」に登録されているカテゴリーをその順番に表示し、それ以外の残りはその後に(Unicode順で)表示します。

 

細かい使い方は最初の記事参照のこと。

続きを読む "cococontents.py ver.1.0.5 ココログに「目次」を投稿[改改改改]"

| | トラックバック (0)

2007年8月24日

数学ガール Mathematical Girls

これは良いライトノベルですね。『彼女はQ〈クイーン〉』もどうせならこれくらい突っ走れば良かったのに。

良くある「萌えなんたら」の類いの学習本とこれの違うところは、ライトノベルの部分を「学習の興味を繋ぐための方便」などとは一切扱っていない事。むしろ「僕」ミルカさんテトラちゃんのボーイ・ミーツ・ガールな青春の1ページを描くための方便として数学がある、という感じ。そういう事から言うと学習書より『スラムオンライン』あたりの青春求道物に近いかも。

続きを読む "数学ガール Mathematical Girls"

| | トラックバック (0)

2007年8月 4日

open kimono

Q. Will Python 3000 provide "real" private, protected and public?

A. No.  Python will remain an "open kimono" language.

More Questions About Python 3000 Answered (Guido van Rossum)

open kimono胸襟を開く でいいのかな?

個人的に、Python のこういう「馬鹿が馬鹿なことをするのを阻止しようとはしない」所が気に入っているので喜ばしいです。言語は「ついうっかり」さえ防止してくれればいいよ。

他には、

  • がはっきり分離されている(式の中に文を書けないようにしている)
  • プログラムはどうせインデントして書くんだからそれをブロックの区切りの判別に使う(人間とコンピュータの認識すべき部分が一致している)
  • elsif みたいな半端に紛らわしい省略でなく elif という造語を使う(elsifelse if では口で言うと区別が付かないし)
  • tuple(タプル)があって、それが辞書キーに使える

といったあたりがお気に入りの部分。

あと標準付属で IDLE という簡易 IDE が付属しているのもフリーの処理系としては珍しいかも。前提にできる「標準」があるのはいいよね。

| | トラックバック (0)

2007年7月15日

tableget.py HTML から表を取り出す

HTML の table 要素をタブ区切り表形式(TSV)にする Python スクリプト。

関数

tableget(html, anchor=True)
TSV のリストを返します。

引数:
html:    HTML 文字列(Unicode 文字列か Ascii)
anchor: リンクをテキスト中に入れるか

スクリプトをそのまま実行するとローカルにある指定した HTML を table?.txt という形式の名前で TSV にして出力します。 ネストした表ではエラーを出しますので HTML ソースを書き換えてあらかじめ外に出しておいてください。

Python のプログラムを組めるのでしたら上記の tableget 関数を呼ぶスクリプトを書けば応用が効くでしょう。

| | トラックバック (0)

2007年7月 4日

全角半角を加味したセンタリング、左寄せ、右寄せ

Unicode の East Asian Width を考慮した center, ljust, rjust の Python スクリプト。slen で全角を2文字分と数えた文字数も取れます。

'''The East Asia character width was considered. len, ljust, rjust, center.'''

import unicodedata

def slen(s, ambiguous=True):
    '''The length of the character string by the East Asia character width'''     if ambiguous:   # 文脈依存の文字(ギリシャ文字、ロシア文字等)を全角に扱うか         w = 'W', 'F', 'A'     else:
        w = 'W', 'F'     return sum((unicodedata.east_asian_width(x) in w) + 1 for x in s)

def _s(s, width, ambiguous):
    return max(width - slen(s, ambiguous), 0)

def ljust(s, width, fillchar=' ', ambiguous=True):
    return s + fillchar * _s(s, width, ambiguous)

def rjust(s, width, fillchar=' ', ambiguous=True):
    return fillchar * _s(s, width, ambiguous) + s

def center(s, width, fillchar=' ', ambiguous=True):
    space = _s(s, width, ambiguous)
    r = space // 2
    L = space - r
    return fillchar * L + s + fillchar * r


if __name__ == "__main__":
    for i in (u'hoge,ほげ,Объект,독도,饺子,±,␣,'               u'\N{IDEOGRAPHIC SPACE},'               u'\N{ZERO WIDTH NO-BREAK SPACE}').split(','):
        for a in False, True:
            print center(i, 9, '*', ambiguous=a),
            print clen(i, ambiguous=a), i
# 好きに流用してください

| | トラックバック (0)

texteditor.pyw 一応完成?

先の texteditor.pyw Ver.1.0.1 に更にいろいろ付けて、機能的には一応完成。

検索を付け、それらが右クリックのポップアップメニューで出るようにし、ファイル読み書きにエラー処理を付けたので一応の実用性はある感じに。

しかしその検索なんですが初回の検索(Edit:Find)で妙な動作が。たぶん検索文字列入力に使っている tkSimpleDialog.askstring と干渉して変なことが起こっているのだと思うのだけれども、私の知識ではこれ以上どうにもならないです。

まあ右に1つ分カーソルが勝手に動いて選択状態を解除してしまっているだけみたいなので、それを分かって使う分には不都合は無いですが。みっともなくはあります。

最初は自分がどこかにバグを作りこんでしまったのかと色々試し、時間を無駄にしてしまいました。GUI の暗部は恐ろしい。

関連記事

  1. texteditor.pyw
  2. texteditor.pyw Undo付けた
  3. Tkinter の Text Widget でのショートカット

| | トラックバック (0)

2007年7月 1日

Tkinter の Text Widget でのショートカット

Windows XP での Tkinter の何も設定していない素の Text(ScrolledText) Widget で、キーを CTRL キーと同時押しした場合のショートカットの動作を調べてみました。参考のため IDLE と Windows のメモ帳での例も並べておきます。

CTRL+? による動作
TextIDLEメモ帳
TextIDLEメモ帳
a行頭 全て選択
b ×
cコピー
dDEL ×
e行末 ×
f 検索
g× 次を検索 行へ移動
hBS 置換
iTAB
j× × 改行
k行末まで削除 ×
l× 画面中央に ×
m× × 改行
n New Window 新規
o改行 開く
p 印刷
q× Exit ×
r× × ×
s× 上書き保存
t文字を1つ後ろに ×
u× × ×
v貼り付け
w× × ×
x切り取り
y× × ×
z取り消し 元に戻す
/全選択 × ×
前の単語
次の単語
前の段落 ×
次の段落 ×

IDLE はメニューの Config での Keys の設定が IDLE Classic Windows の時のものです。でもそこで見える設定と実際の動作が CTRL+d あたりでは違いがあるのですよね。これはどういう事なんだろう。

CTRL+z での動作ですが。TextIDLE のそれは Undo ですが、メモ帳のは Undo Redo のトグル動作です。つまりメモ帳は1つ分しか Undo 出来ません。

| | トラックバック (0)

2007年6月30日

texteditor.pyw Undo付けた

先の texteditor.pywUndo(元に戻す)を付けたよ。

Tkinter というより Tk の機能なので探すのにちょっと面倒でした。なので Tkinter での使い方を以下にメモっておきます。

最初に t.config(undo=True) する
Text (あるいはそれを継承した ScrolledText) tundo を設定する事で Undo メカニズムが働くようになります。
t.edit_undo() で Undo
Windows だと特に設定しなくても CTRL+Z で Undo されるようです。
t.edit_redo() で Undo の取り消し
つまり取り消しの取り消し。
t.edit_reset() で Undo バッファのクリア
新規文書を作成する時や別の文書を読み込んだ時にはこれでクリアしておかないと前の文書が復活してしまう事に。

| | トラックバック (0)

2007年6月25日

texteditor.pyw

Python で作るテキストエディタのサンプル。

UTF-8 専用。Undo(元に戻す)の機能もない実用性皆無の代物だけど、とりあえず。

(Undo 付けたの作った)

| | トラックバック (0)

2007年6月 9日

cococontents.py ver.1.0.3 ココログに「目次」を投稿[改改改]

昔作ったココログ目次投稿 Python スクリプトが今使ってみるとバグってました。なので訂正版。

(更なる改訂版あります)

使い方は最初の記事参照。

続きを読む "cococontents.py ver.1.0.3 ココログに「目次」を投稿[改改改]"

| | トラックバック (0)

2007年5月26日

affiliate20.py

アフィリエイト2.0 のデータ取得して表示する Python スクリプトのサンプル。

検索対象になるのは商品名のみで、作者名等では検索できないのが不便だな。(これはアフィリエイト2.0ホームページ検索フォームでも同じだけど)

ところで、これで取得したアフィリエイト・リンクとホームページの検索フォームから選択して作ったアフィリエイト・リンクとで URI が違うんだけど、これはどういう事なんだろう?

| | トラックバック (0)

2007年5月22日

Spinward Marches 宙域白書

先の統計公式背景世界スピンワード・マーチ宙域のデータで取ってみました。FFE から通販で買った PDF CD-ROMClassic Traveller Supplement 3 The Spinward Marches からのデータに準拠しています。(しかしこの PDF のデータ、機械的にスキャンしたのをそのまま入れているらしく、コピペすると B8 とか 6 とか 13 とかに化けていて難渋させられました。こういうのが商品として成り立つのだから USA は平和だなぁ)

スピンワード・マーチ宙域のデータを見ると、そこでは人口0 ならば政治体制法律レベルテック・レベル0 という解釈で作られている模様。Book 3 のルールにそういうのは無いですが比較のためのデータは今回そのルールを追加して作ってあります。

  • S.M.:スピンワード・マーチ宙域 (439個の星系)
  • Book3:基本セット Book 3 世界の作成 による比較データ (43900個)
  • 差分:S.M.Book3 の値

最小単位、つまり 星系1つ分 の重みが 0.23% になるのでそれより大きく、かつ Book3 の値を基準にして 10% より大な差分については 強調 してあります。


宇宙港
S.M.Book3差分
A 12.07% 16.72% -4.65%
B 26.42% 24.65% +1.77%
C 26.65% 30.38% -3.73%
D 8.66% 11.33% -2.67%
E 21.41% 14.09% +7.32%
X 4.78% 2.84% +1.94%

宇宙港A が少なく辺境である E,X が増強されている感じ。やはりスピンワード・マーチ宙域自体が辺境だからなんでしょうか。


基地
S.M.Book3差分
海軍 21.18% 17.44% +3.74%
偵察局 16.63% 28.97% -12.34%

帝国 以外の国の基地は一律に海軍に含めて集計していますので、その分海軍が多く偵察局が少なくなっているのかも。


ガス・ジャイアント
S.M.Book3差分
67.43% 82.97% -15.54%

有意な差がありますが。ガス・ジャイアントの存在はつまり 宇宙港 (やそれが存在する惑星)に寄らずして燃料補給できる率になるので、それが押さえ気味に設定されている事になります。


地理要素

規模
S.M.Book3差分
0 2.28% 2.79% -0.51%
1 5.47% 5.54% -0.07%
2 8.88% 8.18% +0.70%
3 9.79% 11.00% -1.21%
4 13.44% 13.88% -0.44%
5 16.17% 16.91% -0.74%
6 13.44% 14.03% -0.59%
7 11.85% 10.88% +0.97%
8 9.57% 8.36% +1.21%
9 5.92% 5.60% +0.32%
A 3.19% 2.82% +0.37%
大気
S.M.Book3差分
0 9.11% 10.72% -1.61%
1 5.47% 6.01% -0.54%
2 7.74% 7.72% +0.02%
3 10.25% 9.54% +0.71%
4 8.20% 10.67% -2.47%
5 10.25% 11.02% -0.77%
6 14.12% 10.72% +3.40%
7 9.34% 9.82% -0.48%
8 9.11% 7.92% +1.19%
9 8.20% 6.19% +2.01%
A 2.96% 4.35% -1.39%
B 3.19% 2.66% +0.53%
C 2.05% 2.64% -0.59%
水界率
S.M.Book3差分
0 17.31% 20.90% -3.59%
1 6.38% 4.66% +1.72%
2 7.29% 6.26% +1.03%
3 9.34% 7.43% +1.91%
4 13.90% 8.99% +4.91%
5 14.35% 9.57% +4.78%
6 10.71% 9.97% +0.74%
7 7.52% 9.26% -1.74%
8 4.78% 7.86% -3.08%
9 4.78% 6.05% -1.27%
A 3.64% 9.04% -5.40%

規模については誤差範囲、大気についても 6(標準) が微妙に増強されている程度。しかし水界率は(6Dを振り重ねることで平坦になった)確率分布を中央よりに回復しようとしているようです。

社会要素

人口
S.M.Book3差分
0 4.10% 2.77% +1.33%
1 4.10% 5.55% -1.45%
2 4.78% 8.33% -3.55%
3 9.11% 11.21% -2.10%
4 12.76% 14.06% -1.30%
5 17.54% 16.53% +1.01%
6 17.08% 13.93% +3.15%
7 12.53% 11.02% +1.51%
8 8.43% 8.30% +0.13%
9 7.06% 5.52% +1.54%
A 2.51% 2.78% -0.27%
政治体制
S.M.Book3差分
0 12.53% 10.78% +1.75%
1 6.83% 5.60% +1.23%
2 6.83% 8.04% -1.21%
3 9.11% 9.50% -0.39%
4 12.53% 10.36% +2.17%
5 9.34% 11.18% -1.84%
6 9.34% 10.74% -1.40%
7 8.66% 9.93% -1.27%
8 7.74% 8.13% -0.39%
9 7.97% 6.17% +1.80%
A 3.64% 4.25% -0.61%
B 2.28% 2.63% -0.35%
C 2.28% 1.54% +0.74%
D 0.91% 1.15% -0.24%
法律レベル
S.M.Book3差分
0 16.40% 14.79% +1.61%
1 5.24% 6.09% -0.85%
2 7.97% 7.15% +0.82%
3 9.34% 8.49% +0.85%
4 7.97% 9.00% -1.03%
5 7.97% 9.24% -1.27%
6 10.02% 8.87% +1.15%
7 8.66% 8.35% +0.31%
8 8.43% 7.45% +0.98%
9 6.38% 6.18% +0.20%
A 4.78% 4.89% -0.11%
B 3.19% 3.51% -0.32%
C 1.82% 2.51% -0.69%
D 1.37% 1.59% -0.22%
E 0.00% 0.97% -0.97%
F 0.46% 0.54% -0.08%
G 0.00% 0.25% -0.25%
H 0.00% 0.10% -0.10%
J 0.00% 0.03% -0.03%

人口については規模のそれより荒れ気味ですが一応は2Dの分散の範疇。政治体制法律レベルについてもルール通りに作った範疇かと思います。

テック・レベル
S.M.Book3差分
0 4.78% 3.64% +1.14%
1 0.68% 0.80% -0.12%
2 1.82% 1.85% -0.03%
3 3.19% 3.59% -0.40%
4 4.78% 5.30% -0.52%
5 7.97% 7.54% +0.43%
6 7.29% 9.77% -2.48%
7 10.02% 11.11% -1.09%
8 11.62% 12.02% -0.40%
9 12.07% 11.49% +0.58%
A 15.72% 10.03% +5.69%
B 10.25% 8.20% +2.05%
C 5.01% 6.22% -1.21%
D 2.96% 4.14% -1.18%
E 0.68% 2.51% -1.83%
F 0.91% 1.24% -0.33%
G 0.23% 0.41% -0.18%
H 0.00% 0.10% -0.10%
J 0.00% 0.02% -0.02%
K 0.00% 0.01% -0.01%
L 0.00% 0.00% +0.00%

テック・レベルについてもおおむねルール通り。公式背景世界での 帝国 の設定で、帝国内のテックレベルの上限は F になっているのですが、そのせいか高い方が押さえ気味でその分 A,B に行っている感じ。もっとも星系1つ分が 0.23% の重みですからそういった恣意が無くとも、この範囲で H 以上の星系が無いのは並みの確率ですが。


貿易分類

社会要素
S.M.Book3差分
農業 17.31% 13.74% +3.57%
非農業 7.29% 11.63% -4.34%
工業 5.24% 4.30% +0.94%
非工業 69.48% 72.38% -2.90%
富裕 9.34% 4.57% +4.77%
貧困 13.21% 18.57% -5.36%
地理要素
S.M.Book3差分
海洋 3.64% 9.04% -5.40%
砂漠 17.31% 20.90% -3.59%
真空 9.11% 10.72% -1.61%
小惑星 2.28% 2.79% -0.51%
氷冠 4.33% 0.76% +3.57%

妙に富裕が多いです。水界率を中央に寄せる意図の影響で海洋砂漠が減っています。そして氷冠世界の異様な多さ!


| | トラックバック (0)

2007年5月14日

TRAVELLER 世界白書

この前の world.py を使ってもっと大量の星系の統計を取るスクリプトを作ってみたよ。

ダウンロード toukei.py (1.5K)

world.py と同じフォルダーに入れて実行してね。でも星系1千万個による統計なので Pentium M 1.40GHz で40分ほどかかるよ。わざわざ実行しても結果は大差無いと思うので以下のデータ見るだけにしておいた方が利口かな。

出力そのままじゃ見づらいので表に仕立てておきます。

宇宙港
A16.67%
B24.99%
C30.55%
D11.11%
E13.91%
X 2.77%
基地
海軍17.35%
偵察局28.92%

海軍基地はそもそも A と B にしか無いので、つまり有りえる場所のうち 41.65% に存在。

偵察局基地は A~D に有りえるので、その内の 34.71% に存在。もっともDM付くので A に少なく D に多いわけですが。


地理要素
規模 大気 水界率
0 2.78% 10.89% 20.87%0
1 5.56% 5.79% 4.59%1
2 8.34% 7.72% 6.05%2
311.10% 9.40% 7.62%3
413.88% 10.64% 8.97%4
516.65% 11.18% 9.74%5
613.90% 10.82% 9.91%6
711.11% 9.65% 9.20%7
8 8.34% 8.03% 7.83%8
9 5.56% 6.16% 6.06%9
A 2.78% 4.31% 9.16%A
B  2.70%  B
C  2.71%  C

全て独立して 2D で決められるキャラクターの UPP と違い、星系UWP のこの三つの要素は基本的に前の要素に 2D-7 を加えて決められるので強い相関がありまた、実際には大気で 4D、水界率で 6D の分散が出る事になります。

規模は素直な 2D の分散ですが、水界率まで来ると(特殊なDMのせいもあり)かなり平板な分散になりますね。


社会要素(星系数ベース)
人口 政治体制法律レベル
0 2.79% 9.74% 13.30%0
1 5.57% 6.18% 6.40%1
2 8.33% 8.03% 7.63%2
311.11% 9.63% 8.64%3
413.87% 10.82% 9.27%4
516.68% 11.27% 9.43%5
613.88% 10.80% 9.05%6
711.09% 9.63% 8.37%7
8 8.33% 8.03% 7.34%8
9 5.56% 6.16% 6.13%9
A 2.78% 4.32% 4.82%A
B  2.70% 3.58%B
C  1.54% 2.50%C
D  1.16% 1.63%D
E    0.97%E
F    0.53%F
G    0.25%G
H    0.11%H
J    0.03%J
社会要素(人口ベース)
人口 政治体制法律レベル
0 0.00% 0.00% 0.17%0
1 0.00% 0.00% 0.43%1
2 0.00% 0.01% 0.94%2
3 0.00% 0.09% 1.86%3
4 0.00% 0.62% 3.10%4
5 0.00% 3.40% 4.69%5
6 0.04% 6.21% 6.53%6
7 0.32% 8.94% 8.40%7
8 2.43% 11.70% 10.07%8
916.19% 14.29% 11.19%9
A81.01% 16.06% 11.32%A
B  13.21% 10.79%B
C  10.52% 9.59%C
D  14.94% 7.82%D
E    5.65%E
F    3.73%F
G    2.17%G
H    1.15%H
J    0.41%J

UWP 後半の三つもまた前半三つと同様の調子で相関あり。人口ベースだと人口率が10のべき乗計算であるため、星系数では 2.78% でしかなくとも人口ベースでは 81% もの影響力を持ってしまう人口A の世界で大部分が決まってしまいます。つまりトラベラー世界の人口の大部分は市民の武装不可の独裁政治下で生きているわけで……宇宙に出たくなるのもうなづけます。


テック・レベル
星系数 人口
0 0.89% 0.17%0
1 0.84% 0.29%1
2 1.85% 0.44%2
3 3.51% 0.99%3
4 5.55% 1.48%4
5 7.75% 3.11%5
6 9.93% 4.64%6
711.55% 7.14%7
812.31% 8.93%8
911.91% 10.71%9
A10.50% 11.76%A
B 8.49% 11.83%B
C 6.33% 11.19%C
D 4.27% 9.07%D
E 2.52% 7.27%E
F 1.21% 4.98%F
G 0.45% 3.29%G
H 0.12% 1.75%H
J 0.03% 0.74%J
K 0.01% 0.22%K
L 0.00% 0.01%L

テック・レベル宇宙港でおおむね決まってしまうわけですが、人口ベースで見ると 81% を占める人口A 世界で DM+4 が付くせいでその分せり上がっています。因果関係から言うとむしろ、高テック・レベルの星系に宇宙港が出来、人も集まるという事なんでしょうけれども。



貿易分類

農業
星系数 人口
農業 13.95% 0.12% 大気4-9、水界率4-8、人口度5-7
(並) 74.49% 72.15%
非農業11.56% 27.73% 大気3以下、水界率3以下、人口度6以上

星系数では拮抗していますが、人口A を含み得ない農業世界が人口比では極小に。人口度5-7 ですからけして低人口ではないはずですが。


工業
星系数 人口
工業 4.24% 49.38% 大気0,1,2,4,7,9(真空、微小、汚染)、人口度9以上
(並) 23.52% 50.57%
非工業72.24% 0.05% 人口度6以下

星系数では 4.24% を占めるにすぎない工業世界が人口では半数近く。星系数では7割以上と圧倒している非工業は、人口では 0.05% と極小。人口度の低さのみが条件ですから当然なんではありますが。


貧富
星系数 人口
富裕 4.62% 0.37% 大気6,8、人口度6-8、政治体制4-9
(並) 76.78% 81.06%
貧困 18.60% 18.57% 大気2-5、水界率3以下

貧困人口度と相関のある UWP 後半とは無関係ですから星系数と人口での差はただの誤差。しかし貧困は人口とは無関係というのは直感に反する感じ。対して富裕人口A を含まないので人口の割りには星系数が多い事に。しかし人口度6-8 というのも人口が多い方の星系なんですが、統計のマジックですね。


水界
海洋 9.16% 水界率A
(並) 69.26%
氷冠 0.71% 大気0-1、水界率1以上
砂漠 18.09% 水界率0 (但し:その内、小惑星は累計から除外)
小惑星 2.78% 規模0(ルールにより大気と水界率も0)
大気
(有) 89.11%
真空 8.11% 大気0 (但し:その内、小惑星は累計から除外)
小惑星 2.78% 規模0(ルールにより大気と水界率も0)

水界大気の表の要素は貿易に直接からんで来ない単なるフレーバーですね。氷冠世界のレアさが目立ちます。大気0 で 12大気1 でも 11,12 が出ないと水界1以上にはならないですから珍しくて当然ですけれども。

| | トラックバック (0)

2007年5月11日

TRAVELLER 星系作成 Python スクリプト

雷鳴から翻訳版も出ている Classic Traveller の Book 3 準拠です。

ダウンロード world.py (8.1K)

example:

>>> import world
>>> s=world.System()
>>> print s
C450579-8  G    Ni,Po Desert >>> print s.starport,s.size,s.atmosphere,s.hydrographics
C 4 5 0 >>> print s.population,s.government,s.low_level,s.tech_level
5 7 9 8 >>> s.gas_giant True >>> s.desert,s.water (True, False) >>> for s in world.systems(10):print s
E220000-7  G    Ni,Po Desert A00059A-G NG    Ni,   Asteroid E567698-5  G Ag,Ni,Ri C576265-6 S     Ni,  D9A5568-5 SG    Ni,  C640311-7 SG    Ni,Po Desert B884048-A  G    Ni,  C136777-B  G          B89A032-8 NG    Ni,   Water C3359CA-A SG          >>> world.toukei_all(100000) 星系100000個作成中
(レベル 星系数ベース, 人口ベース)

starport
A 16.70%  16.70%, 16.07%  16.07%
B 24.79%  41.50%, 25.71%  41.78%
C 30.55%  72.04%, 30.56%  72.34%
D 11.07%  83.11%, 10.69%  83.04%
E 14.09%  97.20%, 13.92%  96.96%
X  2.80% 100.00%,  3.04% 100.00%

naval_base
0 82.65%  82.65%, 84.00%  84.00%
1 17.35% 100.00%, 16.00% 100.00%

scout_base
0 71.25%  71.25%, 70.95%  70.95%
1 28.75% 100.00%, 29.05% 100.00%

gas_giant
0 16.48%  16.48%, 16.21%  16.21%
1 83.52% 100.00%, 83.79% 100.00%

size
0  2.79%   2.79%,  2.85%   2.85%
1  5.29%   8.07%,  5.82%   8.67%
2  8.38%  16.45%,  8.04%  16.71%
3 11.04%  27.49%, 10.81%  27.52%
4 14.02%  41.52%, 14.30%  41.83%
5 16.64%  58.15%, 16.02%  57.85%
6 14.04%  72.19%, 13.64%  71.49%
7 10.97%  83.16%, 11.08%  82.56%
8  8.47%  91.62%,  8.82%  91.39%
9  5.54%  97.16%,  5.60%  96.99%
A  2.84% 100.00%,  3.01% 100.00%

atmosphere
0 10.73%  10.73%, 11.00%  11.00%
1  5.81%  16.54%,  5.47%  16.47%
2  7.65%  24.19%,  7.07%  23.54%
3  9.48%  33.67%,  9.46%  33.00%
4 10.67%  44.34%, 11.27%  44.28%
5 11.06%  55.40%, 10.66%  54.94%
6 10.75%  66.15%, 10.73%  65.67%
7  9.78%  75.92%,  9.23%  74.89%
8  8.06%  83.99%,  8.68%  83.57%
9  6.26%  90.25%,  6.94%  90.51%
A  4.26%  94.51%,  4.05%  94.56%
B  2.76%  97.27%,  2.75%  97.32%
C  2.73% 100.00%,  2.68% 100.00%

hydrographics
0 20.72%  20.72%, 20.41%  20.41%
1  4.50%  25.22%,  4.53%  24.94%
2  6.00%  31.22%,  6.37%  31.30%
3  7.60%  38.82%,  8.00%  39.31%
4  9.05%  47.88%,  8.66%  47.97%
5  9.87%  57.75%,  9.46%  57.42%
6  9.79%  67.53%,  9.17%  66.59%
7  9.18%  76.72%,  9.70%  76.29%
8  8.00%  84.72%,  8.24%  84.53%
9  6.11%  90.83%,  6.53%  91.06%
A  9.17% 100.00%,  8.94% 100.00%

population
0  2.73%   2.73%,  0.00%   0.00%
1  5.52%   8.24%,  0.00%   0.00%
2  8.38%  16.62%,  0.00%   0.00%
3 11.07%  27.68%,  0.00%   0.00%
4 14.01%  41.70%,  0.00%   0.00%
5 16.56%  58.26%,  0.00%   0.01%
6 13.86%  72.12%,  0.04%   0.04%
7 11.02%  83.14%,  0.32%   0.36%
8  8.46%  91.60%,  2.43%   2.79%
9  5.57%  97.17%, 15.97%  18.76%
A  2.83% 100.00%, 81.24% 100.00%

government
0  9.78%   9.78%,  0.00%   0.00%
1  6.18%  15.96%,  0.00%   0.00%
2  8.07%  24.03%,  0.01%   0.01%
3  9.65%  33.68%,  0.09%   0.10%
4 10.64%  44.32%,  0.57%   0.67%
5 11.28%  55.60%,  3.34%   4.01%
6 10.81%  66.40%,  6.18%  10.20%
7  9.56%  75.97%,  8.42%  18.62%
8  7.99%  83.95%, 12.51%  31.13%
9  6.24%  90.19%, 14.32%  45.45%
A  4.28%  94.47%, 15.99%  61.44%
B  2.81%  97.28%, 12.76%  74.20%
C  1.53%  98.80%, 10.95%  85.15%
D  1.20% 100.00%, 14.85% 100.00%

low_level
0 13.56%  13.56%,  0.11%   0.11%
1  6.40%  19.96%,  0.45%   0.56%
2  7.63%  27.59%,  0.82%   1.38%
3  8.57%  36.16%,  1.76%   3.15%
4  9.12%  45.29%,  3.06%   6.20%
5  9.26%  54.55%,  5.04%  11.24%
6  9.10%  63.65%,  6.75%  17.99%
7  8.39%  72.04%,  8.21%  26.20%
8  7.21%  79.25%,  9.75%  35.96%
9  6.16%  85.42%, 10.77%  46.72%
A  4.89%  90.31%, 11.30%  58.02%
B  3.53%  93.84%, 11.60%  69.62%
C  2.61%  96.44%,  9.70%  79.32%
D  1.63%  98.08%,  7.56%  86.88%
E  0.94%  99.02%,  5.19%  92.07%
F  0.54%  99.56%,  3.66%  95.73%
G  0.31%  99.86%,  2.69%  98.42%
H  0.10%  99.97%,  1.04%  99.46%
J  0.03% 100.00%,  0.54% 100.00%

tech_level
0  0.90%   0.90%,  0.17%   0.17%
1  0.86%   1.75%,  0.26%   0.43%
2  1.82%   3.57%,  0.48%   0.91%
3  3.48%   7.05%,  1.16%   2.07%
4  5.63%  12.68%,  1.53%   3.60%
5  7.98%  20.66%,  3.05%   6.64%
6  9.93%  30.59%,  4.62%  11.26%
7 11.44%  42.03%,  7.17%  18.43%
8 12.35%  54.38%,  9.09%  27.53%
9 11.70%  66.09%, 11.08%  38.60%
A 10.48%  76.57%, 11.90%  50.50%
B  8.44%  85.01%, 12.18%  62.68%
C  6.27%  91.27%, 10.36%  73.04%
D  4.30%  95.57%,  8.77%  81.82%
E  2.61%  98.18%,  7.13%  88.95%
F  1.23%  99.41%,  4.89%  93.84%
G  0.44%  99.85%,  3.44%  97.28%
H  0.11%  99.96%,  1.60%  98.88%
J  0.03%  99.99%,  0.86%  99.74%
K  0.01% 100.00%,  0.23%  99.97%
L  0.00% 100.00%,  0.03% 100.00%

agricultural
0 86.13%  86.13%, 99.88%  99.88%
1 13.87% 100.00%,  0.12% 100.00%

non_agricultural
0 88.39%  88.39%, 72.86%  72.86%
1 11.61% 100.00%, 27.14% 100.00%

industrial
0 95.76%  95.76%, 50.44%  50.44%
1  4.24% 100.00%, 49.56% 100.00%
non_industrial 0 27.88%  27.88%, 99.96%  99.96% 1 72.12% 100.00%,  0.04% 100.00% rich 0 95.39%  95.39%, 99.62%  99.62% 1  4.61% 100.00%,  0.38% 100.00% poor 0 81.53%  81.53%, 81.25%  81.25% 1 18.47% 100.00%, 18.75% 100.00% water 0 90.83%  90.83%, 91.06%  91.06% 1  9.17% 100.00%,  8.94% 100.00% desert 0 79.28%  79.28%, 79.59%  79.59% 1 20.72% 100.00%, 20.41% 100.00% vacuum 0 89.27%  89.27%, 89.00%  89.00% 1 10.73% 100.00%, 11.00% 100.00% asteroid 0 97.21%  97.21%, 97.15%  97.15% 1  2.79% 100.00%,  2.85% 100.00% ice_capped 0 99.29%  99.29%, 99.26%  99.26% 1  0.71% 100.00%,  0.74% 100.00%

追記

2007-05-13 world.py を ver.1.0.1 に差し替え
法律レベル(low_level)に最大10の制限を付けていたのを解除。 example もその結果に書き換え。

| | トラックバック (0)