- 关 键 词:
- c++builder
- 人工智能
图四、程序随机产生初始状态一览
【第五步】Form1的OnKeyPress事件写入以下代码,其目的为:判断空格位置并相应的移动空格左右上下边的数码,w为上移、s为下移、a为左移、d为右移。同时判断是否达到目标状态,若是,则显示祝贺信息。
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
if(Key=='s')//下移
{
if( Panel4->Caption=="")
{
Panel4->Caption=Panel1->Caption;
Panel1->Caption="";
my_Count++;
}
else if( Panel5->Caption=="")
{
Panel5->Caption=Panel2->Caption;
Panel2->Caption="";
my_Count++;
}
else if( Panel6->Caption=="")
{
Panel6->Caption=Panel3->Caption;
Panel3->Caption="";
my_Count++;
}
else if( Panel7->Caption=="")
{
Panel7->Caption=Panel4->Caption;
Panel4->Caption="";
my_Count++;
}
else if( Panel8->Caption=="")
{
Panel8->Caption=Panel5->Caption;
Panel5->Caption="";
my_Count++;
}
else if(Panel9->Caption=="")
{
Panel9->Caption=Panel6->Caption;
Panel6->Caption="";
my_Count++;
}
}
else if(Key=='w')//上移
{
if( Panel1->Caption=="")
{
Panel1->Caption=Panel4->Caption;
Panel4->Caption="";
my_Count++;
}
else if( Panel2->Caption=="")
{
Panel2->Caption=Panel5->Caption;
Panel5->Caption="";
my_Count++;
}
else if( Panel3->Caption=="")
{
Panel3->Caption=Panel6->Caption;
Panel6->Caption="";
my_Count++;
}
else if( Panel4->Caption=="")
{
Panel4->Caption=Panel7->Caption;
Panel7->Caption="";
my_Count++;
}
else if( Panel5->Caption=="")
{
Panel5->Caption=Panel8->Caption;
Panel8->Caption="";
my_Count++;
}
else if(Panel6->Caption=="")
{
Panel6->Caption=Panel9->Caption;
Panel9->Caption="";
my_Count++;
}
}
else if(Key=='d')//右移
{
if( Panel2->Caption=="")
{
Panel2->Caption=Panel1->Caption;
Panel1->Caption="";
my_Count++;
}
else if( Panel5->Caption=="")
{
Panel5->Caption=Panel4->Caption;
Panel4->Caption="";
my_Count++;
}
else if( Panel8->Caption=="")
{
Panel8->Caption=Panel7->Caption;
Panel7->Caption="";
my_Count++;
}
else if( Panel3->Caption=="")
{
Panel3->Caption=Panel2->Caption;
Panel2->Caption="";
my_Count++;
}
else if( Panel6->Caption=="")
{
Panel6->Caption=Panel5->Caption;
Panel5->Caption="";
my_Count++;
}
else if(Panel9->Caption=="")
{
Panel9->Caption=Panel8->Caption;
Panel8->Caption="";
my_Count++;
}
}
else if(Key=='a')//左移
{
if( Panel2->Caption=="")
{
Panel2->Caption=Panel3->Caption;
Panel3->Caption="";
my_Count++;
}
else if( Panel5->Caption=="")
{
Panel5->Caption=Panel6->Caption;
Panel6->Caption="";
my_Count++;
}
else if( Panel8->Caption=="")
{
Panel8->Caption=Panel9->Caption;
Panel9->Caption="";
my_Count++;
}
else if( Panel1->Caption=="")
{
Panel1->Caption=Panel2->Caption;
Panel2->Caption="";
my_Count++;
}
else if( Panel4->Caption=="")
{
Panel4->Caption=Panel5->Caption;
Panel5->Caption="";
my_Count++;
}
else if(Panel7->Caption=="")
{
Panel7->Caption=Panel8->Caption;
Panel8->Caption="";
my_Count++;
}
}
Label1->Caption=IntToStr(my_Count);
//判断是否达到目标状态,若是,显示祝贺信息
if(Panel1->Caption=="1"&&Panel2->Caption=="2"&&Panel3->Caption=="3"&&Panel4->Caption=="8"&&Panel5->Caption==""&&Panel6->Caption=="4"&&Panel7->Caption=="7"&&Panel8->Caption=="6"&&Panel9->Caption=="5")
{
Beep();
ShowMessage("祝贺您!");
}
}
相关专题
- 数字小键盘指法练习 (5501次浏览)
- 用WinSock控件编写网络聊天器 (2638次浏览)
- C++Builder注册表编程实例详解 (1568次浏览)
- C++ Builder VCL库函数简介 (1348次浏览)
- 在 C++ Builder中利用串行通信控件编程 (1213次浏览)
- C++ Builder中消息处理过程及应用 (1038次浏览)
- 将指定目录的结构装入TreeView中 (990次浏览)
- 用C++ Builder3 制作记事本 (818次浏览)
- Windows多线程间同步事件的控制方法 (787次浏览)
- C++Builder开发Web应用程序 (746次浏览)



