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

实现效果如图10、图11所示。


10  拼图成功


11 玩家排名

五、图片自动排序

其原理很简单,主要分为以下几个阶段:第一,记录下图片打乱前生成的打乱路径。第二,记录玩家移动图片的轨迹。第三,根据记录的数据逆序交换图片。经过上面的三个步骤将图片还原到起始状态了。在还原的过程中,主要的是为了让玩家了解第一阶段的路径还原,所以在逆序第二阶段的数据时速度较快(主要是恢复玩家已经交换的图片)。具体的代码:

int[] copychange = new int[200];//最多纪录200个步骤    记录了用户回溯的轨迹

   private void timer1_Tick(object sender, EventArgs e)   //回溯图片交换轨迹      

 {

          if (c > 0 )                                      //c中主要记录了第一阶段和第二阶段交换图片的次数

            {

label1.Text = "正在回溯用户的交换,还有" + (c - grade).ToString() + "";

               if (c < grade )                             //表明到了图片交换的第一阶段

                {

                   label1.Text = "正在回溯电脑的打乱顺序,还有" + (c-1).ToString() + "";

                   autoorderpicture.Interval = 700;         //到了第一阶段 将图片交换周期变为 700毫秒

                }

                autochange(c);                            //根据数组里面的记录回溯(逆交换),c大于grade的时候,主要回溯用户的交换轨迹(回溯第二阶段的数据)

            }

         else

            {

                label1.Text = "图片还原成功";

autoorderpicture.Enabled = false;

                enbalepicture();

            }

            c=c-1; 

        }

//交换图片   实现图片的逆交换  (自动排序)

     public void autochange(int i)

        {

            picturebox[copychange[i]].Image = picturebox[copychange[i - 1]].Image;

            picturebox[copychange[i - 1]].Image = null;

        }

实现效果如图12


12自动排序效果

六、总结

本软件采用两个数组,很简单地解决了拼图成功判断问题。理解拼图游戏中图片的运动规律,简易地解决打乱轨迹问题,本软件其实可以完全由一个数组解决拼图成功判断问题,不知道读者有没有发现。该软件还有很多的地方可以改进:自动拼图的功能不够灵活(虽然本文的方法能够确保自动排序成功)等,另外还可以加入玩家拼图步数的记录(步数越少越厉害)。

  推荐精品文章

·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