频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用C++Builder5.0设计九宫排字游戏

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
下一页 1 2 3 4 

  摘要:

  九宫排字问题(又称八数码问题)是人工智能当中有名的难题之一。问题是在3×3方格盘上,放有八个数码,剩下第九个为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始位置转化为目标位置。

本文介绍用C++Builder5.0编写九宫排字问题游戏。游戏规则是,动态产生初始状态,由初始状态出发,不断地在空格上下左右的数码移至空格,若能排出目标状态,则成功。

  引言:

  九宫排字问题(又称八数码问题)是人工智能当中有名的难题之一。问题是在3×3方格盘上,放有八个数码,剩下第九个为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始位置转化为目标位置.

  九宫排字问题不是任何情况下都是有解的,我们可以把一个状态,自左至右,自上而下地用一维数组表示成(a1,a2,a3,a4,a5,a6,a7,a8)(空格跳过),而相应的位置也按同样的顺序排列,那么,如果在位置iaj,则说存在一个逆序,若逆序总数为偶数,则称相应的状态为偶状态,逆序总数为奇数,则称相应的状态为奇状态。

  很明显,空格横向移动时,逆序总数无变化,而空格纵向移动时,逆序总数改变-2、0或2,因此,在任何情况下,奇状态和偶状态不可能相互转换。

  九宫排字问题的求解方法,就是从初始状态出发,不断地空格上下左右的数码移至空格,将一个状态转化成其它状态,直到产生目标状态。如图二。

  本文用C++Builder5.0编写九宫排字问题游戏。游戏规则是,动态产生初始状态,由初始状态出发,不断地空格上下左右的数码移至空格,若能排出目标状态,则成功。

  图二、九宫排字问题的状态图

  编程实现:

  【第一步】选用C++Builder的菜单项“File|New Application”,创建一个工程。

  【第二步】给项目加入九个Panel控件,一个MainMenu控件,两个Label控件,并各控件的安排如图三所示。

  图三、各控件的安排

  【第三步】按表一、二所示设置有些控件属性:

  表一、控件及其属性

  表二、菜单的设计

  【第四步】Form1的OnCreate事件写入以下代码,其目的为:随机产生初始状态。图四为程序随机产生初始状态一览。

  void __fastcall TForm1::FormCreate(TObject *Sender)
{
AnsiString my_RondomNum[9];
for(int i=0;i<9;i++)
{
REDO:
my_RondomNum[i]=IntToStr(random(9));
for(int j=0;j
{
if(my_RondomNum[i]==my_RondomNum[j])
{
goto REDO;
}
}
}
for(int i=0;i<9;i++)
{
if(my_RondomNum[i]=="0")
{
my_RondomNum[i]="";
break;
}
}
Panel1->Caption=my_RondomNum[0];
Panel2->Caption=my_RondomNum[1];
Panel3->Caption=my_RondomNum[2];
Panel4->Caption=my_RondomNum[3];
Panel5->Caption=my_RondomNum[4];
Panel6->Caption=my_RondomNum[5];
Panel7->Caption=my_RondomNum[6];
Panel8->Caption=my_RondomNum[7];
Panel9->Caption=my_RondomNum[8];
my_Count=0;
Label1->Caption="0";
}

收藏地址:http://www.qqread.com/bcb/d354385.html 更多文章 更多内容请看游戏开发网络游戏攻略C/C++技术专题专题,或进入讨论组讨论。
下一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章