📄 els_cpp.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "els_cpp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Tels *els;
int scrxy[18][12];
int rem=BLUE;
int leveltime=1000;
int sc=0;//,isstop;
//---------------------------------------------------------------------------
__fastcall Tels::Tels(TComponent* Owner)
: TForm(Owner)
{
els->Level11->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall Tels::Start1Click(TObject *Sender)
{
game=new Tgame(true);
Start1->Enabled=false;
Stop1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall Tels::Stop1Click(TObject *Sender)
{
game->Terminate();
Start1->Enabled=true;
Stop1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall Tels::Level11Click(TObject *Sender)
{
els->Level11->Checked=true;
els->Level21->Checked=false;
els->Level31->Checked=false;
leveltime=1000;
}
//---------------------------------------------------------------------------
void __fastcall Tels::Level21Click(TObject *Sender)
{
els->Level21->Checked=true;
els->Level11->Checked=false;
els->Level31->Checked=false;
leveltime=500;
}
//---------------------------------------------------------------------------
void __fastcall Tels::Level31Click(TObject *Sender)
{
els->Level31->Checked=true;
els->Level11->Checked=false;
els->Level21->Checked=false;
leveltime=200;
}
//---------------------------------------------------------------------------
__fastcall Tgame::Tgame(bool CreateSuspended)//线程构造函数
: TThread(true)
{
//isstop=0;
scr=new TScr();
jm=new TJm(rand());
FreeOnTerminate=true;
Resume();
}
//---------------------------------------------------------------------------
void __fastcall Tgame::Execute()//线程执行函数
{
//---- Place thread code here ----
while(Terminated==false)
{
scr->show();
jm->down();
scr->show();
Sleep(leveltime);
jm->test();
scr->show();
}
}
//---------------------------------------------------------------------------
void __fastcall Tels::FormClose(TObject *Sender, TCloseAction &Action)
{
if(game)
{
game->Terminate();
}
ShowMessage("作者:韩曦!");
}
//---------------------------------------------------------------------------
void __fastcall Tels::Exit1Click(TObject *Sender)
{
els->Close();
}
//---------------------------------------------------------------------------
void __fastcall Tels::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
switch(Key)
{
case KEYLEFT:
if(els->game->jm->ax==0 || els->game->jm->bx==0
|| els->game->jm->cx==0 || els->game->jm->dx==0)
break;
switch(els->game->jm->lb)
{
case MODE1:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL)
left();
break;
case FX2:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
}
break;
case MODE2:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX2:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX3:
if(scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX4:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL)
left();
break;
}
break;
case MODE3:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX2:
if(scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX3:
if(scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX4:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL)
left();
break;
}
break;
case MODE4:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX2:
if(scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
}
break;
case MODE5:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX2:
if(
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
}
break;
case MODE6:
switch(els->game->jm->fx)
{
case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL)
left();
break;
case FX2:
if(scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX3:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
case FX4:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->by][els->game->jm->bx-1]!=FULL&&
scrxy[els->game->jm->dy][els->game->jm->dx-1]!=FULL)
left();
break;
}
break;
case MODE7:
switch(els->game->jm->fx)
{ case FX1:
if(scrxy[els->game->jm->ay][els->game->jm->ax-1]!=FULL&&
scrxy[els->game->jm->cy][els->game->jm->cx-1]!=FULL)
left();
break;
}
break;
}
break;
case KEYRIGHT:
if(els->game->jm->ax==11 || els->game->jm->bx==11
|| els->game->jm->cx==11 || els->game->jm->dx==11)
break;
switch(els->game->jm->lb)
{
case MODE1:
switch(els->game->jm->fx)
{
case FX1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -