Akata Works

東京エンジニア。主にRuby,Go,たまにAWSとiOS。ゲーム音楽が好きです。連絡はTwitterかakata.onen@gmail.comまで

タイピングゲームを自動化するスクリプトを組んだった

今更ながら、YAPC::ASIA 2011の竹迫さんの発表を見て興味を持ったので、
Win32::GuiTestモジュールを触ってみました。

まあ、.NET Framework使えよって話ですがね。
せっかくオープンソース化されたので、時間があれば読んでおきたいな。

開発環境はCygwinとStrawberry Perlです。
Image MagickやImage::Magickモジュールのインストールがめんどうだった。
ちゃんと32Bitで統一しよう(;´Д`)=3

竹迫さんが発表で仰っていましたが、
タイピングゲームを自動化すると面白そうだったので自動化しました。

akatakun/auto-typing · GitHub

画像ファイルとスクリーンショットをマッチングする簡単な仕組みですが、
X座標でソートして一気に打ち込むのはうまく出来たと思う。

sub match_words {
  my ( $screenshot, $words ) = @_;

  my %match_words;
  for my $word ( keys %$words ) {
    my @coords = $screenshot->match( $words->{ $word }, multiple => 1 );
    my @xs = @coords[ grep { $_ % 2 == 0 } 0 .. $#coords ];
    $match_words{$_} = $word for @xs;
  }
  return \%match_words;
}

これを某サイトで試したところランキングトップを超えるスコアを出せました(^ρ^)

恐らく画像ファイルさえ用意すれば、ほとんどのサイトで動くと思いますが、
ブラウザの解像度やエリアシングの有無でぱたりと動かなくなりますorz

最後に、、ランキング荒らしちゃ駄目だよ

参考サイト