?? movedecidefive.c
字號(hào):
//*************************************************************************************************
//* *
//* ******************************判斷方塊5是否可以移動(dòng)************************** *
//* *
//*************************************************************************************************
#include "GameGraph.h"
#include "GameProcess.h"
//*************************************************************************************************
//* *
//* *********************************狀態(tài)1判斷********************************** *
//* *
//*************************************************************************************************
unsigned char ucDecideFiveStateOne(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
if(uc_BlockRow==0||uc_BlockRow==20)
return 0;
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+2)==0)
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
return 1;
break;
case ACTIONRIGHT:
if(uc_BlockRow==0||uc_BlockLine==0)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
return 1;
break;
case ACTIONDOWN:
if(uc_BlockRow==20)
return 0;
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+2)==0)
return 1;
break;
case ACTIONLEFT:
if(uc_BlockRow==0||uc_BlockLine==9)
return 0;
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine+3)==0)
return 1;
break;
default:break;
}
return 0;
}
//*************************************************************************************************
//* *
//* *********************************狀態(tài)2判斷********************************** *
//* *
//*************************************************************************************************
unsigned char ucDecideFiveStateTwo(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
if(uc_BlockRow<2||uc_BlockLine==10)
return 0;
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine+2)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+2)==0)
return 1;
break;
case ACTIONRIGHT:
if(uc_BlockRow<2||uc_BlockLine==0)
return 0;
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
return 1;
break;
case ACTIONDOWN:
if(uc_BlockRow==20)
return 0;
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
return 1;
break;
case ACTIONLEFT:
if(uc_BlockRow<2||uc_BlockLine==10)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine+2)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+2)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+2)==0)
return 1;
break;
default:break;
}
return 0;
}
//*************************************************************************************************
//* *
//* *********************************狀態(tài)3判斷********************************** *
//* *
//*************************************************************************************************
unsigned char ucDecideFiveStateThree(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
if(uc_BlockRow<2)
return 0;
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine-2)==0)
return 1;
break;
case ACTIONRIGHT:
if(uc_BlockLine==2)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-3)==0)
return 1;
break;
case ACTIONDOWN:
if(uc_BlockRow==20)
return 0;
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow,uc_BlockLine-2)==0)
return 1;
break;
case ACTIONLEFT:
if(uc_BlockLine==11||uc_BlockRow==0)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
return 1;
break;
default:break;
}
return 0;
}
//*************************************************************************************************
//* *
//* *********************************狀態(tài)4判斷********************************** *
//* *
//*************************************************************************************************
unsigned char ucDecideFiveStateFour(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
if(uc_BlockRow<2||uc_BlockLine==0)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
return 1;
break;
case ACTIONRIGHT:
if(uc_BlockRow<2||uc_BlockLine==0)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
return 1;
break;
case ACTIONDOWN:
if(uc_BlockRow==20)
return 0;
if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
return 1;
break;
case ACTIONLEFT:
if(uc_BlockRow<2||uc_BlockLine==10)
return 0;
if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+2)==0)
return 1;
break;
default:break;
}
return 0;
}
//*************************************************************************************************
//* *
//* *********************************狀態(tài)分派函數(shù)******************************* *
//* *
//*************************************************************************************************
unsigned char ucMoveDecideFive(unsigned char ucAction)
{
switch(uc_BlockState)
{
case STATEONE:return ucDecideFiveStateOne(ucAction);break;
case STATETWO:return ucDecideFiveStateTwo(ucAction);break;
case STATETHREE:return ucDecideFiveStateThree(ucAction);break;
case STATEFOUR:return ucDecideFiveStateFour(ucAction);break;
default:break;
}
return 0;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -