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

📄 game1.cpp

📁 三子棋游戏源代码
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "game1.h"
#include "diog.h"
//-----------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        //B=BitBtn1;
        //*Bitmap=LoadBmp(
        Button[0][0]=BitBtn1;
        Button[0][1]=BitBtn2;
        Button[0][2]=BitBtn3;
        Button[1][0]=BitBtn4;
        Button[1][1]=BitBtn5;
        Button[1][2]=BitBtn6;
        Button[2][0]=BitBtn7;
        Button[2][1]=BitBtn8;
        Button[2][2]=BitBtn9;

        for(int i=0;i<3;i++)
            for(int j=0;j<3;j++)
                win[i][j]=0;

        //Bitmap[0]=new Graphics::TBitmap();
        //Bitmap[1]=new Graphics::TBitmap();
        //Bitmap[0]->LoadFromFile("e:\\winprog\\bbb\\t.bmp");
        //Bitmap[0]->Hide();
        //Bitmap[1]->LoadFromFile("e:\\winprog\\bbb\\2.ico");
        //Bitmap[0]->

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        //Color=(TColor)RGB(0x0,0x0,0x0);
        Ctl3D=true;
        Caption="Game";
        //Cursor=crHandPoint;
        //Canvas->Pen->Color=clWhite;
        //Canvas->MoveTo(100,100);
        //Canvas->LineTo(100,150);
        BitBtn1->Left=12;
        BitBtn1->Top=12;
        BitBtn1->Width=92;
        BitBtn1->Height=92;
        BitBtn1->Caption="";
        BitBtn1->Cursor=crHandPoint;

        BitBtn2->Left=104;
        BitBtn2->Top=12;
        BitBtn2->Width=92;
        BitBtn2->Height=92;
        BitBtn2->Caption="";
        BitBtn2->Cursor=crHandPoint;

        BitBtn3->Left=196;
        BitBtn3->Top=12;
        BitBtn3->Width=92;
        BitBtn3->Height=92;
        BitBtn3->Caption="";
        BitBtn3->Cursor=crHandPoint;

        BitBtn4->Left=12;
        BitBtn4->Top=104;
        BitBtn4->Width=92;
        BitBtn4->Height=92;
        BitBtn4->Caption="";
        BitBtn4->Cursor=crHandPoint;

        BitBtn5->Left=104;
        BitBtn5->Top=104;
        BitBtn5->Width=92;
        BitBtn5->Height=92;
        BitBtn5->Caption="";
        BitBtn5->Cursor=crHandPoint;

        BitBtn6->Left=196;
        BitBtn6->Top=104;
        BitBtn6->Width=92;
        BitBtn6->Height=92;
        BitBtn6->Caption="";
        BitBtn6->Cursor=crHandPoint;

        BitBtn7->Left=12;
        BitBtn7->Top=196;
        BitBtn7->Width=92;
        BitBtn7->Height=92;
        BitBtn7->Caption="";
        BitBtn7->Cursor=crHandPoint;

        BitBtn8->Left=104;
        BitBtn8->Top=196;
        BitBtn8->Width=92;
        BitBtn8->Height=92;
        BitBtn8->Caption="";
        BitBtn8->Cursor=crHandPoint;

        BitBtn9->Left=196;
        BitBtn9->Top=196;
        BitBtn9->Width=92;
        BitBtn9->Height=92;
        BitBtn9->Caption="";
        BitBtn9->Cursor=crHandPoint;





}
//---------------------------------------------------------------------------

void __fastcall TForm1::MenuAboutClick(TObject *Sender)
{
        HelpForm=new THelpForm(Application);
        HelpForm->ShowModal();
        delete HelpForm;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::MenuExitClick(TObject *Sender)
{
        Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)
{
        //Canvas->Pen->Color=clRed;
        //Canvas->Font->Color=(TColor)RGB(0xff,0xff,0xff);
        //Canvas->Font->Style="宋体";
        //Canvas->TextOutA(5,5,"这是一个游戏");
        //Canvas->MoveTo(20,20);
        //Canvas->LineTo(20,100);
        /*for(int i=0;i<=3;i++)
        {
                Canvas->Pen->Color=clGreen;
                Canvas->MoveTo(12+i*92,12);
                Canvas->LineTo(12+i*92,288);
                Canvas->MoveTo(12,12+i*92);
                Canvas->LineTo(288,12+i*92);
        }
        Graphics::TBitmap *Grp;
        Grp=new Graphics::TBitmap();
        Grp->LoadFromFile("e:\\winprog\\bbb\\t.bmp");
        Canvas->Draw(12,12,Grp);*/




}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
        if(win[0][0]==0)
        {
            BitBtn1->Glyph->LoadFromFile("tt2.bmp");
            win[0][0]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
        if(win[0][1]==0)
        {
            BitBtn2->Glyph->LoadFromFile("tt2.bmp");
            win[0][1]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
        if(win[0][2]==0)
        {
            BitBtn3->Glyph->LoadFromFile("tt2.bmp");
            win[0][2]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{
        if(win[1][0]==0)
        {
            BitBtn4->Glyph->LoadFromFile("tt2.bmp");
            win[1][0]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{
        if(win[1][1]==0)
        {
            BitBtn5->Glyph->LoadFromFile("tt2.bmp");
            win[1][1]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn6Click(TObject *Sender)
{
        if(win[1][2]==0)
        {
            BitBtn6->Glyph->LoadFromFile("tt2.bmp");
            win[1][2]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn7Click(TObject *Sender)
{
        if(win[2][0]==0)
        {
            BitBtn7->Glyph->LoadFromFile("tt2.bmp");
            win[2][0]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn8Click(TObject *Sender)
{
        if(win[2][1]==0)
        {
            BitBtn8->Glyph->LoadFromFile("tt2.bmp");
            win[2][1]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn9Click(TObject *Sender)
{
        if(win[2][2]==0)
        {
            BitBtn9->Glyph->LoadFromFile("tt2.bmp");
            win[2][2]=1;
            computer_put();
            pppp();
            Flag=2;
        }
}
//---------------------------------------------------------------------------

int TForm1::computer_put()
	{
	  int l,o;
	if(win[1][1]==0)
	   {putxy(1,1,COMPUTER);win[1][1]=2;}

	/*else if(win[0][0]==win[0][1]&&win[0][1]==win[0][2]&&win[0][2]==win[1][0]&&win[1][0]==win[2][0]&&win[2][0]==win[2][1]&&win[2][1]==win[2][2]&&win[2][2]==win[1][2]&&win[1][2]==win[0][2]&&win[0][2]==1)
	  {put(0,0,COMPUTER);
	  win[0][0]=2;}*/
	   else if(win[0][0]==win[0][1]&&win[0][0]==1&&win[0][2]==0)
	   {putxy(0,2,COMPUTER);win[0][2]=2;}
	   else if(win[0][0]==win[0][2]&&win[0][0]==1&&win[0][1]==0)
	   {putxy(0,1,COMPUTER);win[0][1]=2;}
	   else if(win[0][1]==win[0][2]&&win[0][1]==1&&win[0][0]==0)
	   {putxy(0,0,COMPUTER);win[0][0]=2;}
	   else if(win[0][0]==win[1][0]&&win[0][0]==1&&win[2][0]==0)
	   {putxy(2,0,COMPUTER);win[2][0]=2;}
	   else if(win[0][0]==win[2][0]&&win[0][0]==1&&win[1][0]==0)
	   {putxy(1,0,COMPUTER);win[1][0]=2;}
	   else if(win[1][0]==win[2][0]&&win[1][0]==1&&win[0][0]==0)
	   {putxy(0,0,COMPUTER);win[0][0]=2;}

	   else if(win[2][0]==win[2][1]&&win[2][0]==1&&win[2][2]==0)
	   {putxy(2,2,COMPUTER);win[2][2]=2;}
	   else if(win[2][0]==win[2][2]&&win[2][0]==1&&win[2][1]==0)
	   {putxy(2,1,COMPUTER);win[2][1]=2;}
	   else if(win[2][1]==win[2][2]&&win[2][1]==1&&win[2][0]==0)
	   {putxy(2,0,COMPUTER);win[2][0]=2;}
	   else if(win[0][2]==win[1][2]&&win[0][2]==1&&win[2][2]==0)
	   {putxy(2,2,COMPUTER);win[2][2]=2;}
	   else if(win[0][2]==win[2][2]&&win[0][2]==1&&win[1][2]==0)
	   {putxy(1,2,COMPUTER);win[1][2]=2;}
	   else if(win[1][2]==win[2][2]&&win[1][2]==1&&win[0][2]==0)
	   {putxy(0,0,COMPUTER);win[0][0]=2;}

	   else if(win[1][0]==win[1][1]&&win[1][0]==1&&win[1][2]==0)
	   {putxy(1,2,COMPUTER);win[1][2]=2;}
	   else if(win[1][0]==win[1][2]&&win[1][0]==1&&win[1][1]==0)
	   {putxy(1,1,COMPUTER);win[1][1]=2;}
	   else if(win[1][1]==win[1][2]&&win[1][1]==1&&win[1][0]==0)
	   {putxy(1,0,COMPUTER);win[1][0]=2;}
	   else if(win[0][1]==win[1][1]&&win[0][1]==1&&win[2][1]==0)
	   {putxy(2,0,COMPUTER);win[2][0]=2;}
	   else if(win[0][0]==win[2][0]&&win[0][0]==1&&win[1][0]==0)
	   {putxy(1,0,COMPUTER);win[1][0]=2;}
	   else if(win[1][0]==win[2][0]&&win[1][0]==1&&win[0][0]==0)
	   {putxy(0,0,COMPUTER);win[0][0]=2;}

	   else if(win[0][0]==win[1][1]&&win[1][1]==1&&win[2][2]==0)
	   {putxy(2,2,COMPUTER);win[2][2]=2;}
	   else if(win[1][1]==win[2][2]&&win[1][1]==1&&win[0][0]==0)
	   {putxy(0,0,COMPUTER);win[0][0]=2;}
	   else if(win[2][0]==win[1][1]&&win[1][1]==1&&win[0][2]==0)
	   {putxy(0,1,COMPUTER);win[0][1]=2;}
	   else if(win[0][2]==win[1][1]&&win[1][1]==1&&win[2][0]==0)
	   {putxy(2,0,COMPUTER);win[2][0]=2;}

	   else for(l=0;l<3;l++)
				for(o=0;o<3;o++)
					if (win[l][o]==0)
                    {
                        putxy(l,o,COMPUTER);
                        win[l][o]=2;
                        return win[l][o];
                    }
			return 3;
       //return 0;
}


//------------------------------------------------------------------------------

int TForm1::pin_who_win()
{
        int i;
	for(i=0;i<3;i++)
		if (win[i][0]==win[i][1]&&win[i][1]==win[i][2]&&win[i][0]!=0) return win[i][0];
	for(i=0;i<3;i++)
		if (win[0][i]==win[1][i]&&win[1][i]==win[2][i]&&win[0][i]!=0) return win[0][i];
	if (win[0][0]==win[1][1]&&win[1][1]==win[2][2]&&win[0][0]!=0) return win[0][0];
	else if (win[0][2]==win[1][1]&&win[1][1]==win[2][0]&&win[0][2]!=0) return win[0][2];
	else return 0;

}
//----------------------------------------------------------------------------
void TForm1::putxy(int x,int y,int who)
{
    Button[x][y]->Glyph->LoadFromFile("tt1.bmp");
}

//----------------------------------------------------------------------------
void TForm1::pppp()
{
    Form2=new TForm2(Application);
    if(pin_who_win()==1)
            {
                Form2->Label1->Caption="人胜利了";
                Form2->ShowModal();
            }
            else if(pin_who_win()==2)
            {
                Form2->Label1->Caption="电脑胜利了";
                Form2->ShowModal();
            }
    delete Form2;
}
void __fastcall TForm1::MenuNewGameClick(TObject *Sender)
{
    Flag=0;
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
        {
            Button[i][j]->Glyph=NULL;
            win[i][j]=0;
        }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -