2011年7月の日記

<2011年08月 2011年06月>

無題

アンパンマンDBバージョン3開発。
管理画面のDB構成など。
デバッグ周りなども強化しました。

無題

アンパンマンキャラをポケモン風に考えてみたり。
の続きの続きをやっていたり。
とりあえず見せるための画面を作っています。
イラストとかはありませんが。

無題

なんかポケモンだいすきクラブのシーズンパレットがすごく面白いです。
一本のアクションパズルゲームとして完成された内容、さまざまな遊び方を提案してくれるさまざまなトロフィー、そしてBGMもとても良い。
正直、有料でも余裕で売れるレベルだと思います。
1500円までなら迷わず出す!

無題

ポケモンやっていたらイルミーゼLv39でヤナッキーLv66に勝ってしまいました。
相手はライモンシティのアレックス。
ヤナッキーは特別ぶっ飛んだ強さを持つポケモンではないのですが、不遇と言われるイルミーゼがタイプ相性の影響もあったとはいえ圧倒的レベル差をひっくり返して勝ってくれたのには驚きました。
こちらのイルミーゼの構成は、

NN:Illumise
特性:いろめがね
HP:111
攻撃:44
防御:54
特攻:63
特防:68
素早さ:74
道具:しあわせタマゴ
技:あまえる、むしのさざめき、でんこうせっか、つきのひかり

通信対戦やバトルサブウェイではないので追加でディフェンダーとモーモーミルクも1個ずつ使いました。
相性が良いとはいえ無謀なレベル差なので、まずはあまえるで被ダメージを減らし、相手のにらみつけるで下がった防御をディフェンダーで回復。
これだけで充分耐えてくれるようになってので、回復アイテムも一つ使うだけで済み、あとはつきのひかりだけでそこそこいけるようになりました。
ただ、攻撃値が弱すぎたせいでとどめのでんこうせっかで充分なダメージが与えられず、余分に1ターンかかってしまったのですが。

結果、経験値14878が手に入りました。

無題

レーダーチャートを作るプログラムを作っていました。
とりあえずいろんな都合上PHPで。
いろんなグラフを書けると楽しいな。

無題

クリア後は旧作のポケモンがよく出るようになったのでGTS経由で集めています。
PDW産のポケモンで交換しています。この辺のポケモンはあまりまくっているので。

無題

検索文解析器、構文解析の都合上やたらと深くなりがちなツリー構造を単純化するようにしました。
これをやっておかないと最終的にSQL文を作るときに括弧だらけになってしまって見通しが悪くなるのです。

無題

結局LL法の構文解析をまともに実装するやり方が理解できなかったので、拡張性だとか可読性だとか全く無視で、構文規則を直接関数に書き下して無理やり実装してしまいました。
とりあえずこれで検索ワードの構文ツリーが作れるようになったので、もうちょっと調整すればいろんなところに組み込めそうです。

無題

日本がなんか世界一になったそうですね。
めでたいことです。

LL法なかなかわからんです。
集合論とかももうちょっと勉強せねばならなさそうです。
いつか頓挫したあのスクリプトよりは簡単だとは思うのですが…。

無題

検索条件解析プログラム、字句解析解析中に追加の処理を入れられるようにしました。
これにより特殊な書式で書かれたものも解析できるようになりました。

そういえばライモンシティの連中、レベル20以上差があってもタイプ相性とその他条件次第ではなんとか勝てることもあるようです。
たとえばレベル38ガーメイル(虫・飛行)でレベル65ドレディア(草)を倒せたりとか。
もっとも、攻撃を4分の1に軽減してやっと1~2発耐える程度なので安定はしませんが。

無題

とうとうサブウェイマスターに勝利しました!
テラキオンは適当にいわなだれを打っているだけで結構勝てるとか、ガマゲロゲはサブウェイマスター戦に有利だとか聞いたので、正直にテラキオンとガマゲロゲでバトルサブウェイのマルチトレインに挑戦。
14勝までは比較的楽に進めたのですが、15戦目以降はテラキオンの育成不足や残念な性格やガマゲロゲのだくりゅう以外にまともな技のない構成のために苦戦。
サブウェイマスター戦はもはや8割がた相方のトウヤ君のおかげで勝てたようなものでした。
テラキオンは何もしないうちに相手のアイアントのアイアンヘッドを食らって即死。
ガマゲロゲはだくりゅうのほかにはエコーボイスとじたばたとあまごいしかなくサブウェイマスターのポケモンの弱点を全く突けない構成で、仕方なくだくりゅう連発で地味に削る作業。
トウヤのランクルスが受けると危険だった相手のデンチュラのシザークロスがなぜかガマゲロゲにばかり飛んできて、結果的に決定打を放てるランクルスを守れたのが今回一番の活躍だったような気がします。
そしてマルチトレイン制覇後の他の乗客たちのセリフが…

サブウェイマスターが大して強くなかったとか…
まだまだこれからとか…

無題

ストーリークリア前と同じようにクリア後にもライモンシティに行っているのですが、相手トレーナーの出してくるポケモンのレベルが軽く25ほど上がっていてくらくらしてきます。
クリア前ライモンシティの連中をなんとか倒せるようになって来た子は、よほど条件がよくない限りなすすべなくばたばた倒れていきます。
ストーリー中のエースの連中は普通に戦えるのですが、相性次第ではやっぱりあっという間に倒されてしまいますし、タイプ相性上有利であっても状況次第で簡単に逆転されてしまいます。
まあおかげで、戦力外だった連中も、傷付き倒れながらメキメキと強くなってきているのですが。

無題

PHPには、余計なコメントや空白を除去したソースを出力するオプションがあります。
それを使えばコードが短くなってコンパイル時間も含めたPHP実行時間の削減に役立つかなーと思ったのですが、あまり効果はないようです。
コメントや空白の除去は元々短時間で終わる字句解析にしか影響が無いためでしょうね。
実測してみたところ、むしろ空白除去版の方が処理時間が長くなる傾向が見られました。
おそらく改行が無くなったことにより切りのいいところで処理を切れなくなったからだと思います。
実際の字句解析の仕様は知らないのであくまでも根拠のない予想ですが。
数百KB以上のソースファイルのほとんどがコメントと空白なんて状態でもなければ目に見えて速くなるなんてことはありませんでした。

無題

複雑な検索条件を構文解析するPHPプログラムを作成中です。
アンパンマンDBバージョン3用ですが、構文木まで作れればアンパンマンDBに限らずいろいろ応用が利きそうです。
PHPにはyaccとかlexみたいなのが見当たらないけど、少なくとも字句解析は正規表現でなんとかできそうです。
構文解析については、これも正規表現で頑張るか、昔頓挫した言語作成の延長線上でやるか、どちらかで頑張ることになりそうです。

無題

ポケモンホワイト、「とりあえず」クリアしました。
わかる人には「とりあえず」の意味がわかると思いますが、一応詳しいことは伏せておきます。
以下隠し文字で。

昨日の作戦は、あまりうまくは行きませんでした。
とにかく、天候変化後に交代ターンが発生するので、普通に交代したら確実に一発もらってしまうのです。
もともと耐久力がなさ過ぎるトモダチ(オタマロ)とピザーラ(デリバード)では、交代を大前提とした昨日の作戦ではかなり厳しいものがありました。
あと、単にタイプ上有利なポケモンで行こうとすると、簡単にメタ技で返り討ちにあいますね。
さすがは四天王というところです。

で、アデクさんに挑もうとしたら、先客がいて戦えず。
そしてNと決着をつけることに。
Nの城ではNの部屋を観察したりゼクロムを捕まえたり。
メンバーも変更しました。
耐久力がなさ過ぎるトモダチ(オタマロ)は、水タイプによる炎半減でレシラムに有利で、地面タイプによる電気無効でゼクロムにも有利なトモダチ(ガマゲロゲ)に。
活躍させるには準備が大変すぎるピザーラは、電気半減でねむりごなを覚えていてゼクロム捕獲に便利なアンペール(モジャンボ)に。
どちらもレベルが低めですが、最終進化ポケモンなので実用的な耐久を持っています。
で、ゼクロム捕獲用にベホマンのあなをほるをみねうちに変更。

そしてNとの決戦。
相手のレシラムのほうがレベルが高くて先手を取ってくる都合上、後出しすると強いクロスサンダーが活きて、レベル差を覆してレシラム撃破。
半端に相手より強いほうが逆に負けるというのはヤグルマの森のオタマロで経験したことでしたが、伝説のポケモンでもオタマロと同じ現象が起こるのですね。
ゾロアークが最後の一匹でもないのにイリュージョンしていなかったのはなんか腑に落ちない気分でした。
最後のアーケオスは問題なく倒せたのでした。

ゲーチスさんとの最終戦。
とりあえずゼクロムでもっと頑張ってみようと思ったら、デスカーンのどくどく→まもるにやられてペースをつかめないまま退場することに。
ガマゲロゲにはタイプ相性上圧倒的に有利な草タイプのアンペールで。
しかしいきなり草タイプの弱点毒タイプのヘドロウェーブが飛んできたのでした。
ええ、私もガマゲロゲをよく使うからわかります。
大弱点の草タイプに対抗するためガマゲロゲに毒技を持たせておくことぐらい。
しかも、もともとゼクロムを捕まえるためだけに眠り技を持つだけのアンペールを連れてきていたので、そもそもレベル不足だったのでした。
そして、なにやらいろいろととんでもないうわさばかり聞くサザンドラとの戦い。
どんな恐ろしい技が飛んでくるかわからないので、とりあえず悪タイプを弱点とせずレベルと耐久力が高いベホマンで。
しかし、特に効果抜群でもなんでもないりゅうのはどうばかり使ってきて退屈なだけだったので何回かみねうちでつついた後はメガホーンであっさり落としたのでした。
どうでもいいことですが、サザンドラの両腕の竜が口をあぐあぐさせててかわいかったです。
最後に出してきたのは弱点のないシビルドン。
サザンドラ戦で多少傷ついていたのとタイプ相性の関係でベホマンは引っ込めて、電気タイプを無効化するガマゲロゲで勝負。
アクロバットで予想外のダメージを受けはしましたが、お互いに弱点も耐性も関係ない等倍の殴り合いでなんとか勝利。

こうして一応エンディングに。
Nはどっか行っちゃいましたが、きっとどこかで虐待されているかわいそうなポケモンたちを解放していくのでしょう。
一方ゲーチスは、連行される途中で逃げ出したらしく、「本当の」エンディングはまだ先のようです。

あと、ベルとポッドとデントとコーンで、「理想」と「真実」の間にある「現実」というのが見えた気がします。

無題

そろそろポケモンリーグに行ってきます。
メンバーはいつか言っていた通り。
技と道具を変更しました。

ベホマン(ダイケンキ♂)
 技:アクアテール、メガホーン、つるぎのまい、あなをほる
 道具:しんぴのしずく

トモダチ(オタマロ♀)
 技:まもる、あられ、ハイパーボイス、ハイドロポンプ
 道具:こうかくレンズ

マケマケ(ビクティニ)
 技:しねんのずつき、かえんだん、きしかいせい、フラッシュ
 道具:おまもりこばん

ススちゃん(タブンネ♀)
 技:あまごい、シンプルビーム、すてみタックル、いやしのはどう
 道具:しめったいわ

ピザーラ(デリバード♀)
 技:プレゼント、ふぶき、そらをとぶ、あられ
 道具:とけないこおり

デュラン(バタフリー♂)
 技:サイケこうせん、どくどく、ねむりごな、むしのさざめき
 道具:ぎんのこな

基本的には、マケマケで様子見兼お小遣いアップ→ススちゃんで雨→トモダチのハイドロポンプで一匹撃破→あられを降らしつつ敵の攻撃でトモダチ退場→死に出しでピザーラのふぶき→後はデュランが色眼鏡むしのさざめきでゴリ押し、これで突破できない相手が出てきたらベホマン降臨、という方針で行くつもりです。
最終的には相手を見ながら柔軟に対応していきます。

無題

アンパンマンキャラをポケモン風に考えてみたり。
の続きをやっていたり。
SQLiteでデータ管理してみようかとか思ったのですが、相変わらずSQLiteManagerがおかしいです。

無題

ポケモンホワイト、チャンピオンロードでひたすらレベルアップ中。
適当に選んだ編成が意外とチャンピオンロードのどんなポケモンにも対応できていい感じだったのです。
10番道路に行くとバッフロンのアフロブレイクで終わりですが。

無題

散髪に行ってきました。
すっきりさっぱりです。

無題

電車内でちっちゃい子供がマッギョマッギョと言っていたから何事かと思ったら、「ポケモン言えるかな?BW」の最後だけ覚えていたみたいです。
私もあの歌は覚えてないです。
あの歌とは関係ありませんが、ポケモンBW(ゲーム)のサントラ買いました。
まだクリア前なのでディスク1しか聞いていませんが。

無題

アンパンマンDBのカテゴリやシリーズで、そのカテゴリに最もよく合うエピソードやキャラクターを優先表示とか、そういうのやってみようかな、って思っています。
たとえば「バトルもの」シリーズであれば、『アンパンマンとバイキン黒騎士』のように。
ただ、どのように表示するのかまでは特に考えていないのです。

無題

アンパンマンDBバージョン3、DB構成フォーム作成中。
以前のDB設定ファイルは持ち込んでいるのですがそのままでは使い物にならないのです。

無題

やっぱりSmarty使うことにしました。
変数の割り当てやヘルパー関数の用意などを考えると、新規に自分でテンプレートエンジンを作っていると時間がかかってしまいそうなのです。
私が作りたいのは「スマートな設計のプログラム」ではなくて、「しっかり動くプログラム」なのです。
理想を追うあまりいつまでたっても何も動かなくては何の意味もないのです。

無題

FNチェンジャー更新しました。
拡張子を変更できないのが地味に不便だったのでオプションとしてつけてみました。
拡張子だけを変換するような機能は直接的には提供していませんが、置換機能や右側削除・追加機能と組み合わせれば、完璧ではありませんが実現することができます。
あとは変換設定をファイルに保存などできるようになればいいかもしれませんね。

無題

そろそろクリアしてしまいたいので、ポケモンリーグに挑戦するメンバーをとりあえず決めてみました。

ベホマン(ダイケンキ♂)
 性格:きまぐれ
 特性:げきりゅう
 技:アクアテール、メガホーン、つるぎのまい、あなをほる

トモダチ(オタマロ♀)
 性格:まじめ
 特性:すいすい
 技:まもる、じたばた、ハイパーボイス、ハイドロポンプ

マケマケ(ビクティニ)
 性格:ゆうかん
 特性:しょうりのほし
 技:ねんりき、かえんだん、きしかいせい、フラッシュ

ススちゃん(タブンネ♀)
 性格:ひかえめ
 特性:いやしのこころ
 技:ひみつのちから、シンプルビーム、すてみタックル、いやしのはどう

ピザーラ(デリバード♀)
 性格:わんぱく
 特性:ふみん
 技:プレゼント、ふぶき、そらをとぶ、あられ

デュラン(バタフリー♂)
 性格:れいせい
 特性:いろめがね
 技:サイケこうせん、どくどく、ねむりごな、むしのさざめき

技は今覚えているもので、本番ではいくつか変更すると思います。
いろいろと噛み合っていない構成ですが、足りない部分は愛と勇気と有り余る回復アイテムでどうにかします。

無題

今年もアンパンマンの映画見に行きました。
「すくえ!ココリンと奇跡の星」です。
ここ数年の劇場版アンパンマンは、他作品でやってもアンパンマンじゃこんなのやらないだろう、絵本でやってもアニメ版じゃこんなのやらないだろう、テレビでやっても劇場版じゃこんなのやらないだろう、っていうのがどんどん覆されて楽しいです。

無題

早速テンプレートをPHPコードに書き換え始めたわけですが、変数とか関数の扱いをあまり考えていませんでした。
テンプレートは関数を使って呼び出すことになるのでグローバル変数は使用不可。
テンプレートに変数を渡す方法を考える必要あり。
関数は常にグローバルスコープなので呼び出しに関しては何の問題もなし。
逆に、テンプレート用関数の定義をするときにどうするのかが問題。
このへんを充実させれば扱いやすくはなるかもしれないけど、今度は普通のテンプレートエンジンと何が違うのかってことになりかねない…。

<2011年08月 2011年06月>