2007年09月30日

「Another Century's Episode 3」を購入しました

Another Century's Episode 3 THE FINAL(以降ACE3)を購入しました。色々なアニメのロボットを操縦できるロボットアクションゲームです。1も2もやったことがないうえに、ACEオリジナルを抜くと17ある参加作品の中で全話観たのはガンダムW、機動戦艦ナデシコとその劇場版、キングゲイナーだけなのですが、面白そうなので購入してしまいました。

現在ミッション5まで終えました。使用している機体はACEオリジナルのイクスブラウです。ミッション2が終わったところで三段階変形が格好良いYF-19という機体が編入したのですが、操作が難しくて全然使いこなせず、仕方がないので操作が簡単なイクスブラウを使っています。

難易度ノーマルでストーリーを進めているのですが、まだ序盤と思われるのにミッション開始時には9999あるAP(アーマーポイント。耐久値的なもの)が終了時には3000ぐらいになっています。こんなことでちゃんとクリアできるのか不安です。

アナザーセンチュリーズエピソード 3 ザ ファイナル 特典 A.C.E.3 THE FINAL 特製ビジュアルブックレット「A.C.E. ULTIMATE LIBRARY」付きアナザーセンチュリーズエピソード 3 ザ ファイナル 特典 A.C.E.3 THE FINAL 特製ビジュアルブックレット「A.C.E. ULTIMATE LIBRARY」付き
販売元 : Amazon.co.jp ゲーム
価格 :
ラベル:ACE3 ゲーム
posted by bakemoji at 01:26| Comment(0) | TrackBack(0) | ACE3 | このブログの読者になる | 更新情報をチェックする

2007年09月28日

四角い頭を丸くするかもしれない作図問題を考えてみた

帰宅中に算数の作図問題をふと思いつきました。正四角錐と展開図について習った子(小学校高学年くらい?)が対象です。以下がその問題です。

問.5cm刻みの目盛りがついた長さ20cmの定規とコンパスを使って、底面積25平方cm、高さ5cmの正四角錐の展開図を描きなさい。

解けるかどうか実際に確認はしていませんが、多分解けるはずです。

問題を考えていて思いましたが、「実力を測る問題」や「ひらめきを見る問題」を作成するのは大変ですね。その上過去にあった問題は使えないのですから、入試問題作成が教師の負担になるのもわかります。

ラベル:算数 数学
posted by bakemoji at 21:06| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年09月27日

鮫の切り身

近所の魚屋で鮫の切り身を売っていました。青森県産のアブラツノザメと、名前を忘れましたがもう一種類。大きめの切り身3切れで298円だったので他の魚に比べるとけっこう安いです。見た目も赤みが強く筋の多いメカジキといった感じで美味しそうでした。

ネットでレシピを調べると、淡白で骨もないのでから揚げや下味をつけた焼物が美味しいらしいです。また、赤っぽく見えますが白身魚で、低カロリー高タンパク、コラーゲン豊富と体にも良いようです。

ただし、鮮度が良くないものはアンモニア臭い、鮫は食物連鎖の頂点で他の魚を食べるため水銀含有量が比較的多いなど、マイナス面もあるようです。売っていたものとは別の種類ですが、厚生労働省から妊婦の摂取に関して注意が呼びかけられています(妊婦でなければ問題ないようです)。

調べれば調べるほど食べたくなってきました。家族に内緒でこっそり買ってこようかな……。

posted by bakemoji at 17:57| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年09月21日

PowerShellにおけるメタプログラミングについて

PowerShellでメタプログラミング++C++; // 未確認飛行 C++ 管理人の日記)でメタプログラミングについて触れられています。なるほどなぁと読んでいたのですが、

メソッド呼び出しだけは $x.abs() みたいな書き方できないんですよね。誰か、何かいいアイディア持ってる人いないですかね。

とのこと。僕はPowerShell イン アクションを持っているのでそれを見れば答えは載っているのですが、腕試しにあえて見ないで書いてみました。

#classutil.ps1

$global:__class__ = @{}

function global:class([string] $name, [ScriptBlock] $definition) {
    $global:__class__[$name] = $definition
}

function global:new([string] $typeName) {
    function var([string] $name, $value = $null) {
        $this | Add-Member NoteProperty $name $value
    }

    function def([string] $name, [ScriptBlock] $method) {
        $this | Add-Member ScriptMethod $name $method
    }

    $definition = $global:__class__[$typeName]
    if (! $definition) {
        throw "$typeName is undefined."
    }

    $obj = New-Object PSObject

    $obj | Add-Member ScriptMethod "__def__" $definition
    $obj.__def__()
    $obj.psobject.members.remove("__def__")

    $obj
}

以下のように使います。

PS > .\classutil.ps1
PS > class rectangle {
>>     var width
>>     var height
>> 
>>     def area {
>>         $this.width * $this.height
>>     }
>> }
>> 
PS > $x = new rectangle
PS > $x.width = 30
PS > $x.height = 20
PS > $x.area()
600

以前触れたPSObjectの拡張を利用してメンバを追加しています。__def__のあたりが多少強引ですが、それなりに簡潔にはなったと思います。コンストラクタについては、スマートな書き方が思い浮かばなかったので華麗にスルーしました。

posted by bakemoji at 19:55| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

PowerShellにおけるスクリプトのドット化について

スクリプトは独自のスコープを持っており、スクリプト内部で定義した関数や変数はスクリプトの実行が終了したあとは破棄されます。ですが、例えばスクリプトに関数の定義を集めてライブラリを作成するなど、スクリプト終了後もスクリプト内の関数や変数を有効にしたい場合があります。そのようなときに利用できるのがスクリプトのドット化です。

スクリプトのドット化は、スクリプトのスコープをスクリプトが実行されたスコープに合わせます。確認のためにスクリプトdottest.ps1を作成し、通常の実行とドット化を比較します。

PS > @'
>> $x = 10
>> function hello($name) {
>>     "Hello, " + $name
>> }
>> 
>> hello Tom
>> '@ > dottest.ps1
>> 
PS > .\dottest.ps1
hello Tom
PS > $x
PS > hello John
用語 'hello' は、コマンドレット、関数、操作可能なプログラム、
またはスクリプト ファイルとして認識されません。
用語を確認し、再試行してください。
PS > . .\dottest.ps1
Hello, Tom
PS > $x
10
PS > hello John
Hello, John

このように、通常のスクリプトの実行ではスクリプト内で定義されている変数$xと関数helloはスクリプト外からは使用できませんが、ドット化ではスクリプト内で定義した変数や関数をスクリプト終了後も使用できています。

スクリプトのドット化はグローバルで実行するのではなくあくまでスコープを広げるだけです。

PS > @'
>> . .\dottest.ps1
>> 
>> $x
>> hello John
>> '@ > dottest2.ps1
>>
PS > .\dottest2.ps1
Hello, Tom
10
Hello, John
PS > hello Anne
用語 'hello' は、コマンドレット、関数、操作可能なプログラム、
またはスクリプト ファイルとして認識されません。
用語を確認し、再試行してください。

dottest.ps1をdottest2.ps1内でドット化していますが、dottest2.ps1をドット化していないためグローバルではdottest.ps1内の定義は利用できません。

posted by bakemoji at 09:24| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年09月19日

Final Fantasy XII IZJS プレイ記その11

破魔石の母、天陽の繭があると思われる大灯台に突入。仕掛けを解きつつ登りきると、天陽の繭がありました。アーシェが破壊を躊躇っているところにジャッジ・ガブラスが登場。復讐を煽るガブラスに対し、バッシュと、元ジャッジマスターで、破魔石を暴走させてナブディスを滅ぼしたという苦い過去を持つレダスが反論。戦闘に。ガブラスを倒すと今度はシドが登場。破魔石のために国を滅ぼしたと怒るアーシェに対し、シドは飄々とした様子でかわします。自分とヴェインの目的である「歴史を人間の手に取り戻す」という大儀のもと、人造破魔石によって繭を破壊、繭の蓄えたミストをバハムートの動力源にしようとします。これを止めるためにシドとも戦闘に。シドとシドの呼び出した召喚獣ファムフリートを打ち破ります。

ミストを吐き出し続ける繭を破壊するために、レダスが特攻。暴走は抑えられましたが、レダスは帰らぬ人となってしまいました。

繭から漏れでたミストを吸収し動き出したバハムートを擁するアルケイディア帝国軍と、それに対抗するビュエルバ侯爵率いる解放軍がラバナスタ上空で睨み合いになりました。バハムートに陣取るヴェインを倒すため、一行はバハムートに向かいます。

いよいよ最終決戦です。プレイ記も切れよく12話で終わりそうですね。

ラベル:ゲーム FF12
posted by bakemoji at 23:23| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月17日

PowerShellの出力系コマンドレットのエンコーディングについて

この前出力系コマンドレットのエンコーディングで若干戸惑ったのでメモを記しておきます。

PowerShellのOut-Fileコマンドレット、Export-ClIXMLコマンドレットはデフォルトでUTF-16で出力するようで、Out-Fileコマンドレットを使用する出力リダイレクトもまたUTF-16で出力することになります。別にUTF-16で構わないといえば構わないのですが、ASCIIやShift-JISを前提としたコマンドプロンプト時代のツールの出力をいったんファイルに保存し、それを別のツールで利用する場合などに困ります。

そのようなときは出力リダイレクトではなくOut-Fileコマンドレットを直接利用することで、エンコード方式を指定してファイルに出力できます。

PS > "こんにちは世界" | Out-File -filePath hello.txt -encoding Default

-encodingパラメータに指定できる文字列はUnicode、UTF7、UTF8、ASCII、UTF32、BigEndianUnicode、Default、OEMで、PowerShell日本語版ではDefaultはShift-JISのようです。

Export-CsvコマンドレットだけはデフォルトではASCIIで出力するようで、日本語が文字化けします。これも-encodingパラメータを指定することで回避できます。

PS > $x = $x | Add-Member -passThru noteProperty Description "こんにちは世界"
PS > $x | Export-Csv -path test.csv
PS > type test.csv
#TYPE System.Int32
Description
???????
PS > $x | Export-Csv -path test.csv -encoding UTF8
PS > type test.csv
#TYPE System.Int32
Description
こんにちは世界

上手くいきました。それにしてもなぜExport-CsvコマンドレットだけASCIIで出力することにしたのでしょうか。謎です。

posted by bakemoji at 03:06| Comment(2) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年09月15日

Final Fantasy XII IZJS プレイ記その10

ゴルモア大森林の南、幻妖の森を抜けて、古代都市ギルヴェガンに到着。門番を倒し、中へ進みます。仕掛けを解きながら進んでいくと、竜に襲われたので撃破。クリスタル・グランデへ。

道なりに進んでいくと行く手を阻む召喚獣シュミハザに襲われたのでこれも撃破。

転送機で転送された先ではオキューリアなる方々が待っていました。イヴァリースの歴史を操る不滅なるものたちだそうです。その、不滅の方々はアーシェに新たな契約の剣を与え、破魔石を使って帝国を滅ぼせとけしかけます。

バッシュその他旅の仲間たちは帝国を滅ぼすことに否定的。アーシェの一存で、とりあえず破魔石の母、天陽の繭を探すことになります。

だんだんとアーシェの力への渇望が薄れてきました。天陽の繭の前に立ったとき、アーシェが選ぶのは破魔石の破壊か、誕生か、どちらになるのでしょうか。

ラベル:FF12 ゲーム
posted by bakemoji at 16:31| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月12日

Final Fantasy XII IZJS プレイ記その9

帝都アルケイディスを目指し、モスフォーラ山地、サリカ樹林、フォーン海岸、ツィッタ大草原を徒歩で移動することになりました。サリカ樹林まではすでに行ったことがあるのでテレポで移動、樹林からフォーン海岸への門を大工モーグリたちに開けてもらってフォーン海岸に到着。

ここでまた武器防具集めに行きます。ルース魔石鉱のモブ、アントリオンを倒すとフォーン海岸のハンターズキャンプでルース魔石鉱の鍵が手に入ります。ルース魔石鉱奥の敵は非常に強く、逃げ回りながら探索。マサムネ、竜の髭、ゾーリンシェイプ、おろち、また重軽魔それぞれの2番目に強い防具を手に入れました。ついでに、アビスからデモンズシールドを手に入れました。これでしばらくは武器防具に困りません。

ツィッタ大草原、ソーヘン地下宮殿を抜けて、アルケイディスに到着。旧市街と市街の落差がすごいです。ドラクロア研究所に行くためにはタクシーに乗らなければならず、タクシーに乗るにはリーフが必要ということでリーフ集めが始まります。アルケイディスでは情報が命ということで、町の人との会話からその人が必要としている人を紹介することでお礼にリーフを手に入れることができます。FF12のときは面倒だったのですが、4倍速になってさくさく進むのでなかなか楽しく感じました。

タクシーに乗ってドラクロア研究所に乗り込むとすでに侵入者がいる模様。かまわずシドの部屋に行くももぬけの殻。そのままシドをさがしていると、突然件の侵入者に襲いかかられます。どうもこの侵入者もシドを狙っている様子。侵入者のあとを追うとそこにはシドの姿が。シドがアーシェの力を試そうと襲い掛かってきたので撃退。シドは力を求めるアーシェにギルヴェガンまで来いと言って逃げていきます。

侵入者は港町バーフォンハイムを取り仕切る空賊、レダスでした。レダスについてバーフォンハイムへ移動。そこで現在の各勢力の情勢を聞きます。どうやらヴェインは解放軍とロザリア軍を破魔石で一網打尽にする気のようです。石はシドが持っているので、シドが向かうというギルヴェガンに一行も向かうことになります。

ヴァンは空賊として成長していっているようです。レダスにも気に入られてたようです。まだこどもっぽいところも多いですが、将来が楽しみですね。

ラベル:FF12 ゲーム
posted by bakemoji at 01:10| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月10日

PowerShellによるFizzBuzz問題の解法

そろそろブームも終わりそうなFizzBuzz問題をPowerShellで解いてみました。

switch (1..100) {
    { $_ % 15 -eq 0 } { "FizzBuzz"; continue }
    { $_ % 3 -eq 0 } { "Fizz" }
    { $_ % 5 -eq 0 } { "Buzz" }
    default { $_ }
}

何の面白みもないです。foreachとifではなくswitchを使っているのが特徴といえば特徴です。PowerShellでは配列もswich文に渡せますので、それを利用しています。

posted by bakemoji at 16:34| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年09月09日

Final Fantasy XII IZJS プレイ記その8

アーシェの即位を認めてもらうために、アナスタシス大僧正に謁見します。大僧正は破魔石を持つアーシェを正統な王位継承者であると認めてくれますが、ダルマスカの復興は認めてくれません。そこにロザリア帝国の王族、アルシドが現れ、情勢が変わり、アーシェの即位はかえって戦争を招くことになると教えてくれます。アルケイディア穏健派のアルケイディア皇帝が倒れ、天才的軍略家であるヴェインが実権を握ったため、死んだはずのアーシェが出てくると平和を乱す偽者とされ潰されるだけだということだそうです。これに対してアーシェは、自分に力がないからダルマスカを再興できないという考えをより深め、破魔石を越える力を手に入れようとします。大僧正は力にさらなる力で挑もうとするアーシェに対し覇王の遺産、破魔石を砕く覇王の剣を手に入れるよう助言します。そして、覇王の剣が子孫ではなく他者に伝えられている意味を考えろとのことです。

覇王の剣を求めてミリアム遺跡に行きます。遺跡の謎を解き、さらに剣を守る召喚獣マティウスを倒し、アーシェは剣を手に入れます。アーシェに対し、本当に破魔石を破壊できるかどうか、自分の持つ暁の断片で試してみろとヴァン。迷いつつも剣を暁の断片に向けるアーシェですが、そこにラスラ王子の幻影が現れ、アーシェを止めます。アーシェはヴァンに幻影が見えたか尋ねますが、もうヴァンには幻影は見えなくなっていました。

遺跡を出ると神都に向かう帝国の艦隊が空を覆っています。急いで神都に戻ると、そこには無残に荒らされた町の姿がありました。大僧正の元へ急ぐと、大僧正はすでに倒れ、その傍らにジャッジマスターが佇んでいます。

アルシドがまた登場しアーシェに亡命を進めますが、アーシェはやることがあると断ります。アーシェは帝国の破魔石を砕くことを宣言し、一行はバルフレアの助言により破魔石を研究しているドラクロア研究所のある帝都アルケイディスを目指すことになります。

逃げるのをやめ、まだやりたいことはわからないけど、それを探していくことを決意したヴァンには破魔石の幻影が見えなくなりました。さて、いまだ過去と力に囚われているアーシェ、その心が解き放たれるのはいつでしょうか。

ラベル:FF12 ゲーム
posted by bakemoji at 01:50| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月07日

Final Fantasy XII IZJS プレイ記その7

神都ブルオミシェイス目指してゴルモア大森林を進むも、なにやら結界が張られていて先へ進むことが出来ません。フランによると、森に住むヴィエラが結界を張ったとのこと。結界を通してもらうために、ヴィエラ族の隠れ里、エリトの里に行きます。

エリトの里はフランの故郷ですが、里を捨てて外の世界にでたフランは中に入ろうとせず、ミュリンというヴィエラ族を呼んで来るように言います。ですが里を探してもミュリンはおらず、里長に尋ねると外の世界に行ってしまったとのこと。ミュリンを放っておくという里長をはじめとする里の者たちに対して、ヴァンが啖呵を切り、ミュリンを助けに行くことに。里長の助言によりヘネ魔石鉱にいそうだとわかったので一行はヘネ魔石鉱に向かいます。

ヘネ魔石鉱へと続く道には帝国兵がぽつぽつ倒れています。中で何かおきているようです。奥に進むと魔石に中てられたミュリンがふらふら歩いています。追いかけると、突然ドラゴンに襲われました。状態異常攻撃に苦しみながらも撃退し、ミュリンを無事救出できました。里に戻って里長、フラン、ミュリンの間ですったもんだありましたが、それはそれとして結界を通してもらえることになりました。

長い森を抜けると雪国だった。ということで、ゴルモア大森林を抜けると雪に覆われたパラミナ大峡谷に出ました。そのまま道なりに進むと目的地、神都ブルオミシェイスに到着しました。平原や森を行ったり来たりで大変でしたが、4倍速モードだと移動も戦闘も高速で進むのでFF12に比べて圧倒的に時間が短縮されますね。

ラーサーからの提案を正しいが屈辱と捉えるアーシェ。それに対し、民を救うためなら自らの名誉などどうでも良いと語るバッシュ。少しずつ、復讐に凝り固まったアーシェの考えが変わっていきそうですね。それにしても、アーシェはダルマスカの民は皆帝国を憎んでいると言っていますが、帝国の執政官、ヴェインの支持率は高そうです。これも含めて、アーシェには民が見えていない気がします。いつも、「ダルマスカは」と言いますよね。ぼくがアーシェの復讐志向が気に入らないのは、こういった言動からどうも個人の復讐心を王族という立場から全体の復讐にすりかえている気がするからなんです。

ラベル:FF12 ゲーム
posted by bakemoji at 22:19| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月05日

Silverlight 1.0 正式リリース

IT Mediaより。ついにリリースされましたね。Mono版SilverlightのMoonlightとも正式に提携するようです。ちょっと古い記事ですが、Operaの中の人のブログによればOperaでも動作するように技術協力しているようですし、うまく進めばかなり本格的なクロスプラットフォームを達成できそうです。話はかわりますが、Moonlightは以前は"temporary name"とプロジェクトページに書いてあった気がするのですが、いつの間にかなくなっていますね(それとも僕が勘違いしているだけでしょうか)。正式にMoonlightになったようです。

posted by bakemoji at 22:07| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

PowerShellにおける列挙と列挙子について

C#ではIEnumerableインターフェースまたはIEnumerable<T>ジェネリックインターフェースを実装した型はforeach構文によって列挙可能です。PowerShellでは、以前説明したようにIEnumerableを実装した型がforeach構文、Foreach-Objectコマンドレットで列挙可能ですが、それに加えて列挙子、つまりIEnumeratorも列挙可能です。例を挙げましょう。

PS > foreach ($i in 1,2,3).GetEnumerator()) { $i }
1
2
3
PS > (1,2,3).GetEnumerator() | foreach { $_ }
1
2
3

文字列やハッシュテーブルはforeach構文やForeach-Objectコマンドレットでは列挙することは出来ませんが、列挙子を明示的に取得することで、列挙可能です。

PS > "Tom".GetEnumerator() | foreach { $_ }
T
o
m
PS > @{ "one" = 1; "two" = 2; "three" = 3 }.GetEnumerator() | foreach { $_ }

Name                           Value
----                           -----
two                            2
three                          3
one                            1
posted by bakemoji at 00:13| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年09月04日

Final Fantasy XII IZJS プレイ記その6

目的地であるガリフの地ジャハラに行くついでに、ケロゲロスを退治しました。これでクランランクがゲイルレンジャーになったのでいったんダルマスカに戻って掲示板を確認。新たなモブがでたのでその中から西ダルマスカ砂漠のリングドラゴン、ギーザ草原のギルガメを討伐し、クランランクをバウンティハンターに上げました。いよいよジャハラに向かうので、ついでにオズモーネ平原のエンケドラス討伐を受けておきます。

ジャハラに着いて最長老に破魔石の使い方を聞きますが知らないとのこと。そこにラーサーが登場。アルケイディアと戦争を起こそうとしているダルマスカ解放軍への支援と称してロザリア帝国がアルケイディア帝国に侵攻しようとしているそうです。戦争を食い止めるためにアーシェが助力を求められ、一緒にキルティア教の総本山、神都ブルオミシェイスに向かうことになります。ブルオミシェイスにいる大僧正アナスタシスにアーシェの即位を認めてもらいダルマスカを再興、その後アルケイディア帝国と友好関係となることで解放軍の蜂起を止めるという算段です。戦場となるだろうダルマスカと解放軍、アルケイディア帝国、ロザリア帝国、それぞれの民が犠牲になることを防ごうと奔走する帝国のラーサー王子を見て、力を手に入れて戦争を起こそうとしているアーシェ王女は何を思ったのでしょうか。

夜、アーシェとヴァンの会話。ヴァンは兄の死から逃げるのではなく乗り越えることを決意し、帝国と戦おうというアーシェについて行く事で自分を見極めようとしているようです。さて、アーシェ王女の復讐は逃げているだけなのか、向き合っているのか、今後の王女の行動に注目です。

ラベル:FF12 ゲーム
posted by bakemoji at 00:17| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月03日

Final Fantasy XII IZJS プレイ記その5

ガリフの地ジャハラに向かう前に、武具集めにモスフォーラ山地へ行きます。まずは東ダルマスカ砂漠の川を挟んでのイベントをクリアし、川の北岸に渡ります。ついでにバルハイム地下道の鍵を取ります。モスフォーラ山地は敵が強いので大変ですが、もののふバッシュの無差別魔とシカリヴァン、ウーランバルフレアの攻撃力で乗り切りました。モスフォーラ山地の先にあるサリカ樹林はそれほど敵が強くないので楽に回れました。

モスフォーラ山地、サリカ樹林で鍛え、次に向かうのはバルハイム地下道です。非常に敵が強いので基本的に逃げ回りながら奥へと進みます。ダガーの影縫いを取ったところで死ぬのが怖くなって帰還しました。

今回の寄り道(東ダルマスカ砂漠ネブラ川北岸、モスフォーラ山地、サリカ樹林、バルハイム地下道)で、武器はダガーのアベンジャー、忍刀の影縫い、弓の石の弓、杖のゴールデンスタッフ、メイスの棘のメイスを拾いました。防具は軽装備の柔術道着とねじりはちまき、メタルジャーキン、重装備のボーンメイル、ボーンヘルム、ダイヤアーマー、クロスヘルム、魔装備の妖術師の服、黒装束、盾のドラゴンシールドを拾いました。武器はあまり拾えませんでしたが、防具はかなり良いものを揃えることが出来ました。装備を揃えたので、次はモブ狩りをしたいと思います。

ラベル:FF12 ゲーム
posted by bakemoji at 00:49| Comment(0) | TrackBack(0) | FF12 | このブログの読者になる | 更新情報をチェックする

2007年09月02日

PowerShellのGet-Memberコマンドレットについて

PowerShellでは、Get-Memberコマンドレットでオブジェクトのメンバを取得できます。

PS > $x = "Mojibake"
PS >$x | Get-Member


   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
CompareTo        Method                System.Int32 CompareTo(Object value),...
Contains         Method                System.Boolean Contains(String value)
CopyTo           Method                System.Void CopyTo(Int32 sourceIndex,...
...以下略

続いて、配列のメンバを調べてみましょう。

PS > $x = 1,2,3
PS > $x -is [Object[]]
True
PS > $x | Get-Member


   TypeName: System.Int32

Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     System.Int32 CompareTo(Int32 value), System.Int32 Com...
Equals      Method     System.Boolean Equals(Object obj), System.Boolean Equ...
GetHashCode Method     System.Int32 GetHashCode()
GetType     Method     System.Type GetType()
GetTypeCode Method     System.TypeCode GetTypeCode()
ToString    Method     System.String ToString(), System.String ToString(IFor...

$xはObject[]なのに、Get-Memberコマンドレットは要素であるInt32のメンバを表示しています。どういうことでしょうか。確認のために、いろいろな型のオブジェクトを混在させた配列に対してメンバを取得してみましょう。

PS > $x = "Hello", 3.14, 256
PS > $x | Get-Member


   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
CompareTo        Method                System.Int32 CompareTo(Object value),...
...中略
   TypeName: System.Double

Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     System.Int32 CompareTo(Object value), System.Int32 Co...
Equals      Method     System.Boolean Equals(Object obj), System.Boolean Equ...
...中略
   TypeName: System.Int32

Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     System.Int32 CompareTo(Int32 value), System.Int32 Com...
Equals      Method     System.Boolean Equals(Object obj), System.Boolean Equ...
...以下略

どうやら、Get-Memberコマンドレットはパイプラインから配列を渡されると配列の各要素に対してユニークな型ごとにメンバを取得するようです。では、どうすれば配列のメンバを取得できるのでしょうか。

方法は2つあります。1つはGet-Memberコマンドレットの-inputObjectパラメータに明示的にオブジェクトを渡すという方法、もう1つはコンマ演算子を使う方法です。

PS > Get-Member -inputObject $x


   TypeName: System.Object[]

Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...以下略

PS > ,$x | Get-Member
...出力は省略

コンマ演算子は以前触れたように、被演算子を要素としてもつ配列を生成します。Get-Memberはパイプラインからの入力を要素ごとに処理するので、配列の配列をパイプラインに流せば配列のメンバを取得できるというわけです。

posted by bakemoji at 00:21| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。