【JQuery UI】autocompleteの使い方

注意

とりあえず動くけど方法的に正しいかは知らない。

はじめに

JQueryJQuery UIを読み込む。

<!-- head内 -->
<link type="text/css" rel="stylesheet"
    href="http://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" />
<!-- 文末 -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>

使い方(文字配列)

配列を表示させたいとき。

// id: inputform に 配列arr を適用する
$(function() {
    var arr = ["pokemon", "pso2", "bms", "IIDX"];
    $("#inputform").autocomplete({
         source: arr,
    });
});

普通に source: arr と指定してやればいける

使い方(Object配列)

ここからが本題。
Object配列を表示させたい場合、そのObjectにlabelプロパティとvalueプロパティがある必要がある
すなわち、元からlabelとvalueを持ってる場合なら

$(function() {
    var obj_arr = [
        { value: "pokemon", label: "pocket monster", priority: 3 },
        { value: "pso2", label: "phantasy star online 2", priority: 2 },
        { value: "bms", label: "be music script", priority: 5 },
    ];
    $("#inputform").autocomplete({
         source: obj_arr,
    });
});

とすれば動く。
labelとvalueを持ってないなら、

$(function() {
    var obj_arr = [
        { srt: "pokemon", full: "pocket monster", priority: 3 },
        { srt: "pso2", full: "phantasy star online 2", priority: 2 },
        { srt: "bms", full: "be music script", priority: 5 },
    ];
    $("#inputform").autocomplete({
         source: function (req, resp) {
             resp($.map(obj_arr, function (value, key) {
                if (value.full.indexOf(req.term) >= 0) {
                    return {
                        label: value.full,
                        value: value.srt,
                        data: value,
                    };
                }
            }));
        },
    });
});

てな感じで、labelとvalueプロパティを持ったものを新しく作って無理やり。
req.termに条件文字列が入ってるのでラベル文字列(この場合はvalue.full)の中に含まれているかどうか確認し、含まれてたら表示用のObjectを作る。

選択時の処理

selectプロパティに記載する。
文字配列の場合は公式サンプルを見ればいいのでここにはObject配列の時だけ書いておく。

$(function() {
    var obj_arr = [
        { srt: "pokemon", full: "pocket monster", priority: 3 },
        { srt: "pso2", full: "phantasy star online 2", priority: 2 },
        { srt: "bms", full: "be music script", priority: 5 },
    ];
    $("#inputform").autocomplete({
         source: function (req, resp) {
             // 上と同じなので省略
        },
         select: function (e, d){
              var data = d.item.data;
              // 取り出したdataを使って処理をする
              return false;
         }
    });
});

sourceのところにlabel, valueとともにdataを置いておいたのはここで使うため。

候補表示をカスタマイズ

こんな感じのコードを足す。

$(function() {
    var obj_arr = [
        { srt: "pokemon", full: "pocket monster", priority: 3 },
        { srt: "pso2", full: "phantasy star online 2", priority: 2 },
        { srt: "bms", full: "be music script", priority: 5 },
    ];
    $("#inputform").autocomplete({
        // さっきと一緒
    })
    .autocomplete("instance")._renderItem = function (ul, d) {
        var data = d.item.data; // selectの時と同じ
        return $("<li>")
            .append(/* ここにカスタマイズ用のHTMLを記述する */)
            .appendTo(ul);
    };
});

コメントの部分に中の要素を書いていく。この時要素のデータを使いたいならselectの時と同様d.item.dataからアクセスすればよい。
これだけだと不格好なのでcssで調理する。

.ui-autocomplete /*要素*/ {
    /* 適当に */
}

候補一覧にスクロールバーを付けたい

CSSでやる。

.ui-autocomplete{
	max-height: 200px;
	overflow-x: hidden;
	overflow-y: scroll;
}

overflow-yの値はscrollかautoでお好みに合わせて。

候補が出てくる最低限の文字数を多くしたい

$("#inputform").autocomplete({
    minLength: 3, // 三文字以上入力すると候補が出てくる
});

参考文献

とりあえずここ見たほうが早い気もする。
公式API Documentation(英語)
API日本語説明

【Tools】連番画像ダウンローダー

概要

github.com

なにこれ

連番になってる画像をダウンロードするツール
簡単に言うと「image_001.png」から「image_100.png」までダウンロードしたい、とかいう時に使う

前準備

1. githubに置いてあるものはそのままじゃ動作しないのでWindowsAPICodePack.(Core|Shell)をNuGetする
2. compile
めんどいならここから

使い方

URL: ファイルのある場所をフルパスで指定(httpを省略すると動かない)。
連番部分は

{0:Dx}

を使用する(xは桁数)。
より細かいオプション(0詰めしないとか)が必要ならC#のString.Formatで使える書式を見てみる。
例:

http://cardlist.com/img/card/small/card_{0:D5}.png

SaveFolder: 横の「...」ボタンを使ってフォルダ指定する。
NumRange: 開始番号と終了番号を指定する。

【ウィズ】グリコ魔道杯 結果

結果報告

魔道杯の報酬枠が拡大されたから総合を狙いにいきました。
取れました。
合計32万ptで18100位ぐらい。ボーダーは30万あたりかな。
https://pbs.twimg.com/media/CK7UuAxUYAAQ7fg.png

内訳

・初日 61610pt: 7500位(遊んでたらボーダーから落とされた)
・二日目 95000pt: 4200位(余裕見てクリけっこう割った)
・三日目 50000ptぐらい: 9000位ぐらい(寝落ち)
・最終日 102500pt: 2400位(12時からずっと張り付いて10万取った)

攻略内容

壱式をエンドレス周回。2-1-1-1-2で7t安定。運が悪いと8t。
デッキ内容は
1: スミオトキオ(フル覚醒)
2: ミコト(フル覚醒)
3: ルミィ(フル覚醒)
4: スフィア(フル覚醒)
5: リツェーレ(フル覚醒)
https://pbs.twimg.com/media/CK7BWu9UYAE6pD3.jpg

動き方は想像つくと思われるので注意点のみ。
・初戦で水水の組み合わせが出ると乱数次第で3tかかる。諦める。
・初戦で水火の組み合わせが出ると無対策だと3tかかる時がある。スミオトキオを火にタゲしとく。
・2,3戦目に水々の組み合わせが出ると乱数次第で2tかかるのでリツェーレのSSを打つ。
・3戦目以前にスフィアのSSを打った場合ボス戦でもう一回打てる。けっこう助けられた。
・ボス戦はスキブ→強化→ミコトSSで左を落としてから動く。

一回だけ7tゴーストが出てビビったけどそれ以外は余裕の1位。たまに8tすらいない時とかあるし。
リツェーレをラーミナに変えても行けると思います。てかその方がいい

感想

みんな微妙呼ばわりしてるスミオトキオ個人的には強いと思います。なんかあと一歩足りないけど。

報酬についての私感

夢と愛の結晶 アーモンドピーク(総合報酬)
スキブと高い回復量は強い。ただ15チェイン必須なのと術士デッキ前提なのとで上級者向けといった感じ。
総合報酬としていい位置づけだと思います。あとはSSのターン次第。
俺は使いこなせません。なんで取ったんだよ
追記: SS1ターンは8(5)、SS2は12(9)の模様。
最近の高チェイン押しはマトイみたいなのが増えるからだって信じてる。そいつが術士の保証はないがな!

上質な愛の時 アーモンドプレミオ(デイリー上位報酬)
初動400%の特攻とSSエンハとでまあ強い、のかこれ…
上位報酬でこの性能はちょっと控えめに感じる。枠拡張の代償なのだろうか
SSが重複しない関係上複数積みができないので複数枚取れる旨味はないです
アーモンドピークのSSターン次第で組み合わせて活用が期待できるかも

永遠に続く濃厚な余韻 ドロリッチ(デイリー下位報酬)
魔法生物特攻450%とダメ付き1t遅延持ち。プレミオと違いこちらは復数積みも十分視野に入る性能。
そもそも種族特攻なんて相手を選ぶかわりに馬鹿性能なんだから使えるところなら当然復数積んだほうが強い。
世界樹レイドとか近日実装されるカメオンレイドで活躍が期待できます。
ただしエリオットを持ってる場合はいらない子。裏を返せばエリオットを持ってる人(てか俺)涙目。

世界のために戦う漢 GABANARIO(累計ポイント上位報酬)
L時のスキルによって攻撃力8000と馬鹿HPを手に入れたヒーローGABA。しかもなぜか戦後回復持ち。
これはアリエッタ並みのやっちゃった感を感じますね。
こんなの作ったら雷推奨イベントが崩壊するし、最上級の雷推奨サブクエはノーデスが来るのが確定したようなもので戦術が狭まったようなものです。だってこいつ呼べば終わるもの
どうあがいても艦隊を作れないのは評価点です。

砕けるハードロック クラッツィナ(累計ポイント中位報酬)
妖精の割に微妙、というのが感想です。火が足りない人にはいいかもしれないです。あとはサブクエのお供。
ピレットみたいなのを期待してたのでちょっと残念ですね。

健康フルーツバード 毎日果実(累計ポイント下位報酬)
使えないとか書くと思っただろ。グリコIの上級のサブクエに使えるから有能です。

【Android】画像入手

概要

f:id:Arika0093:20150720231103p:plain
画像をダウンロードしてるんならそのURLを抑えればいいんじゃ?ってだけです。

方法

パケット入手ソフトを使って内容を確認、それだけ。

結果

HTTP通信でおもいっきりバレバレなURLだった。
これdisunityとかやんなくてもいいじゃんって感じの簡単さ。

内容

http://i.qu@iz.col@opl.jp/img/card/(Type)/card_(ID)_(Num).png (@抜き)

ここで、TypeとNumは画像の種類。TypeとNumの対応は
Type=small / Num=0 (小さい画像)
Type=middle / Num=1 (通常画像)
Type=extra / Num=1_ex (背景抜き通常)
Type=big / Num=2 (背景/レアリティ抜き通常)
Type=middle2 / Num=3 (デッキ時の画像)
Type=extra2 / Num=3_ex (背景抜きデッキ時)。
IDは識別番号(5桁)。図鑑のものとは一致しないので注意。

【Android】某ゲームの多重ログインについて

概要

f:id:Arika0093:20150720011513p:plain
例のゲームの多重ログインについて。

方法

バックアップソフト使って別端末にデータ持ってくだけ。
機種変機能を使うと引き継ぎ元から入れなくなるのでNG。
使ったのは自演垢です。
自演垢で目当ての精霊が出た時の運を使い果たした感じ

検証

  • 同時に(メイト|クリ)ガチャ
  • 同時売却
  • デッキの同時編集
  • 同時にダンジョンに潜る
  • リーダーを売却

同時ガチャ

結論から言うと無理です。エラー -5を吐かれてタイトルに戻されます。
メイトでもクリでも同様です。

同時売却

まあ無理ですね。
(追記)同一精霊を売却した場合は通ります。AとA&B売却を同時にやった場合エラーです。

同時編集

別々のリーダーにして表示がどうなるかを確認。
予想通り後にやった方が反映されている模様。

同時にダンジョンに潜る

意外にも問題ないです。ただし魔力消費は二倍。
魔道杯で使えるかも。リスクは大きいですが。

リーダー売却

エラー吐かれました。おわり。

結果

堅牢です。そこまで甘くなかった。