📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <stdlib.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int my_Count;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ExitClick(TObject *Sender)
{
//退出应用程序。
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::HowToClick(TObject *Sender)
{
//显示帮助主体。
ShowMessage("上移 --- w\n下移 --- s\n左移 --- a\n右移 --- d");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AboutClick(TObject *Sender)
{
//显示开发者信息。
ShowMessage("湖南省宁乡托普职业技术学院计算机系软022班 欧阳倩");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NewGameClick(TObject *Sender)
{
//随机产生初始状态。
Panel1->Color=clGradientActiveCaption;
Panel2->Color=clGradientActiveCaption;
Panel3->Color=clGradientActiveCaption;
Panel4->Color=clGradientActiveCaption;
Panel5->Color=clGradientActiveCaption;
Panel6->Color=clGradientActiveCaption;
Panel7->Color=clGradientActiveCaption;
Panel8->Color=clGradientActiveCaption;
Panel9->Color=clGradientActiveCaption;
AnsiString my_RondomNum[9];
randomize();
for (int i=0;i<9;i++)
{
REDO:
my_RondomNum[i]=IntToStr(random(9));
for(int j=0;j<9;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[1];
Panel2->Caption=my_RondomNum[2];
Panel3->Caption=my_RondomNum[3];
Panel4->Caption=my_RondomNum[4];
Panel5->Caption=my_RondomNum[5];
Panel6->Caption=my_RondomNum[6];
Panel7->Caption=my_RondomNum[7];
Panel8->Caption=my_RondomNum[8];
Panel9->Caption=my_RondomNum[0];
my_Count=0;
Label1->Caption="0";
}
//---------------------------------------------------------------------------
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("祝贺您,您成功了!");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AnswerClick(TObject *Sender)
{
//显示目标状态。
Panel1->Color=clSilver;
Panel2->Color=clSilver;
Panel3->Color=clSilver;
Panel4->Color=clSilver;
Panel5->Color=clSilver;
Panel6->Color=clSilver;
Panel7->Color=clSilver;
Panel8->Color=clSilver;
Panel9->Color=clSilver;
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";
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -