Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

PlayBeautifull

Что у вас в буфере?

Рекомендованные сообщения

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

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

bool gp=false,pause=true,fallin=false,kvad=false,palk=false,zig1=false;

bool zig2=false,pkre=false,hk=false;

char *nextfig;

int score=0,ths=0;

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

class base {

    public:

        virtual void Paint(int x, int y, int s, const char z, bool zanul)=0;

        virtual void Fall(void)=0;

        virtual void goLeft(void)=0;

        virtual void goRight(void)=0;

        virtual void goDown(void)=0;

        virtual void checkline(int y, int h)=0;

        virtual void changeState(int x,int y)=0;

        int state,coorx,coory;

};

base *p;

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

class kvadrat : public base {

    public:

        void Paint(int x, int y, int s,  const char z, bool zanul);

        void Fall(void);

        void goLeft(void);

        void goRight(void);

        void goDown(void);

        void checkline(int y, int h);

        void changeState(int x,int y);

        int coorx,coory;

    private:

        int i;

};

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

class palka : public kvadrat {

    public:

        void Paint(int x, int y, int s,  const char z, bool zanul);

        void Fall(void);

        void goLeft(void);

        void goRight(void);

        void goDown(void);

        void changeState(int x,int y);

        int coorx,coory;

        int state;

};

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

class polukrest : public kvadrat {

    public:

        void Paint(int x, int y, int s,  const char z, bool zanul);

        void Fall(void);

        void goLeft(void);

        void goRight(void);

        void goDown(void);

        void changeState(int x,int y);

        int coorx,coory;

        int state;

};

//--------------------------------------*-----------------------------------

class zigzag1 : public kvadrat { // +*  *+

    public:                      //**    *

        void Paint(int x, int y, int s,  const char z, bool zanul);

        void Fall(void);

        void goLeft(void);

        void goRight(void);

        void goDown(void);

        void changeState(int x,int y);

        int coorx,coory;

        int state;

};

//---------------------------------------*-----------------------------------

class zigzag2 : public kvadrat { // +*  *+

    public:                      //  ** *

        void Paint(int x, int y, int s,  const char z, bool zanul);

        void Fall(void);

        void goLeft(void);

        void goRight(void);

        void goDown(void);

        void changeState(int x,int y);

        int coorx,coory;

        int state;

};

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

__fastcall TForm1::TForm1(TComponent* Owner)

    : TForm(Owner)

{

}

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

void Gameover(void)

{

    Form1->Timer1->Enabled=false;

    if (score>ths) {

        Form1->Caption="Score "+IntToStr(score);

        ths=score;

    }

    if (MessageDlg("Game over. Do you wish to play again?",

        mtInformation, TMsgDlgButtons() << mbYes << mbNo, 0) == mbNo)

        {

            Application->Terminate();

        } else

        {

            Form1->Button1Click(Form1);

            Form1->Button1Click(Form1);

        }

}

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

void GenNext(void) {

    int rnd1=random(1000);

    if (rnd1<200)    {

        nextfig="kvad";

        Form1->Label4->Caption="Kvardat next";

    }    else

    if (rnd1<400)    {

        nextfig="polukrest";

        Form1->Label4->Caption="polukrest next";

    }    else

    if (rnd1<600)    {

        nextfig="palk";

        Form1->Label4->Caption="Palka next";

    }  else

    if (rnd1<800)    {

        nextfig="zz1";

        Form1->Label4->Caption="zz1 next";

    }    else

    if (rnd1<1000)    {

        nextfig="zz2";

        Form1->Label4->Caption="zz2 next";

    }

}

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

void Spawn() {

    kvad=false;

    palk=false;

    zig1=false;

    zig2=false;

    pkre=false;

    int x,y,s;

    if (strcmp(nextfig,"kvad")==0) {

        kvad=true;

        p = new kvadrat();

        x=5;

        y=0;

        s=0;

    }    else

    if (strcmp(nextfig,"palk")==0) {

        palk=true;

        int rnd1=random(2);

        p = new palka();

        if (rnd1==0) {

            x=4;

            y=0;

            s=0;

        }    else {

            x=4;

            y=0;

            s=1;

        }

    }    else

    if (strcmp(nextfig,"polukrest")==0) {

        pkre=true;

        int rnd1=random(4);

        p = new polukrest();

        if (rnd1==0) {

            x=5;

            y=1;

            s=0;

        }    else

        if (rnd1==1) {

            x=5;

            y=1;

            s=1;

        }  else

        if (rnd1==2) {

            x=5;

            y=0;

            s=2;

        }    else

        if (rnd1==3) {

            x=5;

            y=1;

            s=3;

        }

    }    else

    if (strcmp(nextfig,"zz1")==0) {

        zig1=true;

        int rnd1=random(2);

        p = new zigzag1();

        if (rnd1==0) {

            x=5;

            y=0;

            s=0;

        }    else

        if (rnd1==1) {

            x=5;

            y=1;

            s=1;

        }

    }    else

    if (strcmp(nextfig,"zz2")==0) {

        zig2=true;

        int rnd1=random(2);

        p = new zigzag2();

        if (rnd1==0) {

            x=5;

            y=0;

            s=0;

        }      else

        if (rnd1==1) {

            x=5;

            y=1;

            s=1;

        }

    }

    p->Paint(x,y,s,*"down",true);

    if (hk&&Form1->Timer1->Interval>100) {

        Form1->Timer1->Interval-=5;

    }

}

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

void kvadrat::changeState(int x,int y) {

    Sleep(1);

}

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

void kvadrat::Paint(int x, int y, int s, char z, bool zanul) {

    coorx=x;

    coory=y;

    state=s;

    char key=z;

    Form1->StringGrid1->Cells[coorx][coory]="";

    Form1->StringGrid1->Cells[coorx+1][coory]="";

    Form1->StringGrid1->Cells[coorx][coory+1]="";

    Form1->StringGrid1->Cells[coorx+1][coory+1]="";

    if ((key==*"down")&&(coory<18)&&

        (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

        (Form1->StringGrid1->Cells[coorx+1][coory+2]=="")) {

            coory++;

    }  else

    if ((key==*"left")&&coorx>0&&

        (Form1->StringGrid1->Cells[coorx-1][coory]=="")&&

        (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")) {

        coorx--;

    }  else

    if ((key==*"right")&&(coorx<9)&&

        (Form1->StringGrid1->Cells[coorx+2][coory]=="")&&

        (Form1->StringGrid1->Cells[coorx+2][coory+1]=="")) {

        coorx++;

    }  else

    if (key==*"fall") {

    }

    Form1->StringGrid1->Cells[coorx][coory]="*";

    Form1->StringGrid1->Cells[coorx+1][coory]="*";

    Form1->StringGrid1->Cells[coorx][coory+1]="*";

    Form1->StringGrid1->Cells[coorx+1][coory+1]="*";

    p->coorx=coorx;

    p->coory=coory;

}

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

void kvadrat::Fall(void) {

if ((Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

    (Form1->StringGrid1->Cells[coorx+1][coory+2]=="")&&

    (coory<18))

{

    fallin=true;

    Form1->StringGrid1->Cells[coorx][coory]="";

    Form1->StringGrid1->Cells[coorx+1][coory]="";

    Form1->StringGrid1->Cells[coorx][coory+1]="";

    Form1->StringGrid1->Cells[coorx+1][coory+1]="";

    coory++;

    Paint(coorx,coory,state,*"fall",true);

}    else

if ((coorx==5)&&(coory==0)) {

        Gameover();

}    else

{

    Form1->Timer1->Enabled=false;

    fallin=false;

    checkline(coory,1);

    Spawn();

    GenNext();

    Form1->Timer1->Enabled=true;

}

p->coorx=coorx;

p->coory=coory;

}

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

void kvadrat::goDown() {

    Paint(coorx,coory,state,*"down",true);

}

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

void kvadrat::goLeft() {

    Paint(coorx,coory,state,*"left",true);

}

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

void kvadrat::goRight() {

    Paint(coorx,coory,state,*"right",true);

}

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

void kvadrat::checkline(int y, int h)    {

    int kory=y;

    int cnt=h+1;

    int hv=h;

    do {

        int kolt=0;

        for (i=0;i<11;i++)  {

            if (Form1->StringGrid1->Cells[kory+hv]=="*") {

                kolt++;

            }

        }

        if (kolt==11) {

            for (int i=0;i<11;i++)

                for (int j=y+hv;j>=1;j--)

                    Form1->StringGrid1->Cells[j]=Form1->StringGrid1->Cells[j-1];

            for (int i = 0; i < 11; i++) {

                Form1->StringGrid1->Cells[0]="";

            }

            if (hk) {

                score+=30;

            }    else {

                score+=10;

            }

            Form1->Label3->Caption="Score "+IntToStr(score);

        }    else

        {

            hv--;

        }

        cnt--;

    }    while (cnt>0);

}

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

void palka::Paint(int x, int y, int s,  char z, bool zanul)  {

    state=s;

    coorx=x;

    coory=y;

    char key=z;

    if (state==0) {  //лежит

        if (zanul==true) {

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx+2][coory]="";

            Form1->StringGrid1->Cells[coorx+3][coory]="";

        }

        if ((key==*"down")&&(coory<19)&&

            (Form1->StringGrid1->Cells[coorx][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+3][coory+1]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>0)&&

            (Form1->StringGrid1->Cells[coorx-1][coory]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<7)&&

            (Form1->StringGrid1->Cells[coorx+4][coory]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx+1][coory]="*";

        Form1->StringGrid1->Cells[coorx+2][coory]="*";

        Form1->StringGrid1->Cells[coorx+3][coory]="*";

    }    else

    if (state==1) { //стоит

        if (zanul==true) {

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx][coory+2]="";

            Form1->StringGrid1->Cells[coorx][coory+3]="";

        }

        if ((key==*"down")&&(coory<16)&&

            (Form1->StringGrid1->Cells[coorx][coory+4]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&coorx>0&&

            (Form1->StringGrid1->Cells[coorx-1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+3]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<10)&&

            (Form1->StringGrid1->Cells[coorx+1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+3]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

        Form1->StringGrid1->Cells[coorx][coory+2]="*";

        Form1->StringGrid1->Cells[coorx][coory+3]="*";

    }

    p->coorx=coorx;

    p->coory=coory;

}

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

void palka::Fall(void){

    if (state==0) {  //лежит

        if ((Form1->StringGrid1->Cells[coorx][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+3][coory+1]=="")&&

            (coory<19))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx+2][coory]="";

            Form1->StringGrid1->Cells[coorx+3][coory]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==4)&&(coory==0)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory,0);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }

    }    else

    if (state==1) { //стоит

        if ((Form1->StringGrid1->Cells[coorx][coory+4]=="")&&

            (coory<16))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx][coory+2]="";

            Form1->StringGrid1->Cells[coorx][coory+3]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==0)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory,3);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void palka::goDown(void) {

    Paint(coorx,coory,state,*"down",true);

}

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

void palka::goLeft(void) {

    Paint(coorx,coory,state,*"left",true);

}

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

void palka::goRight() {

    Paint(coorx,coory,state,*"right",true);

}

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

void palka::changeState(int x, int y) {

    coorx=x;

    coory=y;

    if ((state==0)&&(coory>1)&&(coory<=17)) {//палка лежала

        if ((Form1->StringGrid1->Cells[coorx+2][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory+2]=="")) {

            state=1;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx+2][coory]="";

            Form1->StringGrid1->Cells[coorx+3][coory]="";

            coorx=coorx+2;

            coory=coory-1;

            Paint(coorx,coory,state,*"fall", false);

        }

    }    else

    if ((state==1)&&(coorx>=2)&&(coorx<=9)) {//палка стояла

        if ((Form1->StringGrid1->Cells[coorx-2][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            state=0;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx][coory+2]="";

            Form1->StringGrid1->Cells[coorx][coory+3]="";

            coorx=coorx-2;

            coory=coory+1;

            Paint(coorx,coory,state,*"fail",false);

        }

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void polukrest::Paint(int x, int y, int s, char z, bool zanul)  {

    state=s;

    coorx=x;

    coory=y;

    char key=z;      //        *    +-ось

    if (state==0) {  //default  *+*    *-остальные

        if (zanul==true) {

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

        }

        if ((key==*"down")&&(coory<18)&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>1)&&

            (Form1->StringGrid1->Cells[coorx-2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory-1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<9)&&

            (Form1->StringGrid1->Cells[coorx+1][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx-1][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory-1]="*";

        Form1->StringGrid1->Cells[coorx+1][coory]="*";

    }    else        //      *

    if (state==1) { //pol1    +*

        if (zanul==true) { // *

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

        }

        if ((key==*"down")&&(coory<18)&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>0)&&

            (Form1->StringGrid1->Cells[coorx-1][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<9)&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory-1]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

        Form1->StringGrid1->Cells[coorx+1][coory]="*";

    }    else

    if (state==2) { //pol2  *+*

        if (zanul==true) { // *

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

        }

        if ((key==*"down")&&(coory<19)&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coory++;

        }  else

        if ((key==*"left")&&(coorx>1)&&

            (Form1->StringGrid1->Cells[coorx-2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<9)&&

            (Form1->StringGrid1->Cells[coorx+2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx-1][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

        Form1->StringGrid1->Cells[coorx+1][coory]="*";

    }    else        //      *    + - ось

    if (state==3) { //pol3  *+    * - ост

        if (zanul==true) { // *

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

        }

        if ((key==*"down")&&(coory<18)&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>1)&&

            (Form1->StringGrid1->Cells[coorx-1][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx-2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<10)&&

            (Form1->StringGrid1->Cells[coorx+1][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory-1]="*";

        Form1->StringGrid1->Cells[coorx-1][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void polukrest::Fall(void){  // *

    if (state==0) {          //*+*

        if ((Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (coory<19))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==1)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory-1,1);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }          // *

    }    else        // +*

    if (state==1) { // *

        if ((Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (coory<18))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==1)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory-1,2);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }

    }      else        //*+*

    if (state==2) { // *

        if ((Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (coory<18))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==0)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory,1);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }          // *

    }    else        //*+

    if (state==3) { // *

        if ((Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (coory<18))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx][coory-1]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==6)&&(coory==1)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory-1,2);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void polukrest::goDown(void) {

    Paint(coorx,coory,state,*"down",true);

}

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

void polukrest::goLeft(void) {

    Paint(coorx,coory,state,*"left",true);

}

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

void polukrest::goRight() {

    Paint(coorx,coory,state,*"right",true);

}

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

void polukrest::changeState(int x, int y) {  // *

    if ((state==0)&&(y<=18)) {              // *+*

        if (Form1->StringGrid1->Cells[x][y+1]=="") {

            state=1;

            Form1->StringGrid1->Cells[x][y]="";

            Form1->StringGrid1->Cells[x-1][y]="";

            Form1->StringGrid1->Cells[x+1][y]="";

            Form1->StringGrid1->Cells[x][y-1]="";

            Paint(coorx,coory,state,*"fall", false);

        }                            // *

    }    else                        // +*

    if ((state==1)&&(x>0)) {        // *

        if (Form1->StringGrid1->Cells[x-1][y]=="") {

            state=2;

            Form1->StringGrid1->Cells[x][y]="";

            Form1->StringGrid1->Cells[x][y-1]="";

            Form1->StringGrid1->Cells[x][y+1]="";

            Form1->StringGrid1->Cells[x+1][y]="";

            Paint(coorx,coory,state,*"fail",false);

        }

    }    else                        // *+*

    if ((state==2)&&(y>0)) {        //  *

        if (Form1->StringGrid1->Cells[x][y-1]=="") {

            state=3;

            Form1->StringGrid1->Cells[x][y]="";

            Form1->StringGrid1->Cells[x-1][y]="";

            Form1->StringGrid1->Cells[x+1][y]="";

            Form1->StringGrid1->Cells[x][y+1]="";

            Paint(coorx,coory,state,*"fail",false);

        }                            //  *

    }    else                        // *+

    if ((state==3)&&(x<10)) {        //  *

        if (Form1->StringGrid1->Cells[x+1][y]=="") {

            state=0;

            Form1->StringGrid1->Cells[x][y]="";

            Form1->StringGrid1->Cells[x][y-1]="";

            Form1->StringGrid1->Cells[x][y+1]="";

            Form1->StringGrid1->Cells[x-1][y]="";

            Paint(coorx,coory,state,*"fail",false);

        }

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void zigzag1::Paint(int x, int y, int s,  char z, bool zanul)  {

    state=s;

    coorx=x;

    coory=y;

    char key=z;      // +*

    if (state==0) {  //**

        if (zanul==true) {

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx-1][coory+1]="";

        }

        if ((key==*"down")&&(coory<18)&&

            (Form1->StringGrid1->Cells[coorx-1][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>1)&&

            (Form1->StringGrid1->Cells[coorx-1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-2][coory+1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<9)&&

            (Form1->StringGrid1->Cells[coorx+2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx+1][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

        Form1->StringGrid1->Cells[coorx-1][coory+1]="*";

    }    else        //      *

    if (state==1) { //      *+

        if (zanul==true) { // *

            Form1->StringGrid1->Cells[coorx-1][coory-1]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx][coory]="";

        }

        if ((key==*"down")&&(coory<18)&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")) {

                coory++;

        }  else

        if ((key==*"left")&&(coorx>1)&&

            (Form1->StringGrid1->Cells[coorx-2][coory-1]=="")&&

            (Form1->StringGrid1->Cells[coorx-2][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory+1]=="")) {

            coorx--;

        }  else

        if ((key==*"right")&&(coorx<10)&&

            (Form1->StringGrid1->Cells[coorx][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")) {

            coorx++;

        }  else

        if (key==*"fall") {

        }

        Form1->StringGrid1->Cells[coorx-1][coory-1]="*";

        Form1->StringGrid1->Cells[coorx-1][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory]="*";

        Form1->StringGrid1->Cells[coorx][coory+1]="*";

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void zigzag1::Fall(void){ // +*

    if (state==0) {  //    **

        if ((Form1->StringGrid1->Cells[coorx-1][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory+1]=="")&&

            (coory<18))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx-1][coory+1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==0)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory,1);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }          //*

    }    else        //*+

    if (state==1) { // *

        if ((Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx][coory+2]=="")&&

            (coory<18))    {

            fallin=true;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory-1]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            coory++;

            Paint(coorx,coory,state,*"fall",true);

        }    else

        if ((coorx==5)&&(coory==1)) {

            Gameover();

        }    else    {

            Form1->Timer1->Enabled=false;

            fallin=false;

            checkline(coory-1,2);

            Spawn();

            GenNext();

            Form1->Timer1->Enabled=true;

        }

    }

    p->coorx=coorx;

    p->coory=coory;

    p->state=state;

}

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

void zigzag1::goDown(void) {

    Paint(coorx,coory,state,*"down",true);

}

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

void zigzag1::goLeft(void) {

    Paint(coorx,coory,state,*"left",true);

}

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

void zigzag1::goRight() {

    Paint(coorx,coory,state,*"right",true);

}

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

void zigzag1::changeState(int x, int y) {

    coorx=x;

    coory=y;

    if ((state==0)&&(coory>0)&&(coory<19)) {

        if ((Form1->StringGrid1->Cells[coorx-1][coory]=="")&&

            (Form1->StringGrid1->Cells[coorx-1][coory-1]=="")) {

            state=1;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx+1][coory]="";

            Form1->StringGrid1->Cells[coorx][coory+1]="";

            Form1->StringGrid1->Cells[coorx-1][coory+1]="";

            Paint(coorx,coory,state,*"fall", false);

        }                            // *

    }    else                        // *+

    if ((state==1)&&(coorx>=2)&&(coorx<=9)) {//  *

        if ((Form1->StringGrid1->Cells[coorx-1][coory+1]=="")&&

            (Form1->StringGrid1->Cells[coorx+1][coory]=="")) {

            state=0;

            Form1->StringGrid1->Cells[coorx][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory]="";

            Form1->StringGrid1->Cells[coorx-1][coory-1]="";

            For

Поделиться сообщением


Ссылка на сообщение

void :hmm:

Поделиться сообщением


Ссылка на сообщение

Поделиться сообщением


Ссылка на сообщение

голый вилат смотреть онлайн


milcky.png

Поделиться сообщением


Ссылка на сообщение
Гость

void наблюдает за этой темой

Поделиться сообщением


Ссылка на сообщение

СУКА НЕДЕЛЮ ДАЙТЕ ЕМУ


Банни такая Банни

x_7b9edc10.jpg

Поделиться сообщением


Ссылка на сообщение

монстр с острова, ты чё такой серьезный ? :)


 

<3 Laudy

nNsUdk8rxTo.jpg

 

Архонопека

RLfij.gif

 

Мой фриз <3

[10:04:52 PM] frz: На самом деле ноксвиля сначала назвали фантомлансером

[10:04:57 PM] frz: но потом решили что это зашквар

 

Поделиться сообщением


Ссылка на сообщение

выебывание матери афтора,

Поделиться сообщением


Ссылка на сообщение

СУКА НЕДЕЛЮ ДАЙТЕ ЕМУ

sarcasticANI2.gif

https://i.imgur.com/YK3s1Z4.png

Поделиться сообщением


Ссылка на сообщение

СУКА НЕДЕЛЮ ДАЙТЕ ЕМУ

sarcasticANI2.gif

:trollface:

Поделиться сообщением


Ссылка на сообщение

а нту ничо  :smile:


post-88631-0-03416700-1402718754.gif

Поделиться сообщением


Ссылка на сообщение

46.174.52.37:27015

Поделиться сообщением


Ссылка на сообщение

Хз , фаза-генератор наверно  :dunno:


[media=]

[/media]

Поделиться сообщением


Ссылка на сообщение

<MYM|PlaymatE|RZ> yea

<MYM|PlaymatE|RZ> mame privt

<MYM|PlaymatE|RZ> privet

<MYM|PlaymatE|RZ> :P

<pd|knoxville> yy

<pd|knoxville> mamy tvoyu ebal

<MYM|PlaymatE|RZ> i learn

<MYM|PlaymatE|RZ> in iccup

<pd|knoxville> yy

<MYM|PlaymatE|RZ> mas rus uebki there


 

<3 Laudy

nNsUdk8rxTo.jpg

 

Архонопека

RLfij.gif

 

Мой фриз <3

[10:04:52 PM] frz: На самом деле ноксвиля сначала назвали фантомлансером

[10:04:57 PM] frz: но потом решили что это зашквар

 

Поделиться сообщением


Ссылка на сообщение
avatar_29644_1303828446.gif

hs228.png
PROFIT Velen

1jYI7i0.jpg

 

There is a rainbow in the sky

sun.gif     rainbowsmile.gif

Поделиться сообщением


Ссылка на сообщение

-ЛЕБОВСКИ ГДЕ ДЕНЬГИ?

-БРБЛРБРЛРБР... Я незнаю

-БРБРЛРБРЛРБР

-ЛЕБОВСКИ ГДЕ ДЕНЬГИ?

-ПОГОДИ, ЩАС ПОСМОТРЮ

-БЛРБРЛРБРЛРБРЛР

ee0777644e9f.jpg

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...