不知道有没有前辈提出来,在做五子棋AI算法的时候,如果从头开始遍历棋盘数组,会低效又消耗内存。
写了一个半径算法给大家分享下:<script type="text/javascript"> 
/* the radius method for loop */
  var center = [9, 9];
  var index;
  for (var i = 1, len1 = center[0]; i <= len1; i++) {
    index = [center[0] - i, center[1]];
    var counter = 0;
    var step = [i, i * 2, i * 2, i * 2, i - 1];
    var route = [
      function() { index[1] --; },
      function() { index[0] ++; },
      function() { index[1] ++; },
      function() { index[0] --; },
      function() { index[1] --; }
    ];
    for (var j = 0, len2 = i * 8; j < len2; j++) {
      // document.write(index + "<br />");
      if (counter == step[0]) {
        counter = 0;
        step.shift();
        route.shift();
      }
      if (counter < step[0]) {
        counter++;
        route[0]();
      }
    }
  }
</script>有关算法的详细介绍,请见:
http://www.wushen.biz/original/programs/?id=20100731160824