russia.c

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

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

⌨️ 快捷键说明

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