ubichupas.net

度々やり直してしまう大悪司の序盤最短攻略

もう発売から10年も経っているのに未だに新ネタが報告されるほど遊べてしまうゲーム『大悪司』。 どのルートに進むにしてもフナイ征圧までのお勧めイベントは決まっているので、忘れないようにメモを残しておくことにしました。

そしてハンティングを使った市橋蘭青葉曜子の共存にも成功。 ∩( ・ω・)∩ばんじゃーい

35年2月1週

地域フェイズ: 市議会(監督官と会う)
部下フェイズ: 衣笠智子(軍事訓練) → 白き煙幕
ハクア(支配力0/6)

4人全員をハクアに配置して迎撃戦でを処理します。 レベルアップのために2匹は倒しましょう。 このとき長崎旗男(体力70)にダメージを与えないこと。

35年2月2週

冒頭イベント: エリートヤクザ(雇用)
地域フェイズ: 眼鏡っ娘をスカウト → 熊手まんまる(入団)
部下フェイズ: 青葉曜子(軍事訓練) → 手加減
ヘグリ(支配力0→2/5)

6人全員をヘグリに配置して悪司エリートヤクザ警備員3人を倒します。 このとき悪司がレベルアップするので攻撃力を23に上げます。

35年2月3週

冒頭イベント: タマネギ(雇わない)
地域フェイズ: カネシタ温泉(初訪問)
部下フェイズ: 加古未来(軍事訓練) → 命中UP
ミドリガオカ(支配力6/6)

収支フェイズがあるので衣笠智子(収益100)を配置します。

ヘグリ(支配力2→5/5)

熊手まんまる(収益250)を配置して、不戦勝でヘグリを征圧します。

ハクア(支配力0/6)

残り4人でハクアの敵を全滅させます。 このとき長崎旗男(体力70)悪司(攻撃力23)で3回攻撃すると簡単に捕獲できます。 タマネギを雇った場合でもこの攻略手順は変わりません。 ただ調教フェイズが手間なので今回はGALバーガーで行きます。

35年2月4週

収支フェイズ: エリートヤクザ(解雇)
冒頭イベント: タマネギ(永久追放)
捕虜フェイズ: 長崎旗男(懐柔)
地域フェイズ: 竹井家(初訪問) → +500万
部下フェイズ: 青葉曜子(こます)
ハクア(支配力0→3→6/6)

連続不戦勝でハクアを征圧します。

35年3月1週

冒頭イベント: 大杉剛(入団)
捕虜フェイズ: 長崎旗男(懐柔)
地域フェイズ: 不振な人物を調べる → 島本純(入団)
部下フェイズ: 大杉剛(軍事訓練) → 土竜大悪司
コフン(支配力0/9)

迎撃戦でコフンの敵を全滅させます。 せっかくの動物なので2~3匹捕まえて動物園に送りましょう。

35年3月2週

冒頭イベント: 岳画殺(入団)
捕虜フェイズ: 長崎旗男(入団)
地域フェイズ: カネシタ温泉(出会い) → 鬼門始(入団)
部下フェイズ: 鬼門始(軍事訓練) → 回避UP
コフン(支配力0→3/9)

不戦勝でコフンを侵攻します。

35年3月3週

冒頭イベント: 小原小春(GALバーガー)
地域フェイズ: ばばあ長屋(征圧)
部下フェイズ: 鬼門始(軍事訓練) → +1000万
ミドリガオカ(支配力6/6)

収支フェイズがあるので熊手まんまる(収益250)を配置します。

ヘグリ(支配力5/5)

島本純(収益200)衣笠智子(収益100)を配置します。

コフン(支配力3→6→9/9)

連続不戦勝でコフンを征圧します。

タマネギを雇っている場合は鬼門始が母親からの手紙を受け取るイベントが発生します。 タマネギを永久追放した場合は小原小春のイベントが起こるのですけど、なぜか1000万を貰えるようになります。

35年3月4週

冒頭イベント: 貴神家(呼び出し)
地域フェイズ: 南馬券売り場(勝負) → -10万
部下フェイズ: 岳画殺(軍事訓練) → 死ぬがよい
フナイ(支配力0/6)

迎撃戦でフナイの敵を全滅させます。

この先ウィミィ女性士官情婦が登場するため、ここらで調教の館(500万)GALバーガー(300万)を建てておきます。

35年4月1週

冒頭イベント: 神原夕子(入団)
地域フェイズ: 眼鏡っ娘をスカウト → 熊手さんかく(入団)
部下フェイズ: 鬼門始(軍事訓練) → +1000万
ヘグリ(支配力5/5)

たぶん鼠黄金丸が襲ってきます。 ネズミ(体力30)大杉剛に処理させ、鼠黄金丸(給料0)は捕獲&懐柔してハクアかコフンの治安維持要員にしましょう。

フナイ(支配力0→3→6/6)

連続不戦勝でフナイを征圧します。


那古教

女の子海賊隊のイベント進めるにはクロモンの征圧と那古教との抗争開始が必要です。 そこでクロモンと同時にナンバに攻撃を仕掛けましょう。

那古教からの反撃時に土岐遙野山めぐる筒井朝顔が登場します。 ただし土岐遙は那古教のイベントが進むまで倒せません。 ナンバをゴリ押しで征圧すると大人しくなります。

クロモンは河原伊織大杉剛土竜で黙らせれば戦闘終了後に降伏してくるので、降伏を受け入れて1ターンで征圧します。 征圧後は那古教から攻撃されることもあります。 うっかり加古未来を配置しないよう注意しましょう。

女の子海賊隊

パナジに侵攻するには独立地域のイベントで女の子海賊隊が登場した後、PMの船を襲うイベント、わかめ組の船を襲うイベント、ウィミィの船を襲うイベントを経て市議会が海賊対策を検討します。 さらに地域フェイズで「女の子海賊隊を観察」「女の子海賊隊と交渉」を実行してようやくパナジに配置できるようになるため、最低7ターン待たされます。 しかもこれらの前に猿田博士のイベントが発生するため、結局パナジで天界海音を捕獲できたのは35年6月4週でした。 (´・ω・`)ショボーン

なお急いでナンコウを征圧してしまうとWW弾に高い確率で割り込まれてしまうため、イベントの進行を見届けてから直前にナンコウを征圧するのが良いでしょう。

わかめ組

35年5月1週になると加賀元子がミドリガオカに攻めて来るので、先手を打ってイコマかサカイに攻撃します。 ただしイコマとサカイの支配力を2/8より増やしてはいけません。

まずイコマで森田愛を捕獲したら、35年5月2週はイコマを捨ててサカイで辻家晴子を捕獲します。 そして35年5月3週加賀元子が行方不明になれば、幹部を失ったわかめ組は大人しくなります。

35年7月3週になるとわかめ組が助っ人を探し始めるので、やはり先手を打って35年7月2週に迎撃戦でイコマの敵を全滅させておき、35年7月3週に連続不戦勝でイコマを征圧してしまうのが良いでしょう。 地域フェイズで多田山一途を仲間にできます。

あとは35年8月4週素敵医師がわかめ組を乗っ取る前に天界海音ハンティングでセンリに居る市橋蘭を捕獲します。 このとき市橋蘭の体力を10以下にすると普通の捕獲になってしまうので気をつけましょう。

ハンティングに成功すると市橋蘭が居ないのに素敵医師のイベントが進行するので、山沢麻美が薬漬けになるのを見届けてからわかめ組を潰します。



ちなみに35年5月2週以降に資金を1000万より減らしておけば島本純が5000万を調達してくれるので、35年5月1週鬼門始から1000万を貰わないでおきましょう。 さらにこの金を使って南馬券売り場(2回目)で1000万の南馬券を買えばこれが5000万になるので、資金面の心配がなくなります。

【C#】ファイル一覧をファイル名でソートする

C#でフォルダ内のファイル一覧を取得するにはDirectoryInfo.GetFilesメソッドなどを使用しますが、そのファイル一覧は順序が保証されていません。 しかし今までファイル名順に取得できていた気がするので実験してみたところ、どうやらHDDをNTFSでフォーマットしているとファイル名順に取得できるらしい。 逆に言うとFAT32だとファイル名順にならなかったのです。 (;゚Д゚)エーッ!

FAT32とNTFSの違い

ファイルシステムに依存した話なので、dirコマンドでファイル一覧を表示した場合にも同様の現象が確認できます。 4つのファイル(001.jpg、002.jpg、003.jpg、004.jpg)を用意して、このうち003.jpgのファイル名を005.jpgに変更した後、dirコマンドで一覧を表示してみました。

するとNTFSのドライブ上ではファイル名順(001.jpg、002.jpg、004.jpg、005.jpg)に並び直されましたが、FAT32のドライブ上では同じ並び順(001.jpg、002.jpg、005.jpg、004.jpg)で表示されました。 FAT32では概ねファイルを作成した順番から変わらないようです。 (´・∀・`)ヘー
ちなみに/oオプションを付けるとdirコマンドの結果はソートされます。

ファイル名でソートするサンプルコード

ようは配列の並べ替えなのでArray.Sortメソッドにかければソートできます。 デリゲートを使った書き方をするのがC#らしくて良いでしょう。

file_sort.cs
static void Main(string[] args)
{
   // コマンドライン引数でディレクトリを指定
   if (args.Length < 1)
   {
       Console.WriteLine("Usage: <dir path>");
       return;
   }

   DirectoryInfo dir = new DirectoryInfo(args[0]);
   if (!dir.Exists)
   {
       Console.WriteLine("Not Found. {0}", args[0]);
       return;
   }

   // ファイル一覧を取得
   FileInfo[] files = dir.GetFiles();

   Array.Sort<FileInfo>(files, delegate(FileInfo a, FileInfo b)
   {
       // ファイルサイズで昇順ソート
       // return (int)(a.Length - b.Length);

       // ファイル名でソート
       return a.Name.CompareTo(b.Name);
   });

   // ソートしたファイル一覧を表示
   int count = 0;
   foreach (FileInfo file in files)
   {
       Console.WriteLine("{0,3} | {1}", ++count, file.Name);
   }

}

Google App EngineでDjango 1.2を使う準備

 ひさしぶりにGAEを弄っていたらこんな警告ログを発見しました。 近々Djangoフレームワークのデフォルトバージョンが変わる予定なので、今まで何気なくDjango 0.96を使っていた人はuse_library()関数でバージョンを明示してくださいという話らしい。 (;゚Д゚)(゚Д゚;(゚Д゚;)ナ、ナンダッテー!!

You are using the default Django version (0.96). The default Django version will change in an App Engine release in the near future. Please call use_library() to explicitly select a Django version.

 それでDjango 0.96の他には何が使えるのかというと、Django 1.2、Django 1.1、Django 1.0があると書いてあります。 先日Django 1.3がリリースされたので、それもそのうち使えるようになるでしょう。

ただしGoogle App EngineのSDKにはDjango 0.96とDjango 1.2しか含まれていないため、ローカルのテスト環境を構築する際には追加の作業が必要です。

■ Django 0.96からDjango 1.2への移行
 では「少ない手間で新しいものを」という自分方針に則って、自作アプリをDjango 1.2に移行させてみます。 方法はDjangoを使用しているPythonスクリプトに次の2行を書き足すだけです。
from google.appengine.dist import use_library
use_library('django', '1.2')

 webapp.template.django.VERSIONの値を表示して動作しているDjangoのバージョンを確認してみてください。 SDK 1.4.3では「(1, 2, 5, 'final', 0)」と出ました。 バージョン情報は文字列でなくタプルです。

Traceback (most recent call last):
 ・・・
 File "C:\Program Files\Google\google_appengine\google\appengine\dist\_library.py", line 194, in CheckInstalledVersion(name, desired_version, installed_version))
UnacceptableVersionError: django 1.2 was requested, but 0.96.4.None is already in use

 もしこんなエラーが出たときはuse_library()をスクリプトのもっと上の方に書いてください。 バージョンを指定する前にwebapp.templatedjango.utilsなどをインポートすると、現在のデフォルトであるDjango 0.96が動作してしまいます。


■ テンプレートタグやフィルタのパッケージ化
 自作のフィルタをmyfilters.pyというファイルに書いて他のスクリプトと一緒に置いてあったのですが、Django 1.2に変えたらエラーが起きてしまいました。

Traceback (most recent call last):
 ・・・
 File "C:\Program Files\Google\google_appengine\lib\django_1_2\django\template\__init__.py", line 984, in import_library
  app_path, taglib = taglib_module.rsplit('.',1)
ValueError: need more than 1 value to unpack

 何か文字列を「.」で分割しようとしているらしい。 エラー元はこちらのコード。 「myfilters」の前に「.」が無いからエラーになったわけですね。
template.register_template_library('myfilters')

 「myfilters」の前に「.」が入る状況というのは、Python的にパッケージ
ことでしょう。 そこでtemplatetagsというフォルダを新たに作ってmyfilters.pyを移動しました。 パッケージなので__init__.pyファイルも作成します。 初期化処理は特にないのでコメントだけ書いておきます。

自作フィルタの登録方法は次のようになりました。 m9(・∀・)ビシッ!!
template.register_template_library('templatetags.myfilters')

【関連記事】