⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game_utile.c

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 C
📖 第 1 页 / 共 2 页
字号:
/*********************************
 *    mp3_utile.c
 *********************************/

#include <string.h>
#include "api.h"
#include "lcd.h"
#include "common.h"
#include "ap_common.h"
#include "display.h" 
#include "ui_menu.h"
#include "ui_pop_up_list.h"
#include "ui_slider.h"
#include "res.h"
#include "res_show.h"
#include "prefer.h"
#include "mine.h"

INT16U num_set=0;


code INT8U random1[120] ={25,12,75,65,34,32,12,40,50,60,80,79,42,31,39,22,71,61,52,43,21,10,9,78,62,51,44,30,26,15,3,4,28,35,44,50,67,70,65,64,
			15,28,39,48,59,66,78,53,62,77,55,47,60,18,17,13,80,57,69,38,49,61,23,15,73,49,11,15,77,63,59,12,3,11,7,5,6,33,7,9,
			25,12,11,71,73,75,69,66,50,59,33,11,23,51,67,44,59,61,71,2,3,9,4,2,5,4,4,15,7,17,4,12,4,9,3,2,4,22,4,33};
extern INT8 color_ran;

INT8 rand()
{	
	INT8U i; //color 5 种
	
     	if(color_ran > 120) 
	 	color_ran=0;
	i= random1[color_ran++];
    	return i;
}


char mine_handle(UINT8 key)
{
	mine_show_mine();

	switch(key)
    	{
           	case    K_ENTER:	
                    	switch(mine.area[mine.mine_y][mine.mine_x].init_info)
                    	{
                             	
                             	case MINE_MINE:
                                	mine.area[mine.mine_y][mine.mine_x].play_info = mine.area[mine.mine_y][mine.mine_x].init_info;
                                	mine.mine_flash = FALSE;
                                	mine_show_all_mine();
                                	bResShowPic(E02,58,142);
					mine_chk_start();
                        		break;
                             	case MINE_0:
                                	mine.area[mine.mine_y][mine.mine_x].play_info = MINE_CHK;
                                	mine_handle_null();
                                	mine_show_cursor();
                                	bResShowPic(E03,58,142);
                                	if(mine_chk_win())
                                	{
                                		mine.mine_status = 1;
                                		mine_chk_start();
                                	}
                                	break;
                           	
                           	case MINE_1:
                        	case MINE_2:
                        	case MINE_3:
                        	case MINE_4:
                        	case MINE_5:
                        	case MINE_6:
                        	case MINE_7:
                        	case MINE_8:
                        	case MINE_9:
                                	mine.area[mine.mine_y][mine.mine_x].play_info = mine.area[mine.mine_y][mine.mine_x].init_info;
                                	mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
                                	mine_show_cursor();                                
                                	if(mine_chk_win())
                                	{
						mine.mine_status = 1;
						mine_chk_start();
                                	}
                               
                                	break;
                    	}
                    	break;	
            	case    K_DOWN:
                	mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
                	if (mine.mine_y)
                	{
                    		mine.mine_y --;
                    		mine_get_cur();
                    		mine_show_cursor();
                	}
                	else
                	{
                    		mine.mine_y = (MINE_HANG - 1);	
                    		mine_get_cur();
                    		mine_show_cursor();
                	}	                
                	break;
            	case    K_UP:       
                	mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
                	if(mine.mine_y < (MINE_HANG - 1))
                	{
                    		mine.mine_y ++;
                    		mine_get_cur();
                    		mine_show_cursor();
                	}
                	else
                	{
                    		mine.mine_y = 0;	
                    		mine_get_cur();
                    		mine_show_cursor();
                	}	
                	break;
                
            	case    K_LEFT:
                	mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
                	if(mine.mine_x)
                	{
                    		mine.mine_x --;
                    		mine_get_cur();
                    		mine_show_cursor();
                	}
                	else
                	{   
                		mine.mine_x = (MINE_LIE - 1); 
                    		mine_get_cur();
                    		mine_show_cursor();
                	}	
                    	break;
            	case    K_RIGHT:
                	mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
                	if(mine.mine_x < (MINE_LIE - 1))
                	{
                    		mine.mine_x ++;
                    		mine_get_cur();
                    		mine_show_cursor();
                	}
                	else
                	{
                    		mine.mine_x = 0;	
                    		mine_get_cur();
                    		mine_show_cursor();
                	}	
                	break;        
        	case    K_QUESTION: 
        		if(mine.area[mine.mine_y][mine.mine_x].play_info == MINE_SMINE)
        		{
            			mine.area[mine.mine_y][mine.mine_x].play_info = MINE_UNSURE;
            			num_set ++;
            			mine_show_mine();
        		}
        		else if (mine.area[mine.mine_y][mine.mine_x].play_info == MINE_FULL || mine.area[mine.mine_y][mine.mine_x].play_info == MINE_UNSURE) 
        		{
            			mine.area[mine.mine_y][mine.mine_x].play_info = MINE_SMINE;
            			num_set --;
            			mine_show_mine();
            			if(mine_chk_win())
            			{
                			mine.mine_flash = FALSE;
                			mine.mine_status = 1;
                			mine_chk_start();
            			}
        		}
        		mine_show_area(mine.mine_x, mine.mine_y, mine.area[mine.mine_y][mine.mine_x].play_info);
        		mine_show_cursor();
        		break;
	        default:     
   			break;
    	}
}

int mine_chk_win()
{
    	char x,y;
    
    	for(y = 0; y < MINE_HANG; y++)
        	for(x = 0; x < MINE_LIE; x++)
        	{              
            		if(mine.area[y][x].play_info == MINE_FULL)
                		return FALSE;
            		if(mine.area[y][x].play_info == MINE_UNSURE)
                		return FALSE;
        	}
    	return TRUE;
}

void mine_init_area()
{
    	char i,j;
    	for(i = 0; i < MINE_HANG; i++)
        	for(j = 0; j < MINE_LIE; j ++)
        	{ 
            		mine.area[i][j].init_info = MINE_0;
            		mine.area[i][j].play_info = MINE_FULL;
        	}
} 

void mine_init_mine()
{
    	mine.mine_time = 0;
    	mine.mine_cur = 0;
    
    	mine_get_xy();       
    	mine_init_area();
    	//show all mines       
    	mine_creat_mine();
    	//load mine to area
    	mine_load_mine();
    	//load mine num area
    	mine_load_num();
    	num_set = mine.mine_num;
    	mine.mine_cur = 0;
    	bResShowPic(MINE_BCK,0,0);
    	bResShowPic(E01,58,142);
    	mine_show_mine();
    	mine_show_time();  
    	mine_get_xy();
}


void mine_creat_mine()
{
    	char i,j;
    	char num;
	
	//pint_debug(mine.mine_num);

    	for(i = 0; i < mine.mine_num; i ++)
    	{
        	while(1)
        	{
            		num = (char)rand();
            		if (num >= MINE_HANG * MINE_LIE)
            		{
                		continue;
            		}
            		for (j = 0; j < i; j++)
            		{
                		if (mine.mine_area[j] == num)
                		{
                    			break;
                		}
            		}
            		if (j == i)
            		{
                		mine.mine_area[i] = num;
                		break;
            		}
        	}
    	}
}

void mine_load_mine()
{
    	char i;
    	for(i = 0; i < mine.mine_num; i++)
    	{
        	mine.mine_cur = mine.mine_area[i];
        	//pint_debug(mine.mine_cur);
        	mine_get_xy();

⌨️ 快捷键说明

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