A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙宁宇 中级黑马   /  2012-7-6 13:24  /  2797 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

现在在做一个小游戏 是二维数组组成的 下图是游戏的局部

现在遇到个问题 如图所示 我可以把单击某一色块附近相邻的色块消失掉
但是该则样才能把悬在上边的色块移动下来?
例如:怎样第一列把红色的给移动到灰色的上边?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
1 ,设计程序的思路就是在一个二维数组里进行的数字交换游戏(当然小游戏是这样的);
2 ,只要把数组的元素在屏幕上用色块表示出来就行了.只要判断数组里的数字就能很容易的控制了;
3,比如二维数组中的灰色用数字1表示,红色用2表示;
4,然后在前台用JS判断和触发色块周围的颜色变换函数,若有色块移动事件发生,则改变二维数组中的元素值即可。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
直接改变坐标不行吗?
回复 使用道具 举报
许庭洲 发表于 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:30
在数组中我存放的是创建的色块对象而且是winform的
色块类是这样的

1,色块Brick类定义了两个属性BrickColor和BrickScore;
2,色块Brick类私有字段brickWidth和brickHeight用来确定表格的宽度和高度;
3,通过含有两个参数的构造函数Brick初始化BrickColor和BrickScore;
4,同时实例化一个颜色为color 的brickBrush对象。
回复 使用道具 举报
要么交换数组的下标,要么交换数组的值。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
数组没有移动只说,只能说你把数组中的某一元素修改成什么样子。
你说要把第一列红色的移动下来,就是把原来红色块的位置修改成黑色,然后把灰色上面的那块位置修改成红色。
你不能凭直观地说移动。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马