黑马程序员技术交流社区

标题: 关于二维数组中元素的位置修改 [打印本页]

作者: 孙宁宇    时间: 2012-7-6 13:24
标题: 关于二维数组中元素的位置修改
现在在做一个小游戏 是二维数组组成的 下图是游戏的局部

现在遇到个问题 如图所示 我可以把单击某一色块附近相邻的色块消失掉
但是该则样才能把悬在上边的色块移动下来?
例如:怎样第一列把红色的给移动到灰色的上边?
作者: 许庭洲    时间: 2012-7-6 13:53
1 ,设计程序的思路就是在一个二维数组里进行的数字交换游戏(当然小游戏是这样的);
2 ,只要把数组的元素在屏幕上用色块表示出来就行了.只要判断数组里的数字就能很容易的控制了;
3,比如二维数组中的灰色用数字1表示,红色用2表示;
4,然后在前台用JS判断和触发色块周围的颜色变换函数,若有色块移动事件发生,则改变二维数组中的元素值即可。
作者: 张寅平    时间: 2012-7-6 14:01
直接改变坐标不行吗?
作者: 孙宁宇    时间: 2012-7-6 14:30
许庭洲 发表于 2012-7-6 13:53
1 ,设计程序的思路就是在一个二维数组里进行的数字交换游戏(当然小游戏是这样的);
2 ,只要把数组的元素在屏 ...

在数组中我存放的是创建的色块对象而且是winform的
色块类是这样的
  1. class Brick
  2. {
  3.        #region 属性

  4.         private Color brickColor;  //颜色

  5.         private int brickScore;   //分值

  6.         private int brickWidth;   //宽
  7.         
  8.         private int brickHeight;  //高

  9.         private SolidBrush brickBrush;


  10.         /// <summary>
  11.         ///  方块颜色
  12.         /// </summary>
  13.         public Color BrickColor
  14.         {
  15.             get { return brickColor; }
  16.             set { brickColor = value; }
  17.         }
  18.         
  19.         /// <summary>
  20.         /// 方块分数
  21.         /// </summary>
  22.         public int BrickScore
  23.         {
  24.             get { return brickScore; }
  25.             set { brickScore = value; }
  26.         }
  27.         
  28.         #endregion

  29.         /// <summary>
  30.         /// 初始化方块
  31.         /// </summary>
  32.         /// <param name="color">方块颜色</param>
  33.         /// <param name="score">方块分值</param>
  34.         public Brick( Color color,int score)
  35.         {
  36.             BrickColor = color;
  37.             BrickScore = score;
  38.             brickBrush = new SolidBrush(color);
  39.             brickWidth = 30;
  40.             brickHeight = 30;
  41.         }

  42. }
复制代码

作者: 许庭洲    时间: 2012-7-6 14:48
孙宁宇 发表于 2012-7-6 14:30
在数组中我存放的是创建的色块对象而且是winform的
色块类是这样的

1,色块Brick类定义了两个属性BrickColor和BrickScore;
2,色块Brick类私有字段brickWidth和brickHeight用来确定表格的宽度和高度;
3,通过含有两个参数的构造函数Brick初始化BrickColor和BrickScore;
4,同时实例化一个颜色为color 的brickBrush对象。

作者: 王玲星    时间: 2012-7-6 17:21
要么交换数组的下标,要么交换数组的值。
作者: 古古头    时间: 2012-7-6 22:12
数组没有移动只说,只能说你把数组中的某一元素修改成什么样子。
你说要把第一列红色的移动下来,就是把原来红色块的位置修改成黑色,然后把灰色上面的那块位置修改成红色。
你不能凭直观地说移动。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2