中国いってきた話

上海と張家界

 

・言語、ホテル

想像以上に英語とか通じない。安ホテルとかだとまず無理だし、国際ホテルとかそういう名前のところでも店員がスマホでググりながら英語を話してくる。高級ホテルとだと英語はめちゃ話せる人がちゃんといて対応もしっかりしているので安心できる。観光地とかは基本的に中国語で何しゃべってるかこっちはわからんのにひたすら喋りながらなんかついてきたりするので怖い。

間違えて現地人向けの安ホテル泊まったら夜にノックされて、あけたらおばさんがマッサージマッサージいいながらインスタ的な女の子の画像みせてきてやばかった。扉におもいっきり公安警察のイラストと共に風俗的な行為は違反ですとかかいてあるのにできるわけないんだよな。

 

・衛生

観光地とか100m間隔ぐらいでゴミ箱があるし(1回めちゃゴミ落ちてるの見たけど)ゴミ箱が大量にあるおかげか意外とキレイだった。ただ歩きタバコポイ捨ては当たり前にやってる。あとトイレで喫煙がわりとよくあるからトイレがめちゃタバコだらけになってたりするし流れてなかったりして汚い(マック)。和式で汚いトイレが多いので、トイレを探してさまようことになる。

あとコップとかめちゃ汚かったりして厳しい。

 

・治安

公安が頑張ってるし、監視カメラとかいたるところにあるから良いのでは。

ただ上海でもスラムみたいになってるとこと高層ビルが乱立してたりしてるので貧富の差が凄そう。(夜間のスリと詐欺が多い)

 

・偽物

なんかもうどれが本物でどれが偽物かわからんしどうでも良くなってくる。

中国だと国の規制でつかえなかったりするし、使いたくても使えないからパクるしかないみたいな動機もあるのかもしれない。

 

・タクシーの出来事

空港ついたの22時過ぎだったので、空港からの電車が終わっている(終電がはやくて22時にはなくなります)送迎のバスとかもなかったのでタクシー乗り場からタクシーにのる。タクシーの運転手には上海でも英語通じないのでBaidu地図で行き先のホテル見せていってもらおうとする。タクシーの運転手がスマホのカーナビ機能で向かってくれてて安心やなとおもってスマホいじってたらめちゃ怒り出して怖い。なんやねん?とおもったら曲がる場所教えろ的なことをいってたし知らんがな。1回通り過ぎてバックしたけどなんとかホテルにはつく。表示が15元だったので20元渡したらまたなんか怒られる。足りんってことか?とおもっていくらですかって中国語で表示してみせたら怒られたのち5元返してくれた。5元ぱくる気やったんかい。

 

・バスの出来事

乗り場がわからんくて30分ぐらいひたすら伝言ゲームしてバス乗り場にたどり着く。(シティバスは屋外だったけど観光地行きのバスは建物の中通った先に乗り場があった)途中でおばさんに地図みせて乗り場どこや?みたいなこと聞いてたらバイクの後ろにのれみないなことジェスチャーしてきて意味わからんし怖い。

バスで乗り合わせたおじさんは地図みせたらそこいくから大丈夫だよとかジェスチャーしてくれたので優しい。バスの運転手も態度が優しいしバスは凄い乗りやすい、しかも安いし。

 

・天門山

めちゃ景色よかったけど高すぎて怖かった。ガラス張りの床になってるところはガラスがはめ込み式であまりにも薄い(3CM程度)のが更に怖い。思いっきりジャンプしたら割れておちるんじゃないの。ガラス張りのとこは限られてて10元ぐらい払って通るのですが、完全にお金払って罰ゲームしてる気分が味わえる。ケーブルカーとかもあまりにも高すぎて日本じゃ味わえないスリルが味わえる。

 

武陵源

アバターの聖地だけどアバターみたことないのでわからん、完全に水墨画って感じの景色で水墨画感が味わえた。観光バスが複雑で中国人ですらよくわからんって感じだったので初見じゃ上手く回るのは無理。ただそこまでは広くはないので健脚なら簡単には回れそう。5月ですでに暑いとおもったので夏場は相当暑いと思う。エレベーターは値段が高いのと日程の都合上乗れなかった。ここもだけどあまりにも崖なので高所が好きでなければつらい。

 

・Expedia

登録が凄い適当でホテルの名前間違っていた。そして住所も間違っていた。しかも1回じゃなくて2回連続して間違ってて1回はあきらめて別のところいった。飛行機はまあ大丈夫なんじゃないかなとは思うけどホテルとるのに使わない方がいいと思った。ブッキングのシステムが渡航先によるのかもしれないけど悪いので少なくとも中国に行く際は使わないほうが良いです。渡航先にサポート窓口がない時点でだめなんだよなあ・・・日本のサポート窓口に国際電話をかけろとかいってくるし、素直に◯ねとおもった。Lineとかそういうのでコンタクトとれるようにしてくれよ。こんなサイトがシェア上位とかサポートがまともな会社でてきたら余裕でシェア奪えるとおもうんだけどな。

 

・総括

ある程度中国語話せないと厳しいと感じた(もしくは日本語話せる中国人にガイドしてもらう)南京虐殺のあれとかあったりするしあんまり親日ではないだろうと思うのでそういった意味でもおすすめはできない感じがある。日本人はおとなしく台湾いっとけばいいのではという気持ちになった。中国ではVPNつかえないと詰む、あと電話かけられないとホテルのFreewifiもつかえないので現地Simも買おう。Expediaはもう使わん。

 

終わり

 

 

 

 

 

 

 

アズールレーン赤城加賀自働周回マシーン

はじめに

最近めっちゃUSAの駆逐艦になめられてる

f:id:kobineko:20171112174331p:plain

馬鹿呼ばわりしてくる

f:id:kobineko:20171112174833p:plain

黒板消しトラップ仕掛けてくる

あかんこのままじゃ・・・どうしてこんなことに
こいつらを締めてくれる怖いお姉さんが我が艦隊に必要

怖いお姉さんといえば赤城

赤城さんが指導すればUSAの駆逐艦もおとなしくなるはず

赤城さんを入手するためには、建造じゃでないので3-4周回が必要

でもドロップ率が低すぎて全然でない

手動で周回するのはだるすぎて限界がある

f:id:kobineko:20171112181731p:plain

もう無理、、、じゃあママもう寝るね・・・

このままじゃ艦隊の秩序、保てないよ・・・

f:id:kobineko:20171112180435p:plain
f:id:kobineko:20171112180512p:plain
f:id:kobineko:20171112180612p:plain
サンディエゴ

そうだ、自動化しよう

自動化

自動操作の実行環境の準備

  1. OSエミュレータの利用

    OSエミュレータはOSをパソコン上でエミュレートするソフトウェア。エミュレータ上でソフトウェアをインストールして動かせば、エミュレータを起動しているパソコンからマウスのクリックで操作できます。
    アンドロイドの場合、エミュレータは実機ほどの性能はでないとのこと
    iOSの場合、エミュレータのできが良く実機と遜色ない性能で動作させることが可能とのこと
    今回はアンドロイドでNoxというエミュレータの使用を想定していますが、他のエミュレータでも問題ないと思われます。

  2. 自動化フレームワークの利用
    アンドロイドOSエミュレータ上での実行はパフォーマンス上問題があり遅延等の原因になるそうです。しかしリアルタイム性がそれほど要求されないゲームの操作には問題ないレベルと感じました。もしパフォーマンス上気になる場合はアンドロイドOS上で直接実行し、アンドロイドOS上の操作をプログラムから制御できる何らかのソフトウェアを入れるほうが良いでしょう。Appiumというツールを使うとできるとのことですが詳細はよくわかりません。企業での受け入れテスト等では使われていることもあるとのことですが、個人で使うには情報も少なくまた高機能な分敷居は高そうという印象です。ただしオープンソースで個人でも利用は問題なし。

結論としては非リアルタイムゲームなので(戦闘はオート前提)アンドロイドのエミュレータで性能面は充分。また今回の目的では大したことはしないので高機能なツールを使う必要もなし。

クリックの自動化

クリックできるといってもどうやってクリックを自動化すればいいの?

クリックの自動化はWin32 APIのPostMessageを操作対象のプログラムのMainWindowHandleへ渡してあげることで実現できます。PostMessageを.net frameworkから利用する場合、user32.dllをインポートしてあげる必要があります。

(.netではクリックをウインドウハンドルに渡す関数は実装されてないらしい?)

実際にはクリックしているというかクリックの命令を送っているので実行している間マウスが操作できないとかそういうことはありません。

画像の取得

クリックする対象の画像を取得します。

Win 32APIのGetClientRect, GetWindowRect, ClientToScreen関数でデスクトップ上のプログラムの位置と画像を取得できます。取得した画像をBitmapに入れます。ピクチャボックスにBitmap画像をいれれば表示されます。

 (.netではウインドウハンドルからウインドウの画像を取得するやウィンドウのサイズや位置を取得する関数は実装されていないらしい??)

別にそんなことをしなくてもPrintscreenからの画像を取得すればいいのですが、ディスプレイが2枚ありそこからマッチング範囲を設定するのも手間なのでこうしました。後述するテンプレートマッチングのパフォーマンスはマッチング対象のスクリーンの大きさに影響されるので何らかの方法で対象範囲は絞っておいたほうが良いです。

画像のマッチング

取得した画像に対して、プログラムでクリックしたい場所を探してクリックします。

画像のマッチングにはOpenCVのテンプレートマッチングを使用します。

テンプレートマッチングはテンプレートとして用意した画像をマッチング対象の画像から探すというオーソドックスなマッチング手法です。多少画像が伸びていたりしてもマッチングできるらしいです。ただし、例えばテンプレートとして用意する画像が星型をしている場合星型の背景まで含めてマッチング対象とみなされてしまうのでマッチングがうまくいきません。星という形として認識しているわけではなく、あくまでテンプレート画像そのものがマッチング対象としてみなされるためです。そのため、マッチングするためにテンプレート画像は背景を含めないように注意する必要があります。

f:id:kobineko:20171113220649p:plain

だめな例。テンプレート画像が大きすぎて背景が含まれておりマッチングに失敗する

 

f:id:kobineko:20171113220743p:plain

良い例。背景が含まれていないのでマッチする

その他マッチングにおける注意点として、色深度(ビットの深さ)の設定があります。

テンプレート画像とスクリーン画像の色深度が異なっている場合、テンプレートマッチング関数がエラーとなってしまいます。スクリーン画像の色深度は32bitなのでそちらに合わせるようにしました。

キャプチャソフトを使用した場合、色深度が24bitなど32bit未満になっていることがあります。その場合はmspaintで開いて保存するとなぜか32bitになってます。

f:id:kobineko:20171113223627p:plain

ビットの深さ


テンプレート画像とスクリーン画像をマッチングすると、マッチングした範囲が帰ってきます。マッチングした範囲の中央をクリックすることで、ある特定の画像が表示されたらそれをクリックするという処理が可能となります。

Cv2.MatchTemplate(screen, template, result, TemplateMatchModes.CCoeffNormed);
Cv2.Threshold(result, result, 0.8, 1.0, ThresholdTypes.Binary);
Cv2.MinMaxLoc(result, out OpenCvSharp.Point minPoint, out OpenCvSharp.Point maxPoint);

状態遷移の処理

プログラム上ではひたすらループを回しています。

GUIでそれをやると固まっているように見えてしまうため、別にTaskを作成してその中でループを回すようにしています。例えば戦闘中戦闘中の状態として処理し、戦闘中状態ではひたすら画面の虚空をクリックし続けています。そうするといずれは勝利するので確認ボタンが検出され押されます。

そうすると画面が遷移します。画面の遷移にあわせて、マップにいることが確認できたらマップ状態に遷移し今度は敵艦を探してクリックします。

 

実際の処理

戦闘マップでの処理

 戦闘マップでは敵艦を見つけたらクリックして移動します。

クリックして無事戦闘に入れればいいのですが、上手くいかない場合があります。

例えば移動中に迎撃艦隊に遭遇した場合、移動が止まってしまいます。

また、クリックした敵艦との間に敵艦が存在し敵艦を通過せずに移動ができない場合、移動が失敗します(クリックしても移動できない)。

そのような場合を検知してうまく移動させます。

f:id:kobineko:20171113214243p:plain

戦闘マップでの状態遷移

戦闘中での処理

戦闘中での処理はシンプルでひたすら画面の左端あたりをクリックします。

 そして確認がみえたらクリックするだけです。

 

 

SorakaでBronzeでキャリーしてSilverプレイヤーになろう

はじめに

LoL日本サーバーSeason7はじまりましたね。

今シーズンも振り分けがおかしいのか半数近くのプレイヤーがBronzeに放り込まれているようです。そんな中うまい人は簡単にBronzeを抜けられるのかもしれませんが、なかなか勝ったり負けたりでDivisionが上がらないプレイヤーもいるのではないでしょうか。

 

本記事はそんなBronzeから抜けられないで困っているプレイヤーの助けになればと思い記載しました。

 

結論

結論から言います。

僕はBronzeではSupportロール、そしてSupportロールのうちSorakaをプレーしたほうがいいと思います。

 

理由

  1. ワードを利用した視界の大切さが理解できる
    Bronzeで勝てない1番の理由は視界を軽視しているからだと思います。
    序盤から優勢で勝てると思っていたゲームがベイトや無理なドラゴン・バロンから逆転され負けてしまった・・・そんなケースは稀ではないと思います。Bronzeでのゲームは全体的にワードの数が少なく、視界が取れていません。その上視界が取れていない中でリスキーなプレーをしがちです。そんな中Support以外のロールをプレーしても、ワードで視界を確保する上でできることは限られています。自分がSupportロールをプレーしてワードをおけば、チームのリスキーなプレーを防ぎ勝利に貢献できます。

  2. 味方チーム全体のヘルスを意識できるようになる
    SorakaはUltで味方全体のヘルスをマップ上どこにいるかに関わらず回復することができます。Ultを効果的に使うには味方のヘルスの減り具合を常に確認する必要があります。SorakaでUltが上手に使えるようになれば、自然と味方のヘルスに気を配る癖がついているでしょう。
    Soraka以外のチャンピオンをプレーするときも、味方のヘルスに応じてエンゲージするかなどの選択を考慮することができプレーが安定します。

  3. ハンドスキルがあまり求められない
    Sorakaは他のSupportとくらべてもハンドスキルが求められません。
    Qはハラスをしつつ回復ができるスキルですが、ダメージ・回復量も大したことがなく相手のADCやSupportにトレードを仕掛けられた場合は回復以上にダメージを受けてしまいます。SorakaのQは牽制として打つ程度で、ハンドスキルを駆使して当てに行くようなスキルではありません。
    Eは重要なスキルですが、置くだけで即時発動するため外すことはないでしょう。
    Botのレーン戦ではADCの後ろでWで回復しているだけでも貢献できます。特に慣れないうちはWで回復し自分はダメージを受けないことを意識しましょう。
    Wで回復しているだけということは、それ以外の時間に味方を助けることができます。具体的にレーン戦で何をしたら良いかは後述します。

 

すること

以上でSorakaをプレーする重要性について伝わったと思います。

次に具体的にどういったプレーをすればよいか記載します。

 

マスタリーとルーン

ルーンは普通のAPとARとMRをベースで積んだものでOKです。

マスタリーはキーストーンは風詠みが必須ですが他はなんでもOKです。

 

キューの入れ方

Rankキューを入れます。

1stはSupport、2ndはFillです。

Supportロールは人気がないため、おそらく8割以上のゲームはSupportでマッチするでしょう。それ以外のロールになってしまったらSorakaはプレーしないように。AAがおそすぎてCSがまともに取れません。適当に好きなチャンプを使いましょう。

 

チャンピオン選択

あなたのロールは当然Supportです。

BanPickがはじまるまでに素早くSorakaをピックしましょう。

Sorakaをピックしたら、即次の魔法の言葉をチャットしてください。

 

あなた)My soraka win rate is 100%

あなた)Please ban Blitz

 

嘘つけOPGGみたけど50%やんけ(笑)みたいなリプライがあるかもしれません。

その場合は勝率が5%アップします。

BanPick

BanPickがはじまりました!

ブリッツクランクをバンしてもらいましょう。

バンしてもらえた場合は、Thank you!とチャットしましょう。

うまくいけば、チーム内が暖かな雰囲気で包まれます。

そしてチーム内で英語によるコミュニケーションがとれることがわかりました。

この時点で勝率60%は硬いでしょう。

 

ゲーム開始~レーン戦

適当にコインを買ってプレーしてください。

疲れたのでここまでにします。

 

 

 

 

 

 

 

最近みた映画

・ボーンアイデンティティ、ボーンスプレマシー、ボーンアルティメイタム

ゴッドファーザー PART1,2

・アイアンマン

ダヴィンチコード、天使と悪魔

・エリート・スクワッド ~ブラジル特殊部隊BOPE

ブラックホークダウン

プライベートライアン

 

 

LOL日本サーバーでBronzeでつらい話

ふえええぇぇ

Bronzeつらいでしゅううう

 

・各レーンの特徴

Bot

なんかもう顔を合わせたら戦ってる。

常に血で血を洗う闘争を繰り広げているのでbotのスコアがやばいことになる。

 

Mid

jungleがちょっと通りますよ~と素通りすることもある

居場所を奪われた他のレーナーが集まる憩いの地でもある

おわり

 

Top

何も起こらない or 片方が一方的に勝ち続ける。

大半のゲームにおいてなくてもいいレーン。

 

・オブジェクト

ヘラルド

20分になるまで場を温める存在。

変な効果音がなり、おっそんなのおったな~と思い出すことも

 

ドラゴン

急にはじまり、そして味方が全滅する

デワードされるかはサポート次第

Bronzeにおけるサポートの力が試される運ゲー要素

負けてても何かキルとドラゴン一気にとれることもあるから諦めないで(Soraka

 

タワー

決して諦めないオブジェクト

そしてタワーと共にしぬ

 

バロン

近づかないほうが良いと言われている伝説の生き物

急にバロンにPingがなり、味方が1人で殴り始めたら注意

負けててもバロンとキルと更にタワーが一気に(略

 

・チャンプ

MasterYi

逃げ足に定評のあるチャンプ

 

Shyvana

嫌われてて良くバンされる

目が光ってるのがいけないのかな・・・

私のような敵は(普段バンされるので)はじめてだろうな~?(威圧

 

Teemo

きのこを撒いておなにーするきのにーなチャンプ

Garen相手にも序盤から負ける

 

Leona、Taric、ありすたー

ずっと挑発とかジョークとか連打してる

絞っても乳はでんぞ~

えっ!??ダイアのネックレスがまさかのこのお値段!?

へいまーは挑発で挑発がキャンセルできる最強のチャンプ

 

・ブッシュ

皆さんブッシュに例えばアニーちゃんがW打つとしますよね?

(Wじゃちょっと射程短くない?というのは置いておいて

一見するとフェイスチェックするより安全で理にかなっているように思われます

でも実はそうではありません

Wをすることでブッシュは傷ついてしまいます

そのうちブッシュそのものが無くなってしまうかもしれません

そんなのは嫌ですよね?

Bronze民はさもなーずりふとの環境のことも考えてプレーしているのです

なのでフェイスチェックが基本

 

おしまい

 

 

 

 

 

将棋倶楽部24の思い出

将棋倶楽部24

それはネットで将棋をするというサイト

 

将棋倶楽部24は凄かった

完全に無料で遊べる

めちゃくちゃ安定していて軽い

 

安定して人がいて、休日だと2000人ぐらい

レーティングシステムで似た強さの対戦相手が数秒で見つかる

9割9分以上まともなユーザーだから、変な人がいると即通報され排除される

強い人だらけだし、おそらくプロもいる

下手な人でも真剣に将棋を指している

 

僕は高校生の時にやっていた

最初はじめたとき10級ぐらいで最終的には4級ぐらいになった

ちなみに将棋倶楽部24で4級はアマ初段ぐらいの強さです

何を言っているかわからないと思いますが。。。

 

将棋倶楽部24は棋力ごとにタブでわかれていて、

4級になると1級~4級のタブに自分の表示が変わるんですよね(確か)

4級になってタブかわったときめちゃ嬉しかったのを覚えている

 

将棋倶楽部24は神

 

サイフを落とした話

サイフを落とした

絶対拾われてるのに出てこない

拾った人交番に届けてくれよ

ほんと東京砂漠みたいなクソな街だな

サイフが拾われないだけ砂漠のがまし

もうサイフ見つからなかった時点で戻ればよかったわ

 

はぁ・・・つら