亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
2024国产精品| 国产乱子伦一区二区三区国色天香 | 亚洲香肠在线观看| 水野朝阳av一区二区三区| 裸体在线国模精品偷拍| 久久99国产精品免费网站| 久久精品亚洲乱码伦伦中文 | 日本不卡在线视频| 国产毛片精品视频| 欧美无人高清视频在线观看| 欧美精品一区男女天堂| 自拍偷拍国产精品| 亚洲一区二区精品视频| 国产精品888| 日韩一级欧美一级| 亚洲男人电影天堂| 国产精品一区二区久久不卡| 欧美亚洲免费在线一区| 精品久久久久一区| 欧美aaaaa成人免费观看视频| 不卡的电视剧免费网站有什么| 88在线观看91蜜桃国自产| 欧美激情中文字幕| 精品亚洲国产成人av制服丝袜| 在线这里只有精品| 久久久精品蜜桃| 国产曰批免费观看久久久| 一本到不卡精品视频在线观看| 精品成人一区二区| 亚洲国产美女搞黄色| 蜜桃av一区二区三区电影| 欧美欧美午夜aⅴ在线观看| 在线观看视频91| 亚洲免费观看高清完整版在线观看熊 | 国模大尺度一区二区三区| 欧美一级视频精品观看| 日本aⅴ免费视频一区二区三区 | 色妞www精品视频| 自拍偷拍亚洲综合| 成人美女视频在线看| 中文字幕不卡在线| va亚洲va日韩不卡在线观看| 中文字幕+乱码+中文字幕一区| 国产aⅴ精品一区二区三区色成熟| 国产欧美综合在线观看第十页| 久久国产剧场电影| 精品国产电影一区二区| 国产很黄免费观看久久| 国产精品久久国产精麻豆99网站| 波多野结衣91| 一区二区理论电影在线观看| 欧美日韩国产综合一区二区三区| 午夜成人免费视频| 精品国产伦一区二区三区观看方式 | 亚洲欧美国产毛片在线| 欧美精品tushy高清| 欧美一级黄色片| 麻豆精品久久精品色综合| 欧美不卡视频一区| 亚洲色图另类专区| 国产成人在线视频免费播放| 亚洲综合一区在线| 亚洲欧美精品午睡沙发| 国产91富婆露脸刺激对白| 欧美一区二区三区视频在线 | 精品黑人一区二区三区久久| 一区二区三区欧美久久| 99视频在线精品| 国产精品久久久久久久岛一牛影视| 亚洲成a人在线观看| 一本色道综合亚洲| 伊人婷婷欧美激情| 一本久久a久久免费精品不卡| 一区二区三区在线高清| 精品影视av免费| 亚洲国产美女搞黄色| 欧美日韩高清一区| 奇米一区二区三区| 精品国产乱码久久久久久牛牛| 欧美性受xxxx黑人xyx| 欧美成人精品1314www| 欧美精品视频www在线观看| 自拍av一区二区三区| 国产精品888| 亚洲资源在线观看| 日韩亚洲欧美高清| 加勒比av一区二区| 综合欧美亚洲日本| 精品视频色一区| 精品国产一区二区三区久久久蜜月| 日韩一级免费观看| 国产高清不卡二三区| 国内精品国产三级国产a久久| 亚洲.国产.中文慕字在线| 欧美色欧美亚洲另类二区| 国产欧美久久久精品影院| 久久亚洲春色中文字幕久久久| 国产精品视频yy9299一区| 色噜噜久久综合| 亚洲欧洲日产国码二区| 久久9热精品视频| 宅男噜噜噜66一区二区66| 日本一区二区不卡视频| 色婷婷国产精品综合在线观看| 五月激情综合色| 欧美本精品男人aⅴ天堂| 亚洲自拍与偷拍| 色婷婷av一区二区三区软件| 国产69精品久久久久777| 激情久久五月天| 久久疯狂做爰流白浆xx| 日本特黄久久久高潮| 午夜精品成人在线视频| 亚洲成av人片一区二区| 欧美三级日本三级少妇99| 在线视频亚洲一区| 色老头久久综合| 在线欧美小视频| 欧美日韩一区中文字幕| 欧美日韩一区不卡| 在线中文字幕一区二区| 久久精品人人做人人综合| 久久久久久9999| 国产三区在线成人av| 日本一区二区高清| 中文字幕+乱码+中文字幕一区| 国产精品久久久久久亚洲毛片| 中文字幕一区二区三区不卡 | 久久成人羞羞网站| 欧美aaaaaa午夜精品| 国模套图日韩精品一区二区| 国产高清不卡一区二区| av高清不卡在线| 欧美日韩中文精品| 日韩一区二区在线观看视频 | 亚洲1区2区3区4区| 秋霞国产午夜精品免费视频| 麻豆精品视频在线观看免费| 国产成人无遮挡在线视频| 99re这里都是精品| 欧美喷水一区二区| 久久久另类综合| 亚洲人成精品久久久久| 中文字幕免费一区| 美女久久久精品| 欧美本精品男人aⅴ天堂| 日韩激情视频在线观看| 午夜影院在线观看欧美| 国产麻豆视频一区二区| av在线不卡免费看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品看片你懂得| 亚洲同性gay激情无套| 亚洲成人av一区| 精品在线播放免费| 91女神在线视频| 日韩一区二区三区免费观看| 国产精品三级视频| 日韩不卡一二三区| 成人国产精品免费观看| 欧美一区二视频| 国产精品久久久久国产精品日日| 香蕉久久一区二区不卡无毒影院 | 精品99999| 一区二区三区**美女毛片| 精品无人码麻豆乱码1区2区| 成人av网站在线观看| 日韩欧美国产综合| 欧美色网一区二区| 中文久久乱码一区二区| 午夜av电影一区| 91免费观看视频| 久久久国产精品麻豆| 奇米色一区二区三区四区| 成人性视频免费网站| 欧美大片日本大片免费观看| 一区二区三区不卡在线观看| 国产精品一品二品| 欧美一区二区三区公司| 亚洲午夜在线视频| caoporen国产精品视频| 精品国产99国产精品| 日韩一区欧美二区| 丝袜美腿亚洲色图| 日本道精品一区二区三区| 中文字幕+乱码+中文字幕一区| 久久精品999| 日韩欧美综合一区| 午夜精品视频一区| 欧美日韩一区二区在线观看视频| 国产精品嫩草影院av蜜臀| 中文字幕一区二区三区在线观看| 国内精品自线一区二区三区视频| 337p亚洲精品色噜噜| 一区二区三区在线播放| 91老师国产黑色丝袜在线| 国产精品嫩草久久久久| 成人激情小说网站| 国产精品久久久久9999吃药| 久久精品国产澳门|