読者です 読者をやめる 読者になる 読者になる

sugarlife's blog

Javaとか、http://twitter.com/sugarlife

Google Developer Days 2011 JapanのDevQuizの分野別クイズのうち、Web Gameの解答を晒してみる。
ソースをさっと見ると解答送信以外では通信をしていないようなので、単純に解答を送信するようにした。

// カードの中身を引っ張り出す
var scripts = document.getElementsByTagName("script"); 
var cards = scripts.item(2).innerHTML.split("[")[1].split("]")[0].split(",");
// カードを内容順にソートする
var holder = new Array();
for ( var i=0; i<cards.length; i++ ) {
  holder.push({key:i,card:cards[i]});
}
holder.sort ( function(a,b){return a.card > b.card ? 1 : -1;} );
// 答えを書く
var answer = new Array(cards.length);
for ( var i=0; i<cards.length; i+=2 ) {
  answer[holder[i].key] = holder[i+1].key;
  answer[holder[i+1].key] = holder[i].key;
}
// 答えを送る
var solver = document.getElementById("solve");
solver.answer.value =answer.join(",");
solver.submit();

スライドパズルはA* + 双方向と幅優先探索 + 双方向で実装したところ、2時間程度で300問程度しか解けず。
もともとそんなものだろうと予測していたので、反復深化深さ優先探索を実装して、実行しようとしたところで時間切れ。
ということで結果として103点でした。あまり時間が取れなかったこともありますが、短い時間で効率的に問題を解かねばと反省しきり。