DevQuizのソースコード(WebGame編)

Google Developer Day 2011 に参加する為にDevQuizに参加させて頂きました。
合計得点は141.26点でボーダーラインよりは上にいるので参加は出来るかと思います。

ということで早速ソースの晒しです。
分野別クイズでは以下の3つを選択しました。
・WebGame
・Go!
・Android

その中で今回は「WebGame」のソースコードを公開していきます。

var main_cnt = 0;
var target_cnt = 0;
var main_color = "";

var main_element = document.getElementById('card' + main_cnt);
var target_element = null;

var myevent = document.createEvent('MouseEvents');
myevent.initEvent('click', false, true);

// main loop
while (main_element != null)
{
 if (main_element.style.backgroundColor == "")
 {
  main_element.dispatchEvent(myevent);

  main_color = main_element.style.backgroundColor;

  target_cnt = main_cnt + 1;
  target_element = document.getElementById('card' + target_cnt);

  while(target_element != null)
  {
   if (target_element.style.backgroundColor == "")
   {
    target_element.dispatchEvent(myevent);

    if (main_color == target_element.style.backgroundColor)
    {
     // 同一色が見つかった
     break;
    }
    else
    {
     main_element.dispatchEvent(myevent);
    }
   }

   target_cnt++;
   target_element = document.getElementById('card' + target_cnt);
  }
 }

 // next card
 main_cnt++;
 main_element = document.getElementById('card' + main_cnt);
}

ロジックとしては単純明快で、上からパネルを1枚ずつ開き、その隣のパネルから最後までを一気にめくり、色が合致した時点で次のパネルをめくって・・・の繰り返しです。
よって、既に開いたパネルを色を覚えておく等の頭の良いロジックは組んでおりません。
このロジックでも結構良い速度で回答していけたので、Chrome Extensionは凄いなぁ・・・と思いました。

今回、初めてChrome Extensionを触ったのですが、基本的にJavaScriptと同じだったので迷うことなくプログラムを組むことができました。
DevQuizが無ければ、この技術に触れることが無かったかと思うと、挑戦してみてよかったと思います。

次回はGo!のソースを晒します。

This entry was posted in プログラム. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です