你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
C#实现拼图游戏(二)
 

其中的数字表示图片格内图片对应于原始图片的序号,将其抽象成下面的网格图3

 

0-1

11

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

1515

3抽象初始图

3中红色背景的代表这个图片格内没有图片,其余颜色的代表图片格内有图片覆盖,图片格内的数据:AB ,其中A代表是第几个图片格,B代表的是格子内图片的序号(图2中的标号)。

这里定义两个数组:a[16],b[16]并将他们等值初始化:

For (i=1;i<16;i++)

{

a[i]=b[i]=i;

}

a[0]=b[0]=-1,设定没有图片为值-1a数组用来记录未打乱的图片的分布规律,表达式a[i]=p,其中i表示是第几个图片格,p表示这个图片格内放的图片序号,其值对应于AB(a[A]=B)

3中没有图片的区域可以和其紧靠的左右上下区域(同在一条水平线上,或者同在一条垂直线上,如34就不合乎条件)交换图片,图片中酸橙色表示了可以进行交换的区域。在图3中,可以将图片0区域的图片和图片1区域及图片4区域中的某个交换,假定将0区域和1区域交换:此时用数组b来记录交换b[1]=-1,b[0]=1(图片格1内没有图片,图片格0中放的是图片序号1),交换后的效果如图4

01

1-1

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

1515

4图片交换

再如:上图片中的1区域图片为空,说明他可以和(025)其一交换,这里我们假设是:1区域和5区域交换图片,效果如图5

01

15

22

33

44

5-1

66

77

88

99

1010

1111

1212

1313

1414

1515

5图片交换

即:b[1]=5,b[5]=-1。通过这种方式,记录下了交换过程中每个图片格内的图片序号。该数组b可以用以判断图片格内的图片是否发生过变化(如果b[i]=a[i]说明图片格内图片变化了,因为在初始a数组和b数组时,都记录了图片的原始序列)
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089