⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 这是用C++Builder做的一个九宫排字游戏
💻 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 + -