russia.c

来自「minigui PDA系统 可实现手机功能」· C语言 代码 · 共 2,258 行 · 第 1/5 页

C
2,258
字号
				if(!TestPosition(pPlayingWindow,pPoint->y+3,pPoint->x+1))					return FALSE;				pPoint->y +=1;			}				break;		}		break;	case DIR_LEFT:	case DIR_RIGHT:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=1;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=2;			pMovingSquare->poAll[1].y=0;			pMovingSquare->poAll[2].x=0;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=1;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))				return FALSE;			break;		case ACTION_LEFT: 			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))				return FALSE;			pPoint->x -=1;			break;		case ACTION_RIGHT:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+3))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			pPoint->x +=1;			break;		case ACTION_ROTATE:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+2))				return FALSE;			pMovingSquare->iDir=DIR_UP;			pMovingSquare->poRightBottom.y = 2;			pMovingSquare->poRightBottom.x = 1;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=2;			break;		case ACTION_DOWN: 			while(TRUE){				if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))					return FALSE;				pPoint->y +=1;			}			break;		}		break;	}				return TRUE;}BOOL MoveSquareHill(PlayingWindow * pPlayingWindow,int iAction){	MovingSquare *pMovingSquare;	POINT *pPoint;	if(iAction == ACTION_INIT)		pMovingSquare = pPlayingWindow->pPreCreatedSquare;	else		pMovingSquare = pPlayingWindow->pMovingSquare;	pPoint = &pMovingSquare->poOrigin;	switch(pMovingSquare->iDir){	case DIR_UP:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=1;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=2;			pMovingSquare->poAll[3].y=1;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			break;		case ACTION_LEFT: 			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))				return FALSE;			pPoint->x -=1;			break;		case ACTION_RIGHT:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+3))				return FALSE;			pPoint->x +=1;			break;		case ACTION_ROTATE:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+2))				return FALSE;			pMovingSquare->iDir=DIR_RIGHT;			pPoint->x += 1;			pMovingSquare->poRightBottom.y = 2;			pMovingSquare->poRightBottom.x = 1;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=0;			pMovingSquare->poAll[3].y=2;			break;		case ACTION_DOWN: 			while(TRUE){				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+2))					return FALSE;				pPoint->y +=1;			}			break;		}		break;	case DIR_DOWN:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=1;			pMovingSquare->poAll[1].y=0;			pMovingSquare->poAll[2].x=2;			pMovingSquare->poAll[2].y=0;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=1;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))			return FALSE;			break;	case ACTION_LEFT: 			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x-1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;							pPoint->x -=1;			break;	case ACTION_RIGHT:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+3))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;							pPoint->x +=1;			break;	case ACTION_ROTATE:			if(!TestPosition(pPlayingWindow,pPoint->y-1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y-1,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			pPoint->y -= 1;			pMovingSquare->iDir=DIR_LEFT;			pMovingSquare->poRightBottom.y = 2;			pMovingSquare->poRightBottom.x = 1;			pMovingSquare->poAll[0].x=1;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=2;			break;	case ACTION_DOWN: 			while(TRUE){				if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))					return FALSE;				pPoint->y +=1;			}			break;	}	break;	case DIR_LEFT:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 2;			pMovingSquare->poRightBottom.x = 1;			pMovingSquare->poAll[0].x=1;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=2;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))				return FALSE;			break;	case ACTION_LEFT: 			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))				return FALSE;						pPoint->x -=1;			break;	case ACTION_RIGHT:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+2))				return FALSE;							pPoint->x +=1;			break;	case ACTION_ROTATE:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))				return FALSE;			pMovingSquare->iDir=DIR_UP;			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=1;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=2;			pMovingSquare->poAll[3].y=1;			break;	case ACTION_DOWN: 			while(TRUE){				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+3,pPoint->x+1))					return FALSE;				pPoint->y +=1;			}			break;	}	break;	case DIR_RIGHT:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 2;			pMovingSquare->poRightBottom.x = 1;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=0;			pMovingSquare->poAll[3].y=2;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x))				return FALSE;			break;		case ACTION_LEFT: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x-1))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x-1))					return FALSE;								pPoint->x -=1;			break;		case ACTION_RIGHT:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))				return FALSE;			pPoint->x +=1;			break;		case ACTION_ROTATE:			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x-1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))				return FALSE;			pPoint->x -= 1;			pPoint->y += 1;			pMovingSquare->iDir=DIR_DOWN;			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=1;			pMovingSquare->poAll[1].y=0;			pMovingSquare->poAll[2].x=2;			pMovingSquare->poAll[2].y=0;			pMovingSquare->poAll[3].x=1;			pMovingSquare->poAll[3].y=1;			break;		case ACTION_DOWN: 			while(TRUE){				if(!TestPosition(pPlayingWindow,pPoint->y+3,pPoint->x))					return FALSE;				if(!TestPosition(pPlayingWindow,pPoint->y+2,pPoint->x+1))					return FALSE;				pPoint->y +=1;			}			break;		}		break;		}				return TRUE;}BOOL MoveSquareLeftChair(PlayingWindow * pPlayingWindow,int iAction){	MovingSquare *pMovingSquare;	POINT *pPoint;	if(iAction == ACTION_INIT)		pMovingSquare = pPlayingWindow->pPreCreatedSquare;	else		pMovingSquare = pPlayingWindow->pMovingSquare;	pPoint = &pMovingSquare->poOrigin;	switch(pMovingSquare->iDir){	case DIR_UP:		switch(iAction){		case ACTION_INIT:			pMovingSquare->poRightBottom.y = 1;			pMovingSquare->poRightBottom.x = 2;			pMovingSquare->poAll[0].x=0;			pMovingSquare->poAll[0].y=0;			pMovingSquare->poAll[1].x=0;			pMovingSquare->poAll[1].y=1;			pMovingSquare->poAll[2].x=1;			pMovingSquare->poAll[2].y=1;			pMovingSquare->poAll[3].x=2;			pMovingSquare->poAll[3].y=1;			break;		case ACTION_PUTIN: 				if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x+2))				return FALSE;			break;		case ACTION_LEFT: 			if(!TestPosition(pPlayingWindow,pPoint->y,pPoint->x-1))				return FALSE;			if(!TestPosition(pPlayingWindow,pPoint->y+1,pPoint->x-1))				return FALSE;						pPoint->x -=1;			break;		case ACTION_RIGHT:			if(!TestPosition(pPlayingWind

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?