Cheating Tetris
#include <IOSTREAM>
#include <CTIME>
#include <CSTDLIB>
#include <VECTor>
#include <CONIO.H>
#include <WINDOWS.H>
void SETCOLor(unsigned char color){HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hcon,color);}
void SP(int spalva){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), spalva);}
void SK(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);}
// 2013-05-24a 5:44PM
class MAINCLASS
{
protected:
int A,SIZEOFVECTor,RANDOMBLOCKNUMBER;
int X,O;
int Q1;
int LO;
int YES,NO;
int VEKTorIAUSILGIS;
int SCorE;
char WALL ,BLOCK ;
char map[520];
public:
MAINCLASS()
{
O = 0;
A = 0;
Q1 = 0;
YES = 0;
LO = 0;
SCorE = 0;
NO = 0;
WALL = 219;
BLOCK = 219;
VEKTorIAUSILGIS = 500;
};
/*/////////////////////////////////////////////////////////////*/
void SquareBlock ();
void SquareMoving ();
void PIRMAS ();
/*/////////////////////////////////////////////////////////////*/
void LineBlock ();
void LineMoving ();
void ANTRAS ();
/*/////////////////////////////////////////////////////////////*/
void TriangleBlock ();
void TriangleMoving ();
void TRECIAS ();
/*/////////////////////////////////////////////////////////////*/
void L_Block ();
void L_Moving ();
void KETVIRTAS ();
/*/////////////////////////////////////////////////////////////*/
void FourBlock ();
void FourMoving ();
void PENKTAS ();
/*/////////////////////////////////////////////////////////////*/
void VerticalBlock ();
void VerticalMoving ();
void SESTAS ();
/*/////////////////////////////////////////////////////////////*/
void Triangle2Block ();
void Triangle2Moving ();
void SEPTintAS ();
/*/////////////////////////////////////////////////////////////*/
void Triangle3Block ();
void Triangle3Moving ();
void ASTUNTAS ();
/*////////////////////////////////////////////////////////////*/
void Triangle4Block ();
void Triangle4Moving ();
void DEVintAS ();
/*////////////////////////////////////////////////////////////*/
void L2_Block ();
void L2_Moving ();
void DESIMTAS ();
/*////////////////////////////////////////////////////////////*/
void L3_Block ();
void L3_Moving ();
void VIENUOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void L4_Block ();
void L4_Moving ();
void DVYLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four2Block ();
void Four2Moving ();
void TRYLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four3Block ();
void Four3Moving ();
void KETURIOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four4Block ();
void Four4Moving ();
void PENKIOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void CHECKforLINE ();
void CLEARSCREEN ();
void DRAWmap ();
void RANDOMFIGURE ();
void GAMEVOR ();
////////////////////////////////////////////////////////////////
};
int main()
{
srand((unsigned)time(0));
MAINCLASS FOXEFDE;
FOXEFDE.GAMEVOR();
FOXEFDE.RANDOMFIGURE();
}
void MAINCLASS::DRAWmap()
{
if(map[14] and map[17] and map[19] == BLOCK)
{
std::cout << "GAMEOVER\n";
std::cout << "LALALALALA";
delete map;
Sleep(400);
MAINCLASS FOXEFDE;
FOXEFDE.GAMEVOR();
FOXEFDE.RANDOMFIGURE();
}
if(O == 0){for(int P = 0 ;P < 500 ;P++){map[P] = ' ';}O++;};
CLEARSCREEN();
std::cout << "YOU EARNED " << SCorE << " DOLLERS" <<std::endl;
for(int TEMP = 0 ; TEMP < VEKTorIAUSILGIS; TEMP++)
{
if(Q1%20 == 0)
{
std::cout << char(219) << std::endl << " " << char(219);
} ;
Q1++;
if(map[TEMP]!=BLOCK)
{
std::cout << map[TEMP];
}
else
{
map[TEMP] = 219;
SP(667);
std::cout << map[TEMP];
SK();
}
};
SETCOLor(12);
std::cout << char(219) << std:: endl << " " << char(219);
for(int ANY = 500 ; ANY < 520 ; ANY++)
{
map[ANY] = BLOCK;
std::cout << map[ANY];
}
std::cout << char(219);
std::cout << "\n\nA W S D TO MOVE , NOT a w s d ! ! ! ! W - CHANGE BLOCK'S FORM";
}
void MAINCLASS::PIRMAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X +20] = ' ';
map[X +21] = ' ';
}
void MAINCLASS::SquareBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X +20] = BLOCK;
map[X +21] = BLOCK;
}
DRAWmap();
if(map[X +41] == BLOCK or map[X + 40] == BLOCK )
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
SquareMoving();
}
}
void MAINCLASS::SquareMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1) % 20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
PIRMAS();
};
X+=20;
SquareBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PIRMAS();
};
X-=1;
SquareBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PIRMAS();
};
X+=1;
SquareBlock ();
}
else
{
if(X >= 20)
{
PIRMAS();
};
X+=20;
Sleep(120);
SquareBlock ();
}
}
if(X >= 20)
{
PIRMAS();
};
X+=20;
Sleep(120);
SquareBlock ();
}
void MAINCLASS::ANTRAS()
{
map[X ] = ' ';
map[X - 1] = ' ';
map[X + 1] = ' ';
map[X + 2] = ' ';
}
void MAINCLASS::LineBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X + 1 ] = BLOCK;
map[X + 2 ] = BLOCK;
map[X - 1 ] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 22] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
LineMoving();
}
}
void MAINCLASS::LineMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
ANTRAS();
};
X+=20;
LineBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
ANTRAS();
};
X-=1;
LineBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
ANTRAS();
};
X+=1;
LineBlock ();
}
else if (INPUT == 'W' && X < 440)
{
ANTRAS();
VerticalBlock();
}
else{
if(X >= 20)
{
ANTRAS();
};
X+=20;
Sleep(120);
Sleep(120);
LineBlock ();
}
}
if(X >= 20)
{
ANTRAS();
};
X+=20;
Sleep(120);
LineBlock ();
}
void MAINCLASS::TRECIAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::TriangleBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X - 20] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
TriangleMoving();
}
}
void MAINCLASS::TriangleMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
TRECIAS();
};
X+=20;
TriangleBlock();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
TRECIAS();
};
X-=1;
TriangleBlock();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
TRECIAS();
};
X+=1;
TriangleBlock();
}
else if (INPUT == 'W')
{
TRECIAS();
Triangle4Block();
}
else
{
if(X >= 20)
{
TRECIAS();
};
X+=20;
Sleep(120);
TriangleBlock();
}
}
if(X >= 20)
{
TRECIAS();
};
X+=20;
Sleep(120);
TriangleBlock();
}
void MAINCLASS::KETVIRTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
map[X - 21] = ' ';
}
void MAINCLASS::L_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
map[X - 21] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L_Moving();
}
}
void MAINCLASS::L_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
L_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
KETVIRTAS();
};
X-=1;
L_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
KETVIRTAS();
};
X+=1;
L_Block ();
}
else if (INPUT == 'W')
{
KETVIRTAS();
L4_Block ();
}
else
{
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
Sleep(120);
L_Block ();
}
}
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
Sleep(120);
L_Block ();
}
void MAINCLASS::PENKTAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 1] = ' ';
map[X + 21] = ' ';
}
void MAINCLASS::FourBlock ()
{
Sleep(35);
if(X > 20)
{
map[X] = BLOCK;
map[X - 20] = BLOCK;
map[X + 21] = BLOCK;
map[X + 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 41] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
FourMoving();
}
}
void MAINCLASS::FourMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
PENKTAS();
};
X+=20;
FourBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PENKTAS();
};
X-=1;
FourBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PENKTAS();
};
X+=1;
FourBlock ();
}
else if (INPUT == 'W')
{
PENKTAS();
Four4Block ();
}
else
{
if(X >= 20)
{
PENKTAS();
};
X+=20;
Sleep(120);
FourBlock ();
}
}
if(X >= 20)
{
PENKTAS();
};
X+=20;
Sleep(120);
FourBlock ();
}
void MAINCLASS::SESTAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 40] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::VerticalBlock()
{;
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 40] = BLOCK;
map[X + 20] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 60] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
VerticalMoving();
}
}
void MAINCLASS::VerticalMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
SESTAS();
};
X+=20;
VerticalBlock();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
SESTAS();
};
X-=1;
VerticalBlock();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
SESTAS();
};
X+=1;
VerticalBlock();
}
else if (INPUT == 'W')
{
SESTAS();
LineBlock ();
}
else
{
if(X >= 20)
{
SESTAS();
};
X+=20;
Sleep(120);
VerticalBlock();
}
}
if(X >= 20)
{
SESTAS();
};
X+=20;
Sleep(120);
VerticalBlock();
}
void MAINCLASS::SEPTintAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X + 20] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::Triangle2Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 20] = BLOCK;
map[X + 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle2Moving();
}
}
void MAINCLASS::Triangle2Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Triangle2Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
SEPTintAS();
};
X-=1;
Triangle2Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
SEPTintAS();
};
X+=1;
Triangle2Block();
}
else if (INPUT == 'W')
{
SEPTintAS();
TriangleBlock();
}
else
{
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Sleep(120);
Triangle2Block();
}
}
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Sleep(120);
Triangle2Block();
}
void MAINCLASS::ASTUNTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X + 20] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::Triangle3Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X + 20] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 19] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle3Moving();
}
}
void MAINCLASS::Triangle3Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Triangle3Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
ASTUNTAS();
};
X-=1;
Triangle3Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
ASTUNTAS();
};
X+=1;
Triangle3Block();
}
else if (INPUT == 'W')
{
ASTUNTAS();
Triangle2Block();
}
else
{
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Sleep(120);
Triangle3Block();
}
}
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Sleep(120);
Triangle3Block();
}
void MAINCLASS::DEVintAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X - 1] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::Triangle4Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 1] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle4Moving();
}
}
void MAINCLASS::Triangle4Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DEVintAS();
};
X+=20;
Triangle4Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DEVintAS();
};
X-=1;
Triangle4Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DEVintAS();
};
X+=1;
Triangle4Block();
}
else if (INPUT == 'W')
{
DEVintAS();
Triangle3Block();
}
else
{
if(X >= 20)
{
DEVintAS();
};
X+=20;
Sleep(120);
Triangle4Block();
}
}
if(X >= 20)
{
DEVintAS();
};
X+=20;
Sleep(120);
Triangle4Block();
}
void MAINCLASS::DESIMTAS()
{
map[X ] = ' ';
map[X - 19] = ' ';
map[X - 20] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::L2_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X - 19] = BLOCK;
map[X - 20] = BLOCK;
map[X + 20] = BLOCK;
}
DRAWmap();
if(map[X + 1] == BLOCK or map[X + 40] == BLOCK )
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L2_Moving();
}
}
void MAINCLASS::L2_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DESIMTAS();
};
X+=20;
L2_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DESIMTAS();
};
X-=1;
L2_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DESIMTAS();
};
X+=1;
L2_Block ();
}
else if (INPUT == 'W')
{
DESIMTAS();
L_Block ();
}
else
{
if(X >= 20)
{
DESIMTAS();
};
X+=20;
Sleep(120);
L2_Block ();
}
}
if(X >= 20)
{
DESIMTAS();
};
X+=20;
Sleep(120);
L2_Block ();
}
void MAINCLASS::VIENUOLIKTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
map[X + 21] = ' ';
}
void MAINCLASS::L3_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 21] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 41] == BLOCK or map[X + 20] == BLOCK or map[X +19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L3_Moving();
}
}
void MAINCLASS::L3_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
L3_Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X-=1;
L3_Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=1;
L3_Block();
}
else if (INPUT == 'W')
{
VIENUOLIKTAS();
L2_Block();
}
else
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
Sleep(120);
VIENUOLIKTAS();
}
}
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
Sleep(120);
L3_Block();
}
void MAINCLASS::DVYLIKTAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X + 19] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::L4_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X + 19] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 39] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L4_Moving();
}
}
void MAINCLASS::L4_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
L4_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DVYLIKTAS();
};
X-=1;
L4_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=1;
L4_Block ();
}
else if (INPUT == 'W')
{
DVYLIKTAS();
L3_Block ();
}
else
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
Sleep(120);
L4_Block ();
}
}
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
Sleep(120);
L4_Block();
}
void MAINCLASS::TRYLIKTAS()
{
map[X + 1] = ' ';
map[X + 19] = ' ';
map[X ] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::Four2Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 19] = BLOCK;
map[X + 1] = BLOCK;
map[X + 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 39] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four2Moving();
}
}
void MAINCLASS::Four2Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Four2Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
TRYLIKTAS();
};
X-=1;
Four2Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=1;
Four2Block ();
}
else if (INPUT == 'W')
{
TRYLIKTAS();
FourBlock ();
}
else
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Sleep(120);
Four2Block ();
}
}
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Sleep(120);
Four2Block ();
}
void MAINCLASS::KETURIOLIKTAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X - 21] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::Four3Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 21] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X - 19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four3Moving();
}
}
void MAINCLASS::Four3Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Four3Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X-=1;
Four3Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=1;
Four3Block ();
}
else if (INPUT == 'W')
{
KETURIOLIKTAS();
Four2Block ();
}
else
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Sleep(120);
Four3Block ();
}
}
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Sleep(120);
Four3Block ();
}
void MAINCLASS::PENKIOLIKTAS()
{
map[X - 1] = ' ';
map[X - 20] = ' ';
map[X - 19] = ' ';
map[X ] = ' ';
}
void MAINCLASS::Four4Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X - 20] = BLOCK;
map[X - 19] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or map[X + 19] == BLOCK or map[X + 1] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four4Moving();
}
}
void MAINCLASS::Four4Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Four4Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X-=1;
Four4Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=1;
Four4Block ();
}
else if (INPUT == 'W')
{
PENKIOLIKTAS();
Four3Block ();
}
else
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Sleep(120);
Four4Block ();
}
}
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Sleep(120);
Four4Block ();
}
void MAINCLASS::RANDOMFIGURE()
{
X =rand() % 17 + 2 ;
RANDOMBLOCKNUMBER = rand() % 15 + 1;
X+=40;
switch(RANDOMBLOCKNUMBER)
{
case 1:
SquareBlock ();
case 2:
TriangleBlock ();
case 3:
L_Block ();
case 4:
LineBlock ();
case 5:
FourBlock ();
case 6:
Four2Block ();
case 7:
Four3Block ();
case 8:
Four4Block ();
case 9:
L2_Block ();
case 10:
L3_Moving ();
case 11:
L4_Block ();
case 12:
VerticalBlock ();
case 13:
Triangle2Block ();
case 14:
Triangle3Block ();
case 15:
Triangle4Block ();
default:
std::cout << "IT WILL NOT HAPPEN,SorRY.";
}
}
void MAINCLASS::CHECKforLINE()
{
for(int S = 0;S < 25 ; S++)
{
if(map[1 + S * 20] == BLOCK &&
map[2 + S * 20] == BLOCK &&
map[3 + S * 20] == BLOCK &&
map[4 + S * 20] == BLOCK &&
map[5 + S * 20] == BLOCK &&
map[6 + S * 20] == BLOCK &&
map[7 + S * 20] == BLOCK &&
map[8 + S * 20] == BLOCK &&
map[9 + S * 20] == BLOCK &&
map[10 + S * 20] == BLOCK &&
map[11 + S * 20] == BLOCK &&
map[12 + S * 20] == BLOCK &&
map[13 + S * 20] == BLOCK &&
map[14 + S * 20] == BLOCK &&
map[15 + S * 20] == BLOCK &&
map[16 + S * 20] == BLOCK &&
map[17 + S * 20] == BLOCK &&
map[18 + S * 20] == BLOCK &&
map[19 + S * 20] == BLOCK &&
map[20 + S * 20] == BLOCK
)
{
S = 20 * (S - 1) + 1;
int TEMPS = 20;
for(int YES = 0 ;YES < TEMPS ; YES++)
{
map[S + YES] = ' ';
Sleep(200);
}
LO = 500-S;
}
}
if(LO!=0)
{
for(int WHATEVER = LO ; WHATEVER > 0 ; WHATEVER-- )
{
map[WHATEVER + 20 ] = map[WHATEVER];
}
}
LO = 0;
}
void MAINCLASS::CLEARSCREEN()
{
HANDLE hOut;
COORD Position;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
Position.X = 0;
Position.Y = 0;
SetConsoleCursorPosition(hOut, Position);
}
void MAINCLASS::GAMEVOR()
{
char * map = new char [520];
}
#include <CTIME>
#include <CSTDLIB>
#include <VECTor>
#include <CONIO.H>
#include <WINDOWS.H>
void SETCOLor(unsigned char color){HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hcon,color);}
void SP(int spalva){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), spalva);}
void SK(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);}
// 2013-05-24a 5:44PM
class MAINCLASS
{
protected:
int A,SIZEOFVECTor,RANDOMBLOCKNUMBER;
int X,O;
int Q1;
int LO;
int YES,NO;
int VEKTorIAUSILGIS;
int SCorE;
char WALL ,BLOCK ;
char map[520];
public:
MAINCLASS()
{
O = 0;
A = 0;
Q1 = 0;
YES = 0;
LO = 0;
SCorE = 0;
NO = 0;
WALL = 219;
BLOCK = 219;
VEKTorIAUSILGIS = 500;
};
/*/////////////////////////////////////////////////////////////*/
void SquareBlock ();
void SquareMoving ();
void PIRMAS ();
/*/////////////////////////////////////////////////////////////*/
void LineBlock ();
void LineMoving ();
void ANTRAS ();
/*/////////////////////////////////////////////////////////////*/
void TriangleBlock ();
void TriangleMoving ();
void TRECIAS ();
/*/////////////////////////////////////////////////////////////*/
void L_Block ();
void L_Moving ();
void KETVIRTAS ();
/*/////////////////////////////////////////////////////////////*/
void FourBlock ();
void FourMoving ();
void PENKTAS ();
/*/////////////////////////////////////////////////////////////*/
void VerticalBlock ();
void VerticalMoving ();
void SESTAS ();
/*/////////////////////////////////////////////////////////////*/
void Triangle2Block ();
void Triangle2Moving ();
void SEPTintAS ();
/*/////////////////////////////////////////////////////////////*/
void Triangle3Block ();
void Triangle3Moving ();
void ASTUNTAS ();
/*////////////////////////////////////////////////////////////*/
void Triangle4Block ();
void Triangle4Moving ();
void DEVintAS ();
/*////////////////////////////////////////////////////////////*/
void L2_Block ();
void L2_Moving ();
void DESIMTAS ();
/*////////////////////////////////////////////////////////////*/
void L3_Block ();
void L3_Moving ();
void VIENUOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void L4_Block ();
void L4_Moving ();
void DVYLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four2Block ();
void Four2Moving ();
void TRYLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four3Block ();
void Four3Moving ();
void KETURIOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void Four4Block ();
void Four4Moving ();
void PENKIOLIKTAS ();
/*////////////////////////////////////////////////////////////*/
void CHECKforLINE ();
void CLEARSCREEN ();
void DRAWmap ();
void RANDOMFIGURE ();
void GAMEVOR ();
////////////////////////////////////////////////////////////////
};
int main()
{
srand((unsigned)time(0));
MAINCLASS FOXEFDE;
FOXEFDE.GAMEVOR();
FOXEFDE.RANDOMFIGURE();
}
void MAINCLASS::DRAWmap()
{
if(map[14] and map[17] and map[19] == BLOCK)
{
std::cout << "GAMEOVER\n";
std::cout << "LALALALALA";
delete map;
Sleep(400);
MAINCLASS FOXEFDE;
FOXEFDE.GAMEVOR();
FOXEFDE.RANDOMFIGURE();
}
if(O == 0){for(int P = 0 ;P < 500 ;P++){map[P] = ' ';}O++;};
CLEARSCREEN();
std::cout << "YOU EARNED " << SCorE << " DOLLERS" <<std::endl;
for(int TEMP = 0 ; TEMP < VEKTorIAUSILGIS; TEMP++)
{
if(Q1%20 == 0)
{
std::cout << char(219) << std::endl << " " << char(219);
} ;
Q1++;
if(map[TEMP]!=BLOCK)
{
std::cout << map[TEMP];
}
else
{
map[TEMP] = 219;
SP(667);
std::cout << map[TEMP];
SK();
}
};
SETCOLor(12);
std::cout << char(219) << std:: endl << " " << char(219);
for(int ANY = 500 ; ANY < 520 ; ANY++)
{
map[ANY] = BLOCK;
std::cout << map[ANY];
}
std::cout << char(219);
std::cout << "\n\nA W S D TO MOVE , NOT a w s d ! ! ! ! W - CHANGE BLOCK'S FORM";
}
void MAINCLASS::PIRMAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X +20] = ' ';
map[X +21] = ' ';
}
void MAINCLASS::SquareBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X +20] = BLOCK;
map[X +21] = BLOCK;
}
DRAWmap();
if(map[X +41] == BLOCK or map[X + 40] == BLOCK )
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
SquareMoving();
}
}
void MAINCLASS::SquareMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1) % 20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
PIRMAS();
};
X+=20;
SquareBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PIRMAS();
};
X-=1;
SquareBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PIRMAS();
};
X+=1;
SquareBlock ();
}
else
{
if(X >= 20)
{
PIRMAS();
};
X+=20;
Sleep(120);
SquareBlock ();
}
}
if(X >= 20)
{
PIRMAS();
};
X+=20;
Sleep(120);
SquareBlock ();
}
void MAINCLASS::ANTRAS()
{
map[X ] = ' ';
map[X - 1] = ' ';
map[X + 1] = ' ';
map[X + 2] = ' ';
}
void MAINCLASS::LineBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X + 1 ] = BLOCK;
map[X + 2 ] = BLOCK;
map[X - 1 ] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 22] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
LineMoving();
}
}
void MAINCLASS::LineMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
ANTRAS();
};
X+=20;
LineBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
ANTRAS();
};
X-=1;
LineBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
ANTRAS();
};
X+=1;
LineBlock ();
}
else if (INPUT == 'W' && X < 440)
{
ANTRAS();
VerticalBlock();
}
else{
if(X >= 20)
{
ANTRAS();
};
X+=20;
Sleep(120);
Sleep(120);
LineBlock ();
}
}
if(X >= 20)
{
ANTRAS();
};
X+=20;
Sleep(120);
LineBlock ();
}
void MAINCLASS::TRECIAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::TriangleBlock()
{
Sleep(35);
if(X>20)
{
map[X ] = BLOCK;
map[X - 20] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
TriangleMoving();
}
}
void MAINCLASS::TriangleMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
TRECIAS();
};
X+=20;
TriangleBlock();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
TRECIAS();
};
X-=1;
TriangleBlock();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
TRECIAS();
};
X+=1;
TriangleBlock();
}
else if (INPUT == 'W')
{
TRECIAS();
Triangle4Block();
}
else
{
if(X >= 20)
{
TRECIAS();
};
X+=20;
Sleep(120);
TriangleBlock();
}
}
if(X >= 20)
{
TRECIAS();
};
X+=20;
Sleep(120);
TriangleBlock();
}
void MAINCLASS::KETVIRTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
map[X - 21] = ' ';
}
void MAINCLASS::L_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
map[X - 21] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 21] == BLOCK or
map[X + 19] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L_Moving();
}
}
void MAINCLASS::L_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
L_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
KETVIRTAS();
};
X-=1;
L_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
KETVIRTAS();
};
X+=1;
L_Block ();
}
else if (INPUT == 'W')
{
KETVIRTAS();
L4_Block ();
}
else
{
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
Sleep(120);
L_Block ();
}
}
if(X >= 20)
{
KETVIRTAS();
};
X+=20;
Sleep(120);
L_Block ();
}
void MAINCLASS::PENKTAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 1] = ' ';
map[X + 21] = ' ';
}
void MAINCLASS::FourBlock ()
{
Sleep(35);
if(X > 20)
{
map[X] = BLOCK;
map[X - 20] = BLOCK;
map[X + 21] = BLOCK;
map[X + 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or
map[X + 41] == BLOCK
)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
FourMoving();
}
}
void MAINCLASS::FourMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT !='S' && (X + 1)%20==0)
{
; }
if(INPUT == 'S')
{
if(X >= 20)
{
PENKTAS();
};
X+=20;
FourBlock ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PENKTAS();
};
X-=1;
FourBlock ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PENKTAS();
};
X+=1;
FourBlock ();
}
else if (INPUT == 'W')
{
PENKTAS();
Four4Block ();
}
else
{
if(X >= 20)
{
PENKTAS();
};
X+=20;
Sleep(120);
FourBlock ();
}
}
if(X >= 20)
{
PENKTAS();
};
X+=20;
Sleep(120);
FourBlock ();
}
void MAINCLASS::SESTAS()
{
map[X ] = ' ';
map[X - 20] = ' ';
map[X + 40] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::VerticalBlock()
{;
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 40] = BLOCK;
map[X + 20] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 60] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
VerticalMoving();
}
}
void MAINCLASS::VerticalMoving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
SESTAS();
};
X+=20;
VerticalBlock();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
SESTAS();
};
X-=1;
VerticalBlock();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
SESTAS();
};
X+=1;
VerticalBlock();
}
else if (INPUT == 'W')
{
SESTAS();
LineBlock ();
}
else
{
if(X >= 20)
{
SESTAS();
};
X+=20;
Sleep(120);
VerticalBlock();
}
}
if(X >= 20)
{
SESTAS();
};
X+=20;
Sleep(120);
VerticalBlock();
}
void MAINCLASS::SEPTintAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X + 20] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::Triangle2Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 20] = BLOCK;
map[X + 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle2Moving();
}
}
void MAINCLASS::Triangle2Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Triangle2Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
SEPTintAS();
};
X-=1;
Triangle2Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
SEPTintAS();
};
X+=1;
Triangle2Block();
}
else if (INPUT == 'W')
{
SEPTintAS();
TriangleBlock();
}
else
{
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Sleep(120);
Triangle2Block();
}
}
if(X >= 20)
{
SEPTintAS();
};
X+=20;
Sleep(120);
Triangle2Block();
}
void MAINCLASS::ASTUNTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X + 20] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::Triangle3Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 1] = BLOCK;
map[X + 20] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 19] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle3Moving();
}
}
void MAINCLASS::Triangle3Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Triangle3Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
ASTUNTAS();
};
X-=1;
Triangle3Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
ASTUNTAS();
};
X+=1;
Triangle3Block();
}
else if (INPUT == 'W')
{
ASTUNTAS();
Triangle2Block();
}
else
{
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Sleep(120);
Triangle3Block();
}
}
if(X >= 20)
{
ASTUNTAS();
};
X+=20;
Sleep(120);
Triangle3Block();
}
void MAINCLASS::DEVintAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X - 1] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::Triangle4Block()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 1] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Triangle4Moving();
}
}
void MAINCLASS::Triangle4Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DEVintAS();
};
X+=20;
Triangle4Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DEVintAS();
};
X-=1;
Triangle4Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DEVintAS();
};
X+=1;
Triangle4Block();
}
else if (INPUT == 'W')
{
DEVintAS();
Triangle3Block();
}
else
{
if(X >= 20)
{
DEVintAS();
};
X+=20;
Sleep(120);
Triangle4Block();
}
}
if(X >= 20)
{
DEVintAS();
};
X+=20;
Sleep(120);
Triangle4Block();
}
void MAINCLASS::DESIMTAS()
{
map[X ] = ' ';
map[X - 19] = ' ';
map[X - 20] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::L2_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X - 19] = BLOCK;
map[X - 20] = BLOCK;
map[X + 20] = BLOCK;
}
DRAWmap();
if(map[X + 1] == BLOCK or map[X + 40] == BLOCK )
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L2_Moving();
}
}
void MAINCLASS::L2_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DESIMTAS();
};
X+=20;
L2_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DESIMTAS();
};
X-=1;
L2_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DESIMTAS();
};
X+=1;
L2_Block ();
}
else if (INPUT == 'W')
{
DESIMTAS();
L_Block ();
}
else
{
if(X >= 20)
{
DESIMTAS();
};
X+=20;
Sleep(120);
L2_Block ();
}
}
if(X >= 20)
{
DESIMTAS();
};
X+=20;
Sleep(120);
L2_Block ();
}
void MAINCLASS::VIENUOLIKTAS()
{
map[X ] = ' ';
map[X + 1] = ' ';
map[X - 1] = ' ';
map[X + 21] = ' ';
}
void MAINCLASS::L3_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 21] = BLOCK;
map[X + 1] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 41] == BLOCK or map[X + 20] == BLOCK or map[X +19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L3_Moving();
}
}
void MAINCLASS::L3_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
L3_Block();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X-=1;
L3_Block();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=1;
L3_Block();
}
else if (INPUT == 'W')
{
VIENUOLIKTAS();
L2_Block();
}
else
{
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
Sleep(120);
VIENUOLIKTAS();
}
}
if(X >= 20)
{
VIENUOLIKTAS();
};
X+=20;
Sleep(120);
L3_Block();
}
void MAINCLASS::DVYLIKTAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X + 19] = ' ';
map[X - 20] = ' ';
}
void MAINCLASS::L4_Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X + 19] = BLOCK;
map[X - 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 39] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
L4_Moving();
}
}
void MAINCLASS::L4_Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
L4_Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
DVYLIKTAS();
};
X-=1;
L4_Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=1;
L4_Block ();
}
else if (INPUT == 'W')
{
DVYLIKTAS();
L3_Block ();
}
else
{
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
Sleep(120);
L4_Block ();
}
}
if(X >= 20)
{
DVYLIKTAS();
};
X+=20;
Sleep(120);
L4_Block();
}
void MAINCLASS::TRYLIKTAS()
{
map[X + 1] = ' ';
map[X + 19] = ' ';
map[X ] = ' ';
map[X + 20] = ' ';
}
void MAINCLASS::Four2Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 19] = BLOCK;
map[X + 1] = BLOCK;
map[X + 20] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X + 39] == BLOCK or map[X + 21] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four2Moving();
}
}
void MAINCLASS::Four2Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Four2Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
TRYLIKTAS();
};
X-=1;
Four2Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=1;
Four2Block ();
}
else if (INPUT == 'W')
{
TRYLIKTAS();
FourBlock ();
}
else
{
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Sleep(120);
Four2Block ();
}
}
if(X >= 20)
{
TRYLIKTAS();
};
X+=20;
Sleep(120);
Four2Block ();
}
void MAINCLASS::KETURIOLIKTAS()
{
map[X ] = ' ';
map[X + 20] = ' ';
map[X - 21] = ' ';
map[X - 1] = ' ';
}
void MAINCLASS::Four3Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X + 20] = BLOCK;
map[X - 21] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 40] == BLOCK or map[X - 19] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four3Moving();
}
}
void MAINCLASS::Four3Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Four3Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X-=1;
Four3Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=1;
Four3Block ();
}
else if (INPUT == 'W')
{
KETURIOLIKTAS();
Four2Block ();
}
else
{
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Sleep(120);
Four3Block ();
}
}
if(X >= 20)
{
KETURIOLIKTAS();
};
X+=20;
Sleep(120);
Four3Block ();
}
void MAINCLASS::PENKIOLIKTAS()
{
map[X - 1] = ' ';
map[X - 20] = ' ';
map[X - 19] = ' ';
map[X ] = ' ';
}
void MAINCLASS::Four4Block ()
{
Sleep(35);
if(X > 20)
{
map[X ] = BLOCK;
map[X - 20] = BLOCK;
map[X - 19] = BLOCK;
map[X - 1] = BLOCK;
}
DRAWmap();
if(map[X + 20] == BLOCK or map[X + 19] == BLOCK or map[X + 1] == BLOCK)
{
CHECKforLINE();
RANDOMFIGURE();
}
else
{
CHECKforLINE();
Four4Moving();
}
}
void MAINCLASS::Four4Moving()
{
if(_kbhit())
{
char INPUT = getch();
if(INPUT != 'S' && (X + 1) % 20 == 0)
{
}
if(INPUT == 'S')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Four4Block ();
}
else if (INPUT == 'A')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X-=1;
Four4Block ();
}
else if (INPUT == 'D')
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=1;
Four4Block ();
}
else if (INPUT == 'W')
{
PENKIOLIKTAS();
Four3Block ();
}
else
{
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Sleep(120);
Four4Block ();
}
}
if(X >= 20)
{
PENKIOLIKTAS();
};
X+=20;
Sleep(120);
Four4Block ();
}
void MAINCLASS::RANDOMFIGURE()
{
X =rand() % 17 + 2 ;
RANDOMBLOCKNUMBER = rand() % 15 + 1;
X+=40;
switch(RANDOMBLOCKNUMBER)
{
case 1:
SquareBlock ();
case 2:
TriangleBlock ();
case 3:
L_Block ();
case 4:
LineBlock ();
case 5:
FourBlock ();
case 6:
Four2Block ();
case 7:
Four3Block ();
case 8:
Four4Block ();
case 9:
L2_Block ();
case 10:
L3_Moving ();
case 11:
L4_Block ();
case 12:
VerticalBlock ();
case 13:
Triangle2Block ();
case 14:
Triangle3Block ();
case 15:
Triangle4Block ();
default:
std::cout << "IT WILL NOT HAPPEN,SorRY.";
}
}
void MAINCLASS::CHECKforLINE()
{
for(int S = 0;S < 25 ; S++)
{
if(map[1 + S * 20] == BLOCK &&
map[2 + S * 20] == BLOCK &&
map[3 + S * 20] == BLOCK &&
map[4 + S * 20] == BLOCK &&
map[5 + S * 20] == BLOCK &&
map[6 + S * 20] == BLOCK &&
map[7 + S * 20] == BLOCK &&
map[8 + S * 20] == BLOCK &&
map[9 + S * 20] == BLOCK &&
map[10 + S * 20] == BLOCK &&
map[11 + S * 20] == BLOCK &&
map[12 + S * 20] == BLOCK &&
map[13 + S * 20] == BLOCK &&
map[14 + S * 20] == BLOCK &&
map[15 + S * 20] == BLOCK &&
map[16 + S * 20] == BLOCK &&
map[17 + S * 20] == BLOCK &&
map[18 + S * 20] == BLOCK &&
map[19 + S * 20] == BLOCK &&
map[20 + S * 20] == BLOCK
)
{
S = 20 * (S - 1) + 1;
int TEMPS = 20;
for(int YES = 0 ;YES < TEMPS ; YES++)
{
map[S + YES] = ' ';
Sleep(200);
}
LO = 500-S;
}
}
if(LO!=0)
{
for(int WHATEVER = LO ; WHATEVER > 0 ; WHATEVER-- )
{
map[WHATEVER + 20 ] = map[WHATEVER];
}
}
LO = 0;
}
void MAINCLASS::CLEARSCREEN()
{
HANDLE hOut;
COORD Position;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
Position.X = 0;
Position.Y = 0;
SetConsoleCursorPosition(hOut, Position);
}
void MAINCLASS::GAMEVOR()
{
char * map = new char [520];
}