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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? findthebombappui.cpp

?? Symbian C++
?? CPP
字號(hào):
// Copyright (c) 2004, Symbian Software Ltd. All rights reserved.

#include <avkon.hrh>
#include <aknnotewrappers.h>

#include "FindTheBomb.pan"
#include "FindTheBombAppUi.h"
#include "FindTheBombAppView.h"
#include "findthebombdefs.h"
#include "FindTheBomb.hrh"
#include <FindTheBomb.rsg>
#include <aknnavi.h>
#include <eikspane.h>
#include <aknnavide.h>
#include <findthebomb.mbg>
#include <eikfutil.h>
#include <e32math.h>
#include <e32std.h>
#define MaxInfoNoteTextLen 40



CFindTheBombAppUi::CFindTheBombAppUi()
    {
    }

CFindTheBombAppUi::~CFindTheBombAppUi()
    {
    if (iAppView)
        {
        iEikonEnv->RemoveFromStack(iAppView);
        delete iAppView;
        iAppView = NULL;
        }
    iTileState.Close();
    iWinLines.Close();
    delete iNaviDecorator;
    }

void CFindTheBombAppUi::SetWinLineL(TInt aTile)
    {
    User::LeaveIfError(iWinLines.Append(aTile));
    
	}
void CFindTheBombAppUi::GetBombAddress()
    {   const   TUint   KMaxRndNumber   =  KNumberOfTiles;
		
		

		for (TInt k=0;k<TotalNumber;k++)
		{
			time.HomeTime();   
			iChangeSeed=time.Int64();
			iRndSeed   =   time.Int64()*iChangeSeed; 
			TUint   number   =   Math::Rand(iRndSeed)   %   KMaxRndNumber;   
		    iWinLines[k]=number;
			for (TInt j=k-1;j>0;j--)
			{
				if(iWinLines[j]==iWinLines[k])
					k--;
			}
			
		
			iChangeSeed*=number;
		
			
		}
	}

void CFindTheBombAppUi::FindTheBombNearby(TInt i)
{
	TInt iBombsAround=0;
	if(i-KTilesPerRow>=0)
		iBombsAround+=iBombAddress[i-KTilesPerRow];
	
	if(i+KTilesPerRow<KNumberOfTiles)
		iBombsAround+=iBombAddress[i+KTilesPerRow];
	
	if((i%KTilesPerRow)>0)
		iBombsAround+=iBombAddress[i-1];
	
	if((i%KTilesPerRow)<(KTilesPerRow-1))
		iBombsAround+=iBombAddress[i+1];
	
	if((i-KTilesPerRow>=0)&&(i%KTilesPerRow>0))
		iBombsAround+=iBombAddress[i-KTilesPerRow-1];
	
	if((i+KTilesPerRow<=KNumberOfTiles)&&(i%KTilesPerRow>0))
		iBombsAround+=iBombAddress[i+KTilesPerRow-1];
	
	if(((i%KTilesPerRow)<(KTilesPerRow-1))&&(i-KTilesPerRow>=0))
		iBombsAround+=iBombAddress[i+1-KTilesPerRow];
	
	if(((i%KTilesPerRow)<(KTilesPerRow-1))&&(i+KTilesPerRow<KNumberOfTiles))
		iBombsAround+=iBombAddress[i+1+KTilesPerRow];

	iTileState[i]=iBombsAround/100;
	
	if (iTileState[i]==0)
	{
	if((i-KTilesPerRow>=0)&&(iTileState[i-KTilesPerRow]==StartState))
		FindTheBombNearby(i-KTilesPerRow);
	
	if((i+KTilesPerRow<KNumberOfTiles)&&(iTileState[i+KTilesPerRow]==StartState))
		FindTheBombNearby(i+KTilesPerRow);
	
	if(((i%KTilesPerRow)>0)&&(iTileState[i-1]==StartState))
		FindTheBombNearby(i-1);
	
	if(((i%KTilesPerRow)<(KTilesPerRow-1))&&(iTileState[i+1]==StartState))
		FindTheBombNearby(i+1);
	
	if(((i-KTilesPerRow>=0)&&(i%KTilesPerRow>0))&&(iTileState[i-KTilesPerRow-1]==StartState))
		FindTheBombNearby(i-KTilesPerRow-1);
	
	if(((i+KTilesPerRow<=KNumberOfTiles)&&(i%KTilesPerRow>0))&&(iTileState[i+KTilesPerRow-1]==StartState))
		FindTheBombNearby(i+KTilesPerRow-1);
	
	if((((i%KTilesPerRow)<(KTilesPerRow-1))&&(i-KTilesPerRow>=0))&&(iTileState[i+1-KTilesPerRow]==StartState))
		FindTheBombNearby(i+1-KTilesPerRow);
	
	if((((i%KTilesPerRow)<(KTilesPerRow-1))&&(i+KTilesPerRow<KNumberOfTiles))&&(iTileState[i+1+KTilesPerRow]==StartState))
		FindTheBombNearby(i+1+KTilesPerRow);	}

}


void CFindTheBombAppUi::ConstructL()
    {
    BaseConstructL(EAknEnableSkin); 
    iAppView = new(ELeave) CFindTheBombAppView();
    iAppView->ConstructL(ClientRect(), this);
    AddToStackL(iAppView); // Enable keypresses to the view
    
	
	for (TInt i=0; i<TotalNumber; i++)
        {
        User::LeaveIfError(iWinLines.Append(ETileBlank));
        }
	for (TInt i=0; i<KNumberOfTiles; i++)
        {
        User::LeaveIfError(iBombAddress.Append(ETileBlank));
        }
	for (TInt i=0; i<KNumberOfTiles; i++)
        {
        User::LeaveIfError(iTileState.Append(StartState));
        }

	
		
	GetBombAddress();
    
	
		for (TInt i=0; i<TotalNumber; i++)
        {
     
        iBombAddress[iWinLines[i]]=NumOfBomb;
		}
		
	
	
	CEikStatusPane* sp = StatusPane();
    iNaviPane = (CAknNavigationControlContainer*)sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi));

    
	}



void CFindTheBombAppUi::HandleCommandL(TInt aCommand)
    {
    switch(aCommand)
        {
        case EEikCmdExit:
        case EAknSoftkeyExit:
            {
            SaveL();
            Exit();
            }
            break;
        case EFindTheBombNewGame:
            {
            
			for (TInt i=0; i<KNumberOfTiles; i++)
                {
                iTileState[i] = StartState;
                iBombAddress[i]=0;
				}
			
			for (TInt i=0; i< TotalNumber;i++)
			{iWinLines[i]=0;}

            GetBombAddress();
            
			for (TInt i=0; i<TotalNumber; i++)
			{
				iBombAddress[iWinLines[i]]=NumOfBomb;
			}
			iGameStatus=EGameNew;

            iAppView->ResetView();
            }
            break;
        case EFindTheBombHelp:
            {
			 _LIT(message,"There are 9 bombs,find them");
            CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
            informationNote->ExecuteLD(message);

            }
            break;
		case EFindABomb:
			{
				SquareState=Bomb;
			}
			break;
		case ECancelTheSign:
			{
				SquareState=Cancel;
			}
			break;
		default:
            {
            break;
            }
            break;
        }
    }

void CFindTheBombAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
    {
    if (aResourceId == R_FINDTHEBOMB_MENU)
        {
        if (iGameStatus == EGameNew)
            {
            CEikMenuPaneItem::SData item;
            item.iFlags = 0;
            item.iCascadeId = 0;
            aMenuPane->AddMenuItemL(item);
            }
        }
    }

TBool CFindTheBombAppUi::IsCrossTurn()
    {
    return iCrossTurn;
    }


TBool CFindTheBombAppUi::HitSquareL(TInt aIndex)
{
    if (iGameStatus == EGameEnded)
        {
        return EFalse;
        }
    if (iGameStatus == EGameNew)
        {
        iGameStatus = EGamePlaying;
        }

	if ((SquareState==Cancel)&&(iTileState[aIndex]==Bomb))
	{
		iTileState[aIndex]=StartState;
	}
	if (iTileState[aIndex] ==StartState)
	{
	    if (SquareState==Bomb)
		{
			iTileState[aIndex]=Bomb;
		}
		
		else if (iBombAddress[aIndex]==NumOfBomb)
		{
			iTileState[aIndex]=NumOfBomb;
			iGameStatus= EGameEnded;
			for(TInt i=0;i<KNumberOfTiles;i++)
			{
				if (iTileState[i]==StartState)
					iTileState[i]=0;
				if (iBombAddress[i]==NumOfBomb)
					iTileState[i]=NumOfBomb;
			}
						
			TBuf<MaxInfoNoteTextLen> text;
			iEikonEnv->ReadResource(text, R_FINDTHEBOMB_YOU_LOSS);
			CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
			informationNote->ExecuteLD(text);


		}
		else
		{
			FindTheBombNearby(aIndex);	
			
			
			TInt j=0;
			for (TInt i=0;i<KNumberOfTiles;i++)
			{
				if((iTileState[i]!=StartState)&&(iTileState[i]!=Bomb))
					j++;
				if (j==72)
				{
					iGameStatus= EGameEnded;
					TBuf<MaxInfoNoteTextLen> text;
					iEikonEnv->ReadResource(text, R_FINDTHEBOMB_YOU_WINS);
					CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
					informationNote->ExecuteLD(text);
				
					for (TInt i=0;i<KNumberOfTiles;i++)
					{
						if (iBombAddress[i]==NumOfBomb)
						{
							iTileState[i]=Bomb;
						}				
					}
				}
			}

		}
		SquareState=0;
		return EFalse;
  }
}

TInt CFindTheBombAppUi::SquareStatus(TInt aIndex)
    {
    return iTileState[aIndex];
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久―日本道色综合久久| 日本美女一区二区三区视频| 国产精品天天看| 国产视频一区在线观看| 久久综合丝袜日本网| 久久免费的精品国产v∧| 久久综合久久综合久久综合| 国产午夜精品一区二区三区视频 | 成人的网站免费观看| 国产91在线观看丝袜| 成人精品亚洲人成在线| 成人av资源网站| 91蝌蚪porny| 欧美性色黄大片| 欧美日韩国产综合一区二区| 欧美日韩黄色一区二区| 日韩精品资源二区在线| 久久婷婷久久一区二区三区| 国产精品免费久久| 亚洲伦在线观看| 亚洲一区二区av在线| 天天爽夜夜爽夜夜爽精品视频| 日本sm残虐另类| 国产69精品久久久久777| eeuss鲁片一区二区三区在线看| 一本久道中文字幕精品亚洲嫩| 欧美性做爰猛烈叫床潮| 欧美一级日韩一级| 国产人久久人人人人爽| 亚洲男女毛片无遮挡| 亚洲国产精品久久久久婷婷884| 人人精品人人爱| 高清国产一区二区| 欧美午夜寂寞影院| 精品蜜桃在线看| 亚洲欧洲日韩一区二区三区| 香蕉加勒比综合久久| 国产一区久久久| 99re8在线精品视频免费播放| 欧美日韩国产首页在线观看| 国产精品视频在线看| 亚洲国产精品久久久男人的天堂| 精品一区二区三区免费观看| 91丨porny丨在线| 欧美一区二区黄色| 中文字幕在线播放不卡一区| 日日夜夜免费精品| 成人午夜免费av| 欧美日韩视频不卡| 欧美激情在线一区二区三区| 午夜精品免费在线| 国产精品夜夜嗨| 7777精品伊人久久久大香线蕉的| 国产区在线观看成人精品| 亚洲国产美女搞黄色| 国v精品久久久网| 9191久久久久久久久久久| 国产精品卡一卡二| 秋霞午夜av一区二区三区| 9i看片成人免费高清| 欧美刺激午夜性久久久久久久| 亚洲欧美另类久久久精品| 精品综合免费视频观看| 91福利社在线观看| 久久久五月婷婷| 日韩成人一区二区三区在线观看| 97se狠狠狠综合亚洲狠狠| 精品久久久久一区| 天天综合天天做天天综合| 91丨国产丨九色丨pron| 国产欧美精品区一区二区三区 | 亚洲一区二区三区在线| 国产xxx精品视频大全| 91精品国产综合久久婷婷香蕉| 中文字幕中文字幕在线一区| 精品一区二区三区香蕉蜜桃| 欧美丝袜丝交足nylons| 亚洲天堂a在线| 国产成人啪免费观看软件| 日韩欧美久久久| 日韩精品乱码av一区二区| 91精品办公室少妇高潮对白| 国产精品久久久久久久浪潮网站 | 国产九九视频一区二区三区| 欧美妇女性影城| 亚洲一区中文在线| 成人久久18免费网站麻豆| 久久久国产一区二区三区四区小说 | 欧美视频日韩视频在线观看| ...中文天堂在线一区| 国产suv精品一区二区三区| 精品国产乱码久久久久久久久| 日本不卡123| 欧美一区二区三区的| 亚洲成a人v欧美综合天堂下载| 色系网站成人免费| 亚洲另类在线一区| 色婷婷综合激情| 一区二区三区久久久| 色诱视频网站一区| 亚洲视频一区二区在线观看| 成人免费看片app下载| 国产精品久久久久精k8| 成人动漫av在线| 亚洲日本中文字幕区| 91蜜桃婷婷狠狠久久综合9色| 中文字幕在线不卡国产视频| 99久久99久久久精品齐齐| 中文字幕一区二区视频| 91在线云播放| 亚洲一区自拍偷拍| 欧美精品久久一区| 日本伊人色综合网| 精品国产乱码久久久久久夜甘婷婷 | 综合在线观看色| 91精品1区2区| 日一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 国产在线播放一区| 国产三级一区二区| av电影在线观看一区| 一区二区成人在线观看| 欧美麻豆精品久久久久久| 另类小说综合欧美亚洲| 久久―日本道色综合久久| jvid福利写真一区二区三区| 伊人一区二区三区| 日韩一区二区三区视频在线观看 | 欧美电影一区二区| 九九精品视频在线看| 国产精品久久久久9999吃药| 欧日韩精品视频| 九九视频精品免费| 国产精品色在线| 欧美美女一区二区三区| 九九精品视频在线看| 最新不卡av在线| 欧美精品乱码久久久久久按摩| 精品制服美女久久| 中文字幕一区三区| 91精品国产高清一区二区三区蜜臀| 经典一区二区三区| 亚洲色图在线看| 日韩精品一区二区在线| 成人福利视频网站| 午夜视黄欧洲亚洲| 国产精品视频一二三| 9191成人精品久久| caoporn国产一区二区| 日韩有码一区二区三区| 国产精品污污网站在线观看 | 综合久久久久久| 91精品国产欧美日韩| 粉嫩aⅴ一区二区三区四区| 午夜精品影院在线观看| 国产乱码精品一区二区三区五月婷| 亚洲乱码日产精品bd| 久久先锋资源网| 欧美三级日本三级少妇99| 国产一区二区三区蝌蚪| 亚洲国产成人porn| 欧美国产精品v| 在线视频国内一区二区| 国产一区二区三区在线看麻豆| 一区二区三区四区激情| 久久蜜臀精品av| 欧美二区三区的天堂| 99这里只有久久精品视频| 加勒比av一区二区| 亚洲国产欧美日韩另类综合 | 五月婷婷另类国产| 欧美精品自拍偷拍| 免费在线看成人av| 精品入口麻豆88视频| 国产精品一级黄| 国产清纯白嫩初高生在线观看91 | 一区二区激情视频| 欧美精品久久99| 精品中文字幕一区二区| 久久免费看少妇高潮| 成人动漫一区二区| 亚洲精品成人精品456| 欧美巨大另类极品videosbest | 亚洲欧美日韩国产综合| 欧美在线观看一区| 日韩精品免费视频人成| 欧美mv和日韩mv国产网站| 国产精品一二三四五| 亚洲人成人一区二区在线观看| 欧美色区777第一页| 奇米色一区二区三区四区| 久久久久国色av免费看影院| 9久草视频在线视频精品| 午夜精品在线视频一区| 精品国产乱码久久久久久1区2区| 丰满白嫩尤物一区二区| 亚洲福利视频三区| 久久婷婷色综合| 欧美亚洲综合另类| 国产精一品亚洲二区在线视频|