魔界の村人の日記

主にゲームの感想やプログラミングのコードを書きなぐるだけ。

機械化された記憶への個人的見解

Mechanized Memories の訳をJと財団の視点から適当に考えてみた 結構両者が混じってる

Scary!
all is fantasy.
all is fantasy.

;恐怖しろ!
;すべては幻想であったと
;すべては無駄であったと

Scary!
Scary!
Scary!

;恐怖しろ!
;戦慄しろ!
;絶望しろ!

oh, I'm scary.
Scary!
Scary!

;私に恐怖しろ!
;戦慄しろ!
;絶望しろ!

so I'm scary.
Scary!
Scary!

;かつて私が恐怖したように
;戦慄したように!
;絶望したように!

Scary!

;恐怖しろ!

oh, I'm scary.
so I'm scary.
all that I see now, I'm scary.
all is fantasy.oh, I'm scary.
all is fantasy.so I'm scary.

;私に恐怖しろ
;私が恐怖したように
;私はすべてを知った今恐怖した
;全ては幻想であったと恐怖した
;全ては無駄であったと恐怖した


Minute of the end,and dose it still hurt
in a rainy day, let's fight for counter

;全ては滅びる、終わりが来るその時まで
;そんな世界で抗のか?

On the silent way, when do you get a calling?
look into the void. It's scary.

;何もない世界でお前を呼ぶものがあるとすればなんだ?
;それが虚無ださあ覗き込め そして恐怖しろ

Minute of the end,and dose it still hurt
in a rainy day, let's fight for counter

;これが貴様らの終わりだ止まることはない
;それでも貴様らは抗うのか?

On the silent way, when do you get a calling?
look into the void. It's scary.

;貴様も気づいたか?
;この虚無に この恐怖に!

all is fantasy.
fantasy.

;全ては幻想でしかなかった
;無駄だったのだ

all is fantasy.
all is fantasy.

;すべては幻想だった
;すべては無駄だった

Scary!

;恐怖しろ!

Minute of the end,and dose it still hurt
in a rainy day, let's fight for counter

;終わりを止めることなど不可能だ
;こんな世界で抗ってなんになる

On the silent way, when do you get a calling?
look into the void. It's scary.

;私は静寂の中で理解した
;私自身も虚無であったと それが恐ろしいのだ

Minute of the end,and dose it still hurt
in a rainy day, let's fight for counter

;終わりはもうすぐそこだ 最期の時まで見せてみろ
;こんな世界で抗ってみせろ

On the silent way, when do you get a calling?
look into the void. It's scary.

;私は貴様を呼んでいるんだ
;虚無たる私を覗き込め その恐怖を超えてみせろ

oh, I'm scary.
so I'm scary.
all that I see now, I'm scary.
all is fantasy.oh, I'm scary.
all is fantasy.so I'm scary.

;(空虚な)私に恐怖しろ
;(虚無を)私が恐怖したように
;私はすべてを知った今恐怖した
;全ては幻想であったと恐怖した
;全ては無駄であったと恐怖した

Scary!
Scary!
Scary!

;(人類がもたらす結末に)恐怖しろ!
;(答えを求めた結果がこれだと)戦慄しろ!
;(救いなど何処にもないと)絶望しろ!

Scary…
;(こんな人類に可能性があるなど)恐ろしい・・・

メモ書き GUIオブジェクトの配列化

オブジェクトの名前を配列に保存できるのを知った時目から鱗だったわ。

型[] 配列名 = new 型[]{オブジェクト};

書き方は配列のそれと同じですぐに使い方がわかる。

GUIで複数のテキストボックスに文字を代入したいとき、

TextBox tests = new TextBox { test1, test2, test3 };

と配列宣言しておき

for(int i=0; i<3 ;i++){

    tests[ i ].Text = "test" + Convert.ToString( i+1 );

}

と書けば、test1のテキストがtest1に、test2がtest2にといった風に記述できる。

GUIはオブジェクトのクラス(TextBoxとかCheckBoxtoとか)を「 Control 」で大体用意できる。

他にも自分で用意したクラス、たとえばcharacterとかでも配列化できる。

        public static character PC1 = new character();
        public static character PC2 = new character();
        public static character PC3 = new character();
        public static character PC4 = new character();
        public static character PC5 = new character();
        public static character PC6 = new character();

こんな風にメインクラスでPC1~6をクラス変数で用意しておき、

character PCs = new character { main.PC1, main.PC2, main.PC3, main.PC4, main.PC5, main.PC6 };

というのをGUIのクラスに記述すればGUIの処理の中でPC1~6をPCs[int index]で表現できる。

characterクラスにpublic void test()メソッドが定義されていたとき、GUIからは

PCs[0].test();

と書くだけで実行できる。そのまま書こうとすると

main.PC1.test();

になってしまう。この状態だとPC1~6を一斉に処理するときforなどが使えない。

配列化しておけば上の例のように

for(int i=0; i<6 ;i++){

    PCs[ i ].test();

}

とPC1~6のtestメソッドを3行(実質1行)で記述できる。

これは便利。

 

気になること1

開発環境 

OS:windows7 Professional

統合開発環境:Microsoft Visual Stadio 2013

.Net Framework 4.5

 

ちょいと並列処理で気になることがあったので忘れる前にメモっとく

        [STAThread]

        public static void Main()
        {
            Parallel.Invoke(mainRun,diceroll.main);
        }

        [STAThread]
        public static void mainRun()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new mainGUI());
        }

pulic static diceroll class{

        public static void main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new dicerollGUI());
        }

}

こんな感じで動かしたいのを Parallel で書いてみたものの、前者のmainのフォームと後者のdiceroll.mainのフォームで文字入力の振る舞いが違うという現象に出くわした。

無駄に[STAThread]を強調して書いても前者のフォームは日本語入力を受け付けず、後者のフォームは特に何も記述しなくても日本語入力を受け付ける。

やけくそで

        public static void Main()
        {
            Parallel.Invoke(diceroll.main,mainRun);
        }

という感じで先にdiceroll.mainを持ってくるとなぜか両方日本語入力を受け付けた。

ちなみに2つある[STAThread]を片方でも消すとまたmainのフォームが日本語入力を受け付けなくなった。不思議なことにdiceroll.mainは普通に受け付ける。

 

追記

単純にフォームを並列起動したら片方しか日本語入力受付ないっぽい?

なんかランダムでどっちかが入力拒否ってるな。

 

追記2

世の中には便利な機能があるそうで。diceroll.mainのフォームをモードレスで呼び出せば簡単に複数のフォームを出せるんですね。

メインのフォームにボタンを追加してそいつのハンドラーを

        private void Coll_dice_Click(object sender, EventArgs e)
        {
            dicerollGUI dicerollObj; // 子フォーム
            dicerollObj = new dicerollGUI(); // 子フォーム生成
            dicerollObj.Show(); // 子フォームを表示
        }

てな感じで書いてやれば簡単にフォームを複数出せました。

もちろん両方とも日本語入力できましたとさ。

しまったぜ

管理用アプリなんてルールブックが無ければ作れないじゃないか。

ネットに転がってる情報や実際のリプレイ動画じゃルールをまとめるのは無理だ。

買に行くかー・・・。アナログゲーサークルにルルブおいてないかな。借りられるかわからんけどw

あとはこの手の管理アプリが既にあった場合だけどざっと調べた感じ最低限の機能しかない味気ないのしかなかったな。あれだけの物作るのも手間はかかるんだけど。

PC用になっちまうけどちょっと手の込んだもの作ってみるかな。