亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game.c

?? brew游戲 適合初學者學習 brew游戲 適合初學者學習
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*===========================================================================

FILE: Game.c
  
/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h"// Module interface definitions
#include "AEEAppGen.h"// Applet interface definitions
#include "AEEShell.h"// Shell interface definitions
#include "game.bid"		// Applet-specific header that contains class ID
#include "game_h.bid"
#include "AEEStdLib.h" 
#include "game_res.h"

#define MAP_WIDTH  11
#define MAP_HEIGHT 20

#ifdef COLOR_DISPLAY

#define RED_COLOR MAKE_RGB(0xC0, 0x00, 0x00)
#define BLUE_COLOR MAKE_RGB(0, 0, 255)
#define GREEN_COLOR MAKE_RGB(0x00, 0x60, 0x00)
#define LIGHT_RED_COLOR MAKE_RGB(255, 0, 0)
#define LIGHT_BLUE_COLOR MAKE_RGB(128, 255, 255)
#define DARK_GREEN_COLOR MAKE_RGB(0, 128, 64)
#define ORANGE_COLOR MAKE_RGB(255, 128, 0)
#define PURPLE_COLOR MAKE_RGB(179, 21, 206)
#define YELLOW_GREEN_COLOR MAKE_RGB(158, 152, 69)
#define GREY_COLOR MAKE_RGB(80, 80, 80)

#endif
#define noblack FALSE
#define black TRUE
/*----------------------------------------------
 Structrue definition
------------------------------------------------*/
typedef struct _CGametype{
AEEApplet a;
AEERect   m_Rect;
unsigned char block_width;
unsigned char block_height;
RGBVAL frame_color;
int difficult_level;
int a0;
int dels;
int next_block;
int block[4][4];
int map[MAP_WIDTH][MAP_HEIGHT];
int map_line;
int map_col;
int x_size;
int y_size;
int block_x;
int block_y;
int current_block;
int gameover;
word score;
boolean pause;
RGBVAL color_table[10];
int32 r_color;
int32 g_color;
int32 b_color;
}CGametype;
/*-------------------------------------------------------------------
Static function prototypes
-------------------------------------------------------------------*/
static boolean game_HandleEvent(CGametype * pme, AEEEvent eCode,uint16 wParam, uint32 dwParam);
static boolean game_InitApp(CGametype * pMe);
void DeleteRow(CGametype * pMe); 
int CanPut(CGametype * pMe);   
void RotateBlock(CGametype * pMe); 
void PutBlock(CGametype * pMe);  
void ClearBlock(CGametype * pMe);
/*-----------------------------------------------------------------
 static variable definition
----------------------------------------------------------------*/

/*translate an integer into decimal sting*/
unsigned int up_Itoa(AECHAR * buffer, int eger)
{
	int len, ueger;
	unsigned char minusP;

	minusP = (eger < 0);

	if(minusP)
	{
		if(buffer) 
		{
			*(buffer++) = '-';
		}
		ueger = (int)(0 - eger);
	}
	else
	{
		ueger = (unsigned int)eger;
	}

	{
		unsigned int tmp;

		tmp = ueger;
		len = 1;
		while ( (tmp /= 10) ) len += 1;
	}

	{
		unsigned int pt;

		pt = len;
		if (buffer) buffer[pt] = 0;

		while(pt--) 
		{
			if (buffer)
			{
				buffer[pt] = (char)('0' + (ueger % 10));
			}
			ueger /= 10;
		}
	}
	return (len + 1 + minusP);
}
//=====================================================================
// the following code for Russia frame
//Function: clearblock
//Description: clear a block
//Side effect: none
//=====================================================================
void ClearBlock(CGametype * pMe) /*clear the data within the block*/
{int i,j;
 	for (i=0; i<4; i++)  for (j=0; j<4; j++) pMe->block[i][j] = 0;
}
//====================================================================
// Function: write_video
// Description: draw a frame
// input value position(x,y)
// Side effect: play the bitmap_buf
//====================================================================
void write_video
(
      CGametype * pMe, 
      int x,
      int y,
      RGBVAL color,
      unsigned char full
 )
{
     AEERect rect;
     rect.x=x;
     rect.y=y;
     rect.dx=pMe->block_width;
     rect.dy=pMe->block_width;
     if(full)
	 {

 	    IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           RGB_BLACK,// RGBVAL 
                           color,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
		SETAEERECT(&rect,x+1,y+1,pMe->block_width-2,1);
		IDISPLAY_FillRect(pMe->a.m_pIDisplay,&rect,RGB_WHITE);
		SETAEERECT(&rect,x+1,y+1,1,pMe->block_width-2);
		IDISPLAY_FillRect(pMe->a.m_pIDisplay,&rect,RGB_WHITE);
     }	
 	 else
	 {
 	 	IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           RGB_WHITE,// RGBVAL 
                           RGB_WHITE,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
	 }
}
/*===================================================================
Function: generateblock
Description: generate a block
input: block class
Side effect: none
====================================================================*/
void GenerateBlock(CGametype * pMe,int kind)   /*generate a block*/
{
      int val;
	  val=kind%10;
 	ClearBlock(pMe);
	switch (kind) {
	case  1: pMe->block[1][0] = pMe->block[2][0] = pMe->block[0][1] = pMe->block[1][1] = val; break;
   case 11: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[1][2] = val; break;
   case 21: pMe->block[1][0] = pMe->block[2][0] = pMe->block[0][1] = pMe->block[1][1] = val; break;
   case 31: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[1][2] = val; break;

   case  2:	pMe->block[0][0] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[2][1] = val; break;
	case 12:	pMe->block[1][0] = pMe->block[1][1] = pMe->block[0][1] = pMe->block[0][2] = val; break;
	case 22:	pMe->block[0][0] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[2][1] = val; break;
	case 32:	pMe->block[1][0] = pMe->block[1][1] = pMe->block[0][1] = pMe->block[0][2] = val; break;

	case  3: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = val; break;
	case 13: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = val; break;
	case 23: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = val; break;
	case 33: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = val; break;

	case  4: pMe->block[1][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[2][1] = val; break;
	case 14: pMe->block[0][0] = pMe->block[0][1] = pMe->block[0][2] = pMe->block[1][1] = val; break;
   case 24: pMe->block[0][0] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[1][1] = val; break;
   case 34: pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = val; break;

   case  5: pMe->block[2][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[2][1] = val; break;
   case 15: pMe->block[0][0] = pMe->block[0][1] = pMe->block[0][2] = pMe->block[1][2] = val; break;
   case 25: pMe->block[0][0] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[0][1] = val; break;
	case 35: pMe->block[0][0] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = val; break;

	case  6: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[2][1] = val; break;
	case 16: pMe->block[0][0] = pMe->block[1][0] = pMe->block[0][1] = pMe->block[0][2] = val; break;
   case 26: pMe->block[0][0] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[2][1] = val; break;
   case 36: pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = pMe->block[0][2] = val; break;

   case  7: pMe->block[0][0] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[3][0] = val; break;
	case 17: pMe->block[0][0] = pMe->block[0][1] = pMe->block[0][2] = pMe->block[0][3] = val; break;
   case 27: pMe->block[0][0] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[3][0] = val; break;
	case 37: pMe->block[0][0] = pMe->block[0][1] = pMe->block[0][2] = pMe->block[0][3] = val; break;
	
	case  8: pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = pMe->block[2][1] = val; break;
	case 18: pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = pMe->block[2][1] = val; break;
    case 28: pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = pMe->block[2][1] = val; break;
	case 38: pMe->block[0][1] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = pMe->block[2][1] = val; break;

	case  9: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][1] = pMe->block[2][0] = pMe->block[2][1] = val; break;
	case 19: pMe->block[0][0] = pMe->block[0][2] = pMe->block[1][0] = pMe->block[1][1] = pMe->block[1][2] = val; break;
    case 29: pMe->block[0][0] = pMe->block[0][1] = pMe->block[1][0] = pMe->block[2][0] = pMe->block[2][1] = val; break;
	case 39: pMe->block[0][0] = pMe->block[0][1] = pMe->block[0][2] = pMe->block[1][0] = pMe->block[1][2] = val; break;	
	default:  break;
	}

   if ((kind == 7) || (kind == 27)) {pMe->x_size = 4; pMe->y_size = 1; }
	else if ((kind == 17) || (kind == 37)) {pMe->x_size = 1; pMe->y_size = 4;}
	else if (kind % 10 == 3) {pMe->x_size = 2; pMe->y_size = 2; }
	else if (kind % 10 == 8) {pMe->x_size = 3; pMe->y_size = 3; }
	else if ((kind / 10 == 0) || (kind / 10 == 2)) {pMe->x_size = 3; pMe->y_size = 2;}
	else if ((kind / 10 == 1) || (kind / 10 == 3)) {pMe->x_size = 2; pMe->y_size = 3;}
   pMe->current_block = kind;
}
//================================================================
//Funciton initialmemory
//Description: initial memory
//Side effect: none
//================================================================
void initialmemory(CGametype * pMe)
{
	int i,j;
	AEERect rect;
	AECHAR szText[] ={'N','e','x','t','\0','S','c','o','r','e','\0'},game_title[30]={0};
	uint32   dwTime = GET_UPTIMEMS();
	ISHELL_LoadResString(pMe->a.m_pIShell, GAME_RES_FILE, IDS_GAME_TITLE, game_title, sizeof(game_title)); 
     rect.x=0;
     rect.y=0;
     rect.dx=pMe->m_Rect.dx; //screen width
     rect.dy=pMe->block_height;
 	 IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           pMe->frame_color,// RGBVAL 
                           pMe->frame_color,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
     rect.x=0;
     rect.y=MAP_HEIGHT*pMe->block_height+pMe->block_height;
     rect.dx=pMe->m_Rect.dx;//screen width
     rect.dy=pMe->block_height;
 	 IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           pMe->frame_color,// RGBVAL 
                           pMe->frame_color,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
     rect.x=MAP_WIDTH*pMe->block_width+pMe->block_width;
     rect.y=pMe->block_height;
     rect.dx=pMe->block_width;
     rect.dy=MAP_HEIGHT*pMe->block_height;
	
 	 IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           pMe->frame_color,
                           pMe->frame_color,
                           IDF_RECT_FRAME | IDF_RECT_FILL);
     rect.x=0;
     rect.y=pMe->block_height;
     rect.dx=pMe->block_width;
     rect.dy=MAP_HEIGHT*pMe->block_height;
 	 IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           pMe->frame_color,// RGBVAL 
                           pMe->frame_color,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
     rect.x=pMe->m_Rect.dx-pMe->block_width;
     rect.y=pMe->block_height;
     rect.dx=pMe->block_width;
     rect.dy=MAP_HEIGHT*pMe->block_height;
 	 IDISPLAY_DrawRect(pMe->a.m_pIDisplay,
                           &rect,
                           pMe->frame_color,// RGBVAL 
                           pMe->frame_color,// RGBVAL 
                           IDF_RECT_FRAME | IDF_RECT_FILL);
      IDISPLAY_DrawText(pMe->a.m_pIDisplay,    // Display instance
                           AEE_FONT_BOLD,       // Use BOLD font
                           szText,              // Text - Normally comes from resource
                           -1,                  // -1 = Use full string length
                           MAP_WIDTH*pMe->block_width+1+pMe->block_width+pMe->block_width,   // x-cordinate
                           pMe->block_height+8,                   // y-cordinate
                           NULL,                // No clipping
                           0);//IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
      IDISPLAY_DrawText(pMe->a.m_pIDisplay,    // Display instance
                           AEE_FONT_BOLD,       // Use BOLD font
                           szText+5,              // Text - Normally comes from resource
                           -1,                  // -1 = Use full string length

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕免费观看一区| 成人午夜免费av| 日韩国产欧美视频| 韩国欧美一区二区| 国产成人综合在线观看| 不卡视频免费播放| 欧美日韩一区二区三区在线看| 欧美在线一区二区| 日韩视频在线一区二区| 久久精品视频在线免费观看| 中文字幕免费不卡在线| 亚洲亚洲人成综合网络| 美女一区二区三区在线观看| 性做久久久久久免费观看欧美| 久久精品72免费观看| 国产精品69毛片高清亚洲| 欧美怡红院视频| 精品蜜桃在线看| 国产精品蜜臀在线观看| 天天av天天翘天天综合网色鬼国产| 日本成人在线网站| 日日摸夜夜添夜夜添国产精品 | 国产一区二区三区四| 99这里只有久久精品视频| 欧美巨大另类极品videosbest | 日韩在线观看一区二区| 国产一区二区三区在线观看免费 | 91精品国产福利在线观看 | 成人美女在线观看| 欧美色国产精品| 久久日一线二线三线suv| 亚洲香肠在线观看| 国产一区不卡在线| 91在线丨porny丨国产| 日韩一区二区在线观看视频| 国产精品大尺度| 久久国产剧场电影| jlzzjlzz亚洲女人18| 欧美日韩高清在线| 国产精品久久久久毛片软件| 日本美女一区二区三区| 麻豆久久一区二区| 色94色欧美sute亚洲线路二| 日韩一级片网址| 亚洲女同一区二区| 日韩av一区二区三区四区| eeuss鲁一区二区三区| 日韩久久精品一区| 亚洲尤物视频在线| 国产精品亚洲一区二区三区妖精| 成人av网站在线观看| 在线播放中文字幕一区| 国产三级精品视频| 亚洲精品免费在线观看| 国产揄拍国内精品对白| 欧美日韩一区二区在线视频| 国产丝袜在线精品| 免费高清不卡av| 欧美在线观看视频在线| 亚洲色图在线播放| 韩国精品免费视频| 正在播放一区二区| 亚洲国产毛片aaaaa无费看| 国产最新精品精品你懂的| 欧美日韩一区二区三区高清 | 亚洲v中文字幕| av电影在线观看一区| 欧美肥胖老妇做爰| 亚洲精品国产一区二区三区四区在线 | 久久成人18免费观看| 欧美熟乱第一页| 亚洲蜜臀av乱码久久精品| 风流少妇一区二区| 一区二区三区精密机械公司| 国产精品白丝jk白祙喷水网站| 日韩欧美中文字幕一区| 污片在线观看一区二区| 欧美三级一区二区| 一区二区三区四区精品在线视频| 国产一区二区网址| 日韩美女视频一区二区在线观看| 亚洲国产日产av| 666欧美在线视频| 亚洲午夜久久久久| 欧美日韩精品一区二区三区蜜桃 | 日韩成人一区二区三区在线观看| 色综合久久精品| 国产精品精品国产色婷婷| 国产成人在线视频播放| 久久久久久久国产精品影院| 久久精品国产一区二区三| 5566中文字幕一区二区电影| 精品国产99国产精品| 日本不卡高清视频| 欧美日韩国产一级片| 日韩极品在线观看| 欧美精品乱人伦久久久久久| 亚洲最大成人网4388xx| 欧美色精品在线视频| 污片在线观看一区二区| 日韩一级视频免费观看在线| 精品在线视频一区| 欧美大尺度电影在线| 国产一区二区中文字幕| 国产午夜三级一区二区三| 成人免费电影视频| 国产精品久久久久四虎| 91在线云播放| 亚洲成人在线网站| 欧美一区二区视频在线观看2020| 免费观看日韩av| 日韩一区二区中文字幕| 国产乱妇无码大片在线观看| 久久久噜噜噜久噜久久综合| 高清不卡一区二区| 亚洲精品国产第一综合99久久| 欧美日韩极品在线观看一区| 久久成人综合网| 国产欧美一区二区三区网站| 风间由美一区二区三区在线观看 | 成人午夜免费视频| 中文字幕乱码久久午夜不卡| 成人一级视频在线观看| 国产精品福利电影一区二区三区四区| 日本精品一区二区三区高清| 青娱乐精品视频在线| 久久久久久亚洲综合| 一本大道综合伊人精品热热 | 91美女片黄在线观看| 洋洋av久久久久久久一区| 日韩三区在线观看| 成人精品一区二区三区中文字幕| 亚洲福利视频导航| 久久蜜桃av一区精品变态类天堂 | 亚洲精品在线观| 一道本成人在线| 日本sm残虐另类| 国产精品久久久久久久第一福利| 欧美性欧美巨大黑白大战| 国精品**一区二区三区在线蜜桃 | 精品一区二区在线免费观看| 国产精品久久毛片av大全日韩| 欧美日本一道本在线视频| 经典三级一区二区| 一级特黄大欧美久久久| 亚洲精品在线观| 欧美日韩视频在线第一区| 精品一区二区三区在线视频| 亚洲精品乱码久久久久久 | 亚洲日本在线看| 日韩精品一区二区三区三区免费 | 欧美日韩国产三级| 国产麻豆精品在线观看| 国产精品国产精品国产专区不蜜 | 精品国精品国产尤物美女| 色先锋久久av资源部| 久草热8精品视频在线观看| 亚洲美女少妇撒尿| 久久久不卡网国产精品一区| 欧美日韩综合一区| 国产精品一卡二| 综合自拍亚洲综合图不卡区| 久久精品视频免费观看| 制服丝袜日韩国产| 欧美在线视频你懂得| 丁香六月综合激情| 美女任你摸久久| 亚洲成人av免费| 中文字幕精品一区| 精品欧美一区二区在线观看| 精品视频在线免费看| 91一区一区三区| 国产69精品久久久久777| 美女一区二区三区| 午夜视黄欧洲亚洲| 欧美韩日一区二区三区| 精品国产伦一区二区三区观看体验 | 亚洲色图.com| 国产日韩精品一区| 欧美电影免费提供在线观看| 成人一二三区视频| 国产麻豆91精品| 日本成人中文字幕在线视频| 亚洲一区二区视频在线观看| 国产精品久久777777| 国产丝袜美腿一区二区三区| 日韩精品一区二区三区蜜臀| 国产91对白在线观看九色| 久久精品国产**网站演员| 亚洲在线视频一区| 亚洲自拍偷拍麻豆| 亚洲制服丝袜av| 亚洲小说春色综合另类电影| 一区二区三区四区乱视频| 国产精品视频麻豆| 国产精品久久久久aaaa| 国产精品卡一卡二| 自拍偷拍亚洲综合| 亚洲视频香蕉人妖| 一区二区三区视频在线观看|