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

📄 els_cpp.cpp

📁 俄罗斯方块 俄罗斯方块 俄罗斯方块
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//---------------------------------------------------------------------------

#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 + -