<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      HTML5+JS 《五子飛》游戲實現(二)路線分析和資源準備

      上一節 里沃特與我們分享了《五子飛》的下棋規則,可能有些伙伴看得不清楚,像我們碼農還是看到代碼比較靠譜。下面就把可以走棋的路線跟大家說一下。

       

      假設從左上角開始,以0開始編號,往右數(沒看第一節棋盤的先去看一下)(因為路線比較簡單,就直接寫固定的數據了):

      1.橫著走有5條直線:

      var lines_h = [
              [ 0,  1,  2,  3,  4],
              [ 5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19],
              [20, 21, 22, 23, 24]
      ];
      

      2.豎著走也有5條直線:

      var lines_v = [
              [ 0,  5, 10, 15, 20],
              [ 1,  6, 11, 16, 21],
              [ 2,  7, 12, 17, 22],
              [ 3,  8, 13, 18, 23],
              [ 4,  9, 14, 19, 24]
      ];
      

      3.另外還有6條斜線可走:

      var lines_o = [
              [ 0,  6, 12, 18, 24],
              [ 4,  8, 12, 16, 20],
              [ 2,  6, 10],
              [ 2,  8, 14],
              [10, 16, 22],
              [14, 18, 22]
      ];
      

      合起來即理論下可以走的路線如下:

      // 可走的路線
      var lines = [
              [ 0,  1,  2,  3,  4],
              [ 5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19],
              [20, 21, 22, 23, 24],
              [ 0,  5, 10, 15, 20],
              [ 1,  6, 11, 16, 21],
              [ 2,  7, 12, 17, 22],
              [ 3,  8, 13, 18, 23],
              [ 4,  9, 14, 19, 24],
              [ 0,  6, 12, 18, 24],
              [ 4,  8, 12, 16, 20],
              [ 2,  6, 10],
              [ 2,  8, 14],
              [10, 16, 22],
              [14, 18, 22]
          ];              
      

      分別用 A,B 表示對戰雙方:

      var Player = { A: 0, B: 1, None: -1 };
      

      棋盤我們直接在 canvas 上畫,棋子準備兩個小圖片:

       

      為棋子定義一個對象:

      function Point(x, y, index) {
          this.x = x;
          this.y = y;
          this.index = index;
      }
      function Bounds(x, y, w, h) {
          this.x = x;
          this.y = y;
          this.w = w;
          this.h = h;
      
          this.toArray = function () {
              return [this.x, this.y, this.w, this.h];
          };
      
          this.toArrayXY = function () {
              return [this.x, this.y, this.x + this.w, this.y + this.h];
          };
      }
      // 棋子
      function Chess(player) {
          this.player = player;
          this.point = new Point(-1, -1, -1);
          this.bounds = new Bounds(-1, -1, -1, -1);
          this.moveTo = function (chess) {
              chess.player = this.player;
              this.player = Player.None;
          };
      }
      

      棋盤上棋子定義(棋子初始化):

      var i;
      var cpc = 5;
      var ctc = Math.pow(cpc, 2);
      var chesses = [];
      
      // 分配棋子
      for (i = 0; i < cpc; i++) {
          chesses[i].player = Player.A;
      }
      for (i = cpc; i < ctc - cpc; i++) {
          chesses[i].player = Player.None;
      }
      for (i = ctc - cpc; i < ctc; i++) {
          chesses[i].player = Player.B;
      }
      for (i = 0; i < ctc; i++) {
          chesses[i].point = new Point(i % cpc, parseInt(i / cpc, 10), i);
      }
      

       

      這樣,路線和棋子初始化就已經比較清楚了,下一節我們開始在 canvas 上把棋子畫好。

      posted @ 2015-01-05 21:41  里沃特  閱讀(1380)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人精品无码播放| 棋牌| 欧美xxxxhd高清| 成人av天堂网在线观看| 精品国产乱码久久久久夜深人妻| 日本熟妇XXXX潮喷视频| 精品人妻伦九区久久aaa片69| 风流少妇又紧又爽又丰满| 国内精品无码一区二区三区| 2020国产欧洲精品网站| 四虎国产精品永久入口| 被灌满精子的少妇视频| 亚洲AV无码专区亚洲AV紧身裤 | 免费费很色大片欧一二区| 91中文字幕在线一区| 2019久久久高清日本道| 国产精品国产亚洲区久久| 高清国产一区二区无遮挡| 最新午夜男女福利片视频| 免费视频成人片在线观看| gogogo在线播放中国| 色播久久人人爽人人爽人人片av| 免费观看国产女人高潮视频 | 久热中文字幕在线精品观| 日韩激情无码av一区二区| 亚洲精品成人片在线播放| 国产午夜福利av在线麻豆| 日韩av综合中文字幕| 国产熟女真实乱精品51| 亚洲午夜成人精品电影在线观看| 成人午夜大片免费看爽爽爽| 平阴县| 熟妇高潮精品一区二区三区| 国产精品一区二区三区三级| 国产成人精品无码播放| 又污又黄又无遮挡的网站| 中文字幕理伦午夜福利片| 亚洲av永久无码精品漫画| 欧美激情一区二区久久久| 国产免费高清69式视频在线观看| 日韩中文日韩中文字幕亚|