第一次渾作戦

11/16(日)から攻略を始めて、合計4回の挑戦でゲージを破壊した。
E-1だからとりあえず攻略は見ずに、史実をある程度参考にした編成で挑戦。

1回目は以下の編成*1
第一艦隊

  • 扶桑改Lv86
  • 羽黒改二Lv72
  • 妙高改二Lv72
  • 青葉改Lv47
  • 北上改二Lv66
  • 大井改二Lv64

第二艦隊

  • 那珂改二Lv63
  • 吹雪改Lv60
  • 陽炎改Lv53
  • 不知火改Lv55
  • 曙改Lv54
  • 潮改二Lv60

結果、4戦するルートで効率は悪そうだったけど、ボスには難なく勝利。
ただ、途中に敵に空母がいたのと、連合艦隊の仕様的に雷巡は第二艦隊に編入すべきだと気づいて2回目以降は次の編成に変更した。

第一艦隊

  • 扶桑改Lv86
  • 羽黒改二Lv72
  • 妙高改二Lv72
  • 青葉改Lv47
  • 龍驤改二Lv83
  • 足柄改Lv44

第二艦隊

  • 那珂改二Lv63
  • 吹雪改Lv60
  • 北上改二Lv66
  • 大井改二Lv64*2
  • 曙改Lv54
  • 潮改二Lv60

こちらは1戦目が「気のせいマス」で4戦するルート。*3
第二艦隊に雷巡を配置したおかげでこのルートでも夜戦まで持ち込めばボスを撃破するのは容易かった。先制雷撃である程度敵艦を減らしてくれるから、雷巡に仕事させたいなら第二艦隊に配置すべきなのかもしれない。

攻略終了時点での資源はだいたい

56k 44k 100k 34k

といったところ。

出だしとしてはまずまずである。


ところで、史実を参考にするにあたってこの本を参考にしようとしたら、渾作戦載ってなかった。なぜだ。

しょうがないのでWikipediaを参考にしました。
こっち↓の本にも載ってないっぽいあたり、渾作戦ってマイナーなのかしら。

ビジュアル図解 連合艦隊全作戦記録 (別冊宝島 2042)

宝島社 (2013-07-16)
売り上げランキング: 341,495

*1:レベルは攻略終了時のもの

*2:なにも考えずに雷撃増し気味な装備にしたらMVP取るたびにうるさいかった・・・

*3:さらに効率が悪くなった・・・

うなぎはいらないので交通費がほしい

こんにちは世界!!
このプログラミング問題が解けたら書類選考無し&高級うなぎGET! | Technology-Gym
なんかやってたので答え出すために書いたよー。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import copy

class Queen():
    def __init__(self,set_init = False):
        self.sqmap = [[0 for j in range(7)] for i in range(7)]
        #sqmap[x][y] sqmap:square mapの意
        if set_init:
            self.set_queen(2,2) #座標的には(3,3)
            self.set_queen(4,3) #(5,4)
    
    def print_map(self):
        #コマの配置状況とかを返す
        for ymap in self.sqmap:
            for x in ymap:
                print x,
            print ''
        print '=='
    
    def set_queen(self, x, y):
        #任意の座標にQueenを'q'設置して、Queenの効きがある所を'x'で埋める
    
        #設置不可なとき
        if self.sqmap[x][y] == 'x':
            return False
        
        self.sqmap[x][y] = 'q'
        
        #斜め用
        a1 = y - x #左上がり
        a2 = y + x #右上がり
        
        for i in range(7):
            #縦
            if not self.sqmap[i][y] == 'q':
                self.sqmap[i][y] = 'x'
            #横
            if not self.sqmap[x][i] == 'q':
                self.sqmap[x][i] = 'x'
            #右上がり
            if 6 >= i+a1 and i+a1 >=0:
                if not self.sqmap[i][i+a1] == 'q':
                    self.sqmap[i][i+a1] = 'x'
            #左上がり
            if 6 >= -i+a2 and -i+a2 >=0:
                if not self.sqmap[i][-i+a2] == 'q':
                    self.sqmap[i][-i+a2] = 'x'
    
    def search_queen(self, x, y):
        #Queenの置けるで一番多く置けるところを探して返す
        branch_map = copy.deepcopy(self)
        branch_map.set_queen(x,y)#queenを置く
        search_list = branch_map.get_search_list() #次にqueenを置ける場所を調べる
        
        queen_list = branch_map.get_queen_list()
        queen_num = len(queen_list)
         
        for search_point in search_list:
            temp_list = branch_map.search_queen(search_point[0],search_point[1])
            print len(temp_list) 
            print queen_num
            if queen_num < len(temp_list) :
                print 'update!' #デバッグ用
                queen_list = temp_list
                queen_num = len(queen_list)
        print queen_list #デバッグ用
        return queen_list
        
    def get_queen_list(self):
        #Queenの座標を返す
        l = []
        for y in range(len(self.sqmap)):
            for x in range(len(self.sqmap[0])):
                if self.sqmap[x][y] == 'q':
                    l.append([x,y])
        return l
    def get_search_list(self):
        #探査すべき座標を返す
        l = []
        for y in range(len(self.sqmap)):
            for x in range(len(self.sqmap[0])):
                if self.sqmap[x][y] == 0:
                    l.append([x,y])
        return l
    
if __name__=='__main__':
    print 'パズルタイムの始まりだ!'
    char_map = ['lhikoav',
                'rqsczlp',
                'uwalnfo',
                'tykajeh',
                'ahitsyd',
                'efoptxn',
                'ruzwyve'
                ]
    q = Queen(set_init=True)
    q.print_map()
    ql = q.search_queen(0,0)
    
    q2 = Queen()    
    for i in ql:
        q2.set_queen(i[0],i[1])
    q2.print_map()
    #ここから文字の並べ替え
    word = []
    for i in ql:
        word.append([(i[0]+1)*(i[1]+1), 
                    char_map[i[0]][i[1]]])
    for k,v in sorted(word):
        print v,

あいかわらず、ソースコードが汚いうえに下手くそですね><


答えはこんな感じになった

$ python Queen.py 
パズルタイムの始まりだ!
中略
[[5, 0], [0, 1], [2, 2], [4, 3], [6, 4], [1, 5], [3, 6]]
x q x x x x x 
x x x x x q x 
x x q x x x x 
x x x x x x q 
x x x q x x x 
q x x x x x x 
x x x x q x x 
==
h e a l t h y
$

healthy
【形】

1.健康な[に良い]、健全な、元気である、壮健である、堅調な、正常な
2.〔商品の売れ行きなどが〕順調な、好調な
3.〈話〉かなり大量[多数]の

http://eow.alc.co.jp/search?q=healthy

みんな漁獲量が減ってると話題のうなぎを食べて、健康になろう!
ってことかな。

正直この問題は普通にパズルとして解いたほうが早く解けた気がしないでもない。
あと、ソースコードにファイ・ブレインのAAでも貼り付けようかと思ったらAAがなさすぎてちょっと泣いた。


#追記
クラスを使う必要があんまりない気がするけど、俺が使いたかったから使ったんだよ! 言わせんな恥ずかしい///
思いつきで書いたらこんなもんだよ!

##追記
そういえば、このアルゴリズムだと答えが2つ以上有ったときに1つしか答えが出ないから、healthy以外に他の答えもあるかもしれない。
というのを書いておくのを忘れてた。

その他

今期はニチアサ以外には
坂道のアポロン
ヨルムンガンド*1
アクセル・ワールド
這いよれ!ニャル子さん
これゾンOTD*2
宇宙兄弟
Fate/Zero
ファイ・ブレイン
ガンダムAGE
アクエリオンEVOL
モーレツ宇宙海賊


とか見てる
あとしばいぬ子さんがでてくるアレとか
他にも不定期に見たり見なかったり

*1:ヨナかわいいよヨナ

*2:2期からみたらやけに面白かったでゴザルるの巻

どんなに画期的なアイデアでも、同じアイデアを持っている人が100人いても不思議ではない云々

えーと、以前こんなエントリを書いたことがあるわけですが

iPhoneアプリで「僕のラジオ」なんてのが出てた。


僕のラジオ App

カテゴリ: ミュージック

価格: ¥170


なんというか、その手があったか!ってカンジですよ


というか


ダン・ケネディとかいう人の名言

どんなに画期的なアイデアでも、同じアイデアを持っている人が100人いても不思議ではない。こんなことを思いついたのは自分だけだと、全員が思い込んでいるにすぎない。この100人のうち、特許や商標権の取得にこぎつける人が10人くらいはいるかもしれない。しかし、資本を調達し、商品を売ってくれる業者を探し、会社を立ち上げるという、退屈で地味でクリエイティブでもなんでもない仕事をやり遂げる人は、たぶん1人でしかない。100人中99人はそこまでやらない。

http://systemincome.com/9966

っていうのを思い知ったカンジ


おいらもアイデアをうまく形にして食っていけるようになりたいでヤンス

FirefoxのページのURLを外部アプリケーションに送る

私はニコニコ動画を見るときに外部アプリケーションとしてMacNicoTunesってアプリを使ってるんですが、普段は当然ブラウザを使ってWebを巡回してるんで、そこで見つけた動画をこのアプリで開きたい。
開くの自体は簡単で、Dock上のアプリのアイコンの上に動画のリンクをD&Dしてやれば良い。
でも、このD&Dの動作がトラックパッドだとやりにくいんですよ。
なので、副ボタン(右クリック)から開くコンテキストメニューでリンクや今開いているページのURLを送れるようにした。

使ったのは、これ
AppLauncher [Firefox 拡張機能] - コンテキストメニューから外部アプリケーションを起動する
Firefoxのから外部アプリケーションを起動するアドオンでございます。

Automatorでアプリケーションを作る

まずはAutomatorをつかいます。
書類の種類は「アプリケーション」を選択して起動。
左側にいろいろ有るリストの中から「シェルスクリプトを実行」を右側に追加。
そして、
シェルは「/bin/bash
引数の引き渡し方法は「引数として」
を選択。
その下の入力欄は

open -a アプリケーション名 $1

と入力。
今回はMacNicoTunesを起動したいので以下のようになる。

これを適当な名前で好きな場所に保存する。

AppLauncherの設定

AppLauncherの設定画面を開いてさっき作ったアプリケーションを登録する。
追加ボタンを押して、以下の項目を入力
Name:好きな名前を入力*1
Path:1で作ったアプリケーションを選択
Arguments:&turl;と入力

これでOKすればコンテキストメニューのAppLauncherからMacNicoTunesを起動できる。
ちなみに、ページの何もないところだとそのページが、リンクの上だとそのリンク先が送られる。便利!

*1:これがコンテキストメニューに表示される名前になる