看流星社区

 找回密码
 注册账号
查看: 3035|回复: 0

[Delphi] QQ对对碰相连点击算法疑问!!

[复制链接]

该用户从未签到

发表于 2011-4-3 15:21:52 | 显示全部楼层 |阅读模式
  1. //获取交换点
  2. Function GetPoint():twoXy;   //获取可交换的2个点
  3. var
  4. x,y,t1:byte;
  5. qp:QP_Array;
  6. begin
  7.     //////////////////////////////////// ///为什么遍历某列for y:=1 to 7 do 这里循环的7 而不是8,而qp[x][y]:=qp[x][y+1];  【y+1】又是什么意思啊。
  8.   for x:=1 to 8 do  //1-8列
  9.      for y:=1 to 7 do  // 遍历某列
  10.             begin
  11.               updataChess; //更新棋盘数据
  12.              qp:=ChessData;
  13.              t1:=qp[x][y];
  14.              qp[x][y]:=qp[x][y+1];
  15.              qp[x][y+1]:=t1;    //交换相临棋子
  16.              if  TestChess(qp) then
  17.               begin
  18.                  result[1].X:=x;
  19.                  result[1].Y:=y;
  20.                  result[2].X:=x;
  21.                  result[2].Y:=y+1;  
  22.                  exit;
  23.               end;
  24.             end;//end for
  25.   for y:=1 to 8 do     
  26.     for x:=1 to 7 do  
  27.         begin
  28.              updataChess;  //更新棋盘数据
  29.              qp :=ChessData;  //
  30.              t1:=qp[x][y];
  31.              qp[x][y]:=qp[x+1][y];
  32.              qp[x+1][y]:=t1; //交换相临的2点
  33.              if  TestChess(qp) then
  34.              begin    //如果交换后的棋盘 存在 三个相同的棋子相连
  35.                result[1].X:=x;
  36.                result[1].Y:=y;
  37.                result[2].X:=x+1;
  38.                result[2].Y:=y;
  39.                exit;
  40.              end;
  41.         end;//end for
  42. //
  43. end; //end Function
复制代码
为什么遍历某列for y:=1 to 7 do 这里循环的7 而不是8,而qp[x][y]:=qp[x][y+1];  【y+1】又是什么意思啊。

而又怎么看他是遍历的到底是列还是行啊。  我断点调式发现循环棋盘的数据都是行,而没发现列遍历
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-20 10:11

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表