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

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

?? childview.cpp

?? Windows CE上的掃雷小游戲
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	if( m_gameState != GS_ACTIVE )
		return;

	DrawButton( &dc, SURPRISE );
	int row = (point.y - 55) / 16;
	int col = (point.x - 12) / 16;
	if( point.x < 12 || point.y < 55 ||
		!InBound(row, col) )
		return;

	if( nFlags & MK_RBUTTON )
	{
		OnBothButtonDown( row, col );
		return;
	}

	if( m_board[row][col] == NONE )
	{
		m_lastrow = row;
		m_lastcol = col;
		DrawCell( &dc, row, col, 0 );
	}

	CWnd ::OnLButtonDown(nFlags, point);
}
//
//void CChildView::OnRButtonDown(UINT nFlags, CPoint point) 
//{
//	if( m_gameState != GS_ACTIVE )
//		return;
//
//	int row = (point.y - 55) / 16;
//	int col = (point.x - 12) / 16;
//	if( point.x < 12 || point.y < 55 ||
//		!InBound(row, col) )
//		return;
//
//	if( nFlags & MK_LBUTTON )
//	{
//		OnBothButtonDown( row, col );
//		return;
//	}
//
//	CClientDC dc(this);	
//	if( m_board[row][col] == NONE )
//	{
//		m_board[row][col] = FLAG;
//		DrawLCD( &dc, 17, 16, --m_nMinesLeft );
//	}
//	else if( m_board[row][col] == FLAG )
//	{
//		if( m_bMark )
//			m_board[row][col] = MARK;
//		else
//			m_board[row][col] = NONE;
//		DrawLCD( &dc, 17, 16, ++m_nMinesLeft );
//	}
//	else if( m_board[row][col] == MARK )
//		m_board[row][col] = NONE;
//
//	DrawCell( &dc, row, col );
//	
//	CWnd ::OnRButtonDown(nFlags, point);
//}


void CChildView::OnBothButtonUp( int row, int col )
{
	CClientDC dc( this );
	if( m_board[row][col] > 8 )
	{
		if( m_lastrow >= 0 )
			DrawAdjacentCells( &dc, m_lastrow, m_lastcol, NONE );
		m_lastrow = -1;
		return;
	}
		
	int num = 0;
	for( int i = 0; i < 8; i ++ )
	{
		int nextrow = row + ymove[i];
		int nextcol = col + xmove[i];
		if( InBound(nextrow, nextcol) &&
			m_board[nextrow][nextcol] == FLAG )
			num ++;
	}
	
	if( m_board[row][col] == num )
	{
		for( int i = 0; i < 8; i ++ )
		{
			int nextrow = row + ymove[i];
			int nextcol = col + xmove[i];
			if( InBound(nextrow, nextcol) &&
				m_mines[nextrow][nextcol] == 9 &&
				m_board[nextrow][nextcol] != FLAG )
			{
				GameOver( nextrow, nextcol );
				break;
			}
		}
		if( m_gameState == GS_ACTIVE )
		{
			ZeroMemory( &m_graph, sizeof(m_graph) );
			Expand( &dc, row, col );
			if( CheckForWin() )
			{
				Win();
				return;
			}
			Invalidate();
		}
	}
	else if( m_lastrow >= 0 )
		DrawAdjacentCells( &dc, m_lastrow, m_lastcol, NONE );
	m_lastrow = -1;
}


void CChildView::OnBothButtonDown( int row, int col )
{
	m_lastrow = row;
	m_lastcol = col;
	CClientDC dc(this);
	DrawAdjacentCells( &dc, row, col, 0 );
}

void CChildView::Expand( CDC *pDC, int row, int col )
{
	m_graph[row][col] = TRUE;

	for( int i = 0; i < 8; i ++ )
	{
		int nextrow = row + ymove[i];
		int nextcol = col + xmove[i];
		if( InBound(nextrow, nextcol) &&
			!m_graph[nextrow][nextcol] )
		{
			if( m_mines[nextrow][nextcol] != 9 &&
				(m_board[nextrow][nextcol] == NONE ||
				m_board[nextrow][nextcol] == MARK) )
			{
				m_board[nextrow][nextcol] = m_mines[nextrow][nextcol];
				m_nDug ++;
			}
			if( m_mines[nextrow][nextcol] == 0 )
				Expand( pDC, nextrow, nextcol );
		}
	}
}

void CChildView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	ReleaseCapture();

	CClientDC dc(this);
	if( m_rcButton.PtInRect( point ) )
	{
		OnGameNew();
		return;
	}
	if( m_gameState != GS_ACTIVE )
		return;

	DrawButton( &dc, SMILE );

	int row = (point.y - 55) / 16;
	int col = (point.x - 12) / 16;
	if( point.x < 12 || point.y < 55 ||
		!InBound(row, col) )
	{
		m_lastrow = -1;
		return;
	}
	
	if( nFlags & MK_RBUTTON )
	{
		OnBothButtonUp( row, col );
		return;
	}

	m_lastrow = -1;
	if( m_board[row][col] != NONE )
		return;

	if( m_bFirst )
	{
		m_bFirst = FALSE;
		SetTimer( 1, 1000, NULL );
	}

	if( m_mines[row][col] != 9 )
	{
		m_board[row][col] = m_mines[row][col];
		m_nDug ++;
		if( CheckForWin() )
		{
			Win();
			return;
		}
		if( m_board[row][col] == 0 )
		{
			ZeroMemory( &m_graph, sizeof(m_graph) );
			Expand( &dc, row, col );
			if( CheckForWin() )
			{
				Win();
				return;
			}
			Invalidate();
		}
		else
			DrawCell( &dc, row, col );
	}
	else
		GameOver( row, col );

	CWnd ::OnLButtonUp(nFlags, point);
}

void CChildView::OnMouseMove(UINT nFlags, CPoint point) 
{
	CClientDC dc(this);
	if( !m_rcButton.PtInRect( point ) )
	{
		if( m_bButtonPressed )
		{
			m_bButtonPressed = FALSE;
			if( m_gameState == GS_GAMEOVER )
				DrawButton( &dc, ANGRY);
			else if( m_gameState == GS_ACTIVE )
				DrawButton( &dc, SMILE );
			else
				DrawButton( &dc, WIN );
		}
	}
	else if( !m_bButtonPressed &&
			 (nFlags & MK_LBUTTON) )
	{
		m_bButtonPressed = TRUE;
		DrawButton( &dc, PRESSED );
	}

	if( !(nFlags & MK_LBUTTON) || m_gameState != GS_ACTIVE )
		return;

	int row = (point.y - 55) / 16;
	int col = (point.x - 12) / 16;
	if( nFlags & MK_RBUTTON )
	{
		if( point.x < 12 || point.y < 55 ||
			!InBound(row, col) )
		{
			if( m_lastrow >= 0 )
				DrawAdjacentCells( &dc, m_lastrow, m_lastcol, NONE );
			m_lastrow = -1;
			return;
		}
		if( row != m_lastrow || col != m_lastcol )
		{
			if( m_lastrow >= 0 )
				DrawAdjacentCells( &dc, m_lastrow, m_lastcol, NONE );
			DrawAdjacentCells( &dc, row, col, 0 );
			m_lastrow = row;
			m_lastcol = col;
		}
		return;
	}


	if( point.x < 12 || point.y < 55 ||
		!InBound(row, col) || m_board[row][col] != NONE )
	{
		if( m_lastrow >= 0 )
			DrawCell( &dc, m_lastrow, m_lastcol, NONE );
		m_lastrow = -1;
		return;
	}
	if( row != m_lastrow || col != m_lastcol )
	{
		if( m_lastrow >= 0 )
			DrawCell( &dc, m_lastrow, m_lastcol, NONE );
		DrawCell( &dc, row, col, 0 );
		m_lastrow = row;
		m_lastcol = col;
	}
	
	CWnd ::OnMouseMove(nFlags, point);
}

//void CChildView::OnRButtonUp(UINT nFlags, CPoint point) 
//{
//	if( nFlags & MK_LBUTTON )
//	{
//		int row = (point.y - 55) / 16;
//		int col = (point.x - 12) / 16;
//		OnBothButtonUp( row, col );
//	}
//	
//	CWnd ::OnRButtonUp(nFlags, point);
//}


BOOL CChildView::CheckForWin()
{
	return (m_nDug >= m_width*m_height-m_nMines);
}

void CChildView::Win()
{
	for( int i = 0; i < m_height; i ++ )
		for( int j = 0; j < m_width; j ++ )
		{
			if( m_mines[i][j] == 9 )
				m_board[i][j] = FLAG;
		}
	m_nMinesLeft = 0;
	m_gameState = GS_WIN;
	KillTimer( 1 );
	Invalidate();
	
	if( m_level <= 2 &&
		m_time < m_recordTime[m_level] )
	{
		CWinDlg dlg;
		dlg.m_level = m_level;
		dlg.m_strName = m_recordName[m_level];
		if( dlg.DoModal() == IDOK )
		{
			m_recordName[m_level] = dlg.m_strName;
			m_recordTime[m_level] = m_time;
		}
	}
}


void CChildView::OnGameLevel( UINT nID )
{
	m_level = nID - ID_GAME_BASIC;
	OnGameNew();
}

void CChildView::OnUpdateGameLevel( CCmdUI *pCmdUI )
{
	int level = pCmdUI->m_nID - ID_GAME_BASIC;
	pCmdUI->SetCheck( m_level == level );
}

void CChildView::OnTimer(UINT nIDEvent) 
{
	if( !AfxGetMainWnd()->IsIconic() )
	{
		if( ++m_time > 999 )
			m_time = 999;
		CRect rc;
		GetClientRect( &rc );
		CClientDC dc(this);
		DrawLCD( &dc, rc.Width()-57, 16, m_time );
	}
	
	CWnd ::OnTimer(nIDEvent);
}

void CChildView::OnGameCustomize() 
{
	CCustomDlg dlg;
	dlg.m_width = m_width;
	dlg.m_height = m_height;
	dlg.m_nmines = m_nMines;
	if( dlg.DoModal() == IDOK )
	{
		m_level = CUSTOM;
		m_width = dlg.m_width;
		m_height = dlg.m_height;
		m_nMines = dlg.m_nmines;
		OnGameNew();
	}
}

void CChildView::OnGameMark() 
{
	m_bMark = !m_bMark;
}

void CChildView::OnUpdateGameMark(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck( m_bMark );
}

void CChildView::OnGameRecord() 
{
	CRecordDlg dlg;
	for( int i = 0; i < 3; i ++ )
	{
		dlg.m_strName[i] = m_recordName[i];
		dlg.m_strTime[i].Format( L"%d", m_recordTime[i] );
	}
	dlg.DoModal();
	for( i = 0; i < 3; i ++ )
	{
		m_recordName[i] = dlg.m_strName[i];
		wscanf( dlg.m_strTime[i], "%d", &m_recordTime[i] );
	}
}

void CChildView::OnHelpTopics() 
{
// mlHelp( NULL, "Winmine.chm::/Default.htm", HH_DISPLAY_TOPIC, 0 );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区不卡在线观看| 国产精品国产三级国产aⅴ入口| 欧美日本一区二区| 91麻豆成人久久精品二区三区| 成人免费视频一区| 成人a区在线观看| 99久久精品一区| 欧美老人xxxx18| 日韩免费视频一区| 久久久精品国产免费观看同学| 久久久五月婷婷| 亚洲va欧美va天堂v国产综合| 婷婷亚洲久悠悠色悠在线播放 | 欧美一级黄色录像| 亚洲在线观看免费视频| 久久99精品国产91久久来源 | 精品国产伦一区二区三区观看方式 | 欧美国产禁国产网站cc| 亚洲成a人片综合在线| 风间由美一区二区三区在线观看| 日韩精品视频网站| 色综合天天综合色综合av| 精品成人免费观看| 91精品国产综合久久久久| 国产精品国产三级国产普通话99 | 成人av资源站| 国产女主播视频一区二区| 亚洲香肠在线观看| 麻豆成人久久精品二区三区红| 日韩va欧美va亚洲va久久| av资源站一区| 日本一区二区三区高清不卡| 免费人成网站在线观看欧美高清| 欧美日韩国产综合草草| 日本不卡视频在线观看| 精品国精品自拍自在线| 久久91精品国产91久久小草| 日韩免费看网站| 成人毛片老司机大片| 国产色产综合色产在线视频| 成人动漫视频在线| 蜜臀久久99精品久久久画质超高清 | 亚洲高清视频中文字幕| 日韩视频在线一区二区| 国产福利精品一区| 亚洲中国最大av网站| 色婷婷一区二区| 日本免费新一区视频 | 成人永久aaa| 香蕉影视欧美成人| 欧美激情在线免费观看| 91麻豆精品91久久久久同性| 国产一区二区三区国产| 自拍偷自拍亚洲精品播放| 国产寡妇亲子伦一区二区| 日韩精品亚洲专区| 亚洲人成小说网站色在线| 久久人人爽人人爽| 欧美夫妻性生活| 欧美日韩亚洲综合在线| 91在线码无精品| 99久免费精品视频在线观看| 成人黄色一级视频| 成人一区在线看| 国模大尺度一区二区三区| 久久精品国产精品亚洲综合| 天堂va蜜桃一区二区三区| 水野朝阳av一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 亚洲国产精品嫩草影院| 日韩和欧美的一区| 午夜伊人狠狠久久| 视频一区中文字幕国产| 日韩中文字幕区一区有砖一区 | 在线不卡免费欧美| 欧美性受极品xxxx喷水| 91精品在线观看入口| 日韩欧美中文一区| 日韩一级成人av| 久久久久久久久伊人| 久久久久久久久免费| 欧美日韩一级视频| 欧美一级艳片视频免费观看| 91精品在线麻豆| 国产精品视频第一区| 夜夜精品视频一区二区| 日本欧美韩国一区三区| 国产在线观看一区二区| 成人av在线网| 91精品国产综合久久小美女| 久久亚洲捆绑美女| 亚洲成人综合网站| 国产成人精品一区二| 在线视频观看一区| 国产亚洲精品久| 天天色天天操综合| 精品一区二区三区久久久| 一本久久综合亚洲鲁鲁五月天 | 天天做天天摸天天爽国产一区| 国产精品综合视频| 欧美日韩综合在线免费观看| 久久一二三国产| 亚洲夂夂婷婷色拍ww47| 成人永久免费视频| 欧美一区二区大片| 亚洲精品乱码久久久久久日本蜜臀| 奇米影视一区二区三区小说| 国产成人精品一区二| 日韩美女在线视频| 亚洲成人免费av| 日本精品视频一区二区| 久久午夜羞羞影院免费观看| 亚洲欧美日韩国产一区二区三区| 国产美女一区二区| 日韩一区二区三区视频在线观看| 中文在线资源观看网站视频免费不卡| 五月激情综合网| 色吊一区二区三区| 国产精品女主播av| 成人av网站大全| 久久精品男人的天堂| 91麻豆国产福利精品| 亚洲欧洲国产日本综合| 国产精品夜夜爽| 国产精品乱人伦| 99久久久久久| 亚洲国产aⅴ天堂久久| 欧美午夜在线观看| 三级不卡在线观看| 欧美老人xxxx18| 琪琪久久久久日韩精品| 久久精品在这里| av亚洲精华国产精华精华| 亚洲精品美国一| 欧美日韩精品三区| 天天av天天翘天天综合网| 日韩欧美的一区二区| 成人开心网精品视频| 国产精品久久久久四虎| 欧美三级一区二区| 国产一区二区三区四区五区美女| 亚洲视频一区二区免费在线观看 | 国产欧美日本一区二区三区| 色综合久久天天综合网| 午夜av一区二区三区| 国产精品视频yy9299一区| 69av一区二区三区| 91在线观看免费视频| 久久99精品视频| 日韩精品乱码免费| 久久精品免视看| 色老头久久综合| 成人网在线播放| 国产精品家庭影院| 日本一区二区三区dvd视频在线| 51精品久久久久久久蜜臀| 欧美亚洲国产一区二区三区va| 国产一区视频在线看| 日本aⅴ精品一区二区三区| 污片在线观看一区二区| 亚洲第一久久影院| 中文字幕一区二区三区色视频| 丁香五精品蜜臀久久久久99网站| 亚洲精品免费电影| 欧美中文字幕一区二区三区亚洲| 成人影视亚洲图片在线| 91精品国模一区二区三区| 成人国产电影网| 丁香桃色午夜亚洲一区二区三区| 五月天激情综合| 亚洲在线中文字幕| 日韩三级在线免费观看| 99re热视频精品| 久久成人av少妇免费| 久久免费看少妇高潮| 欧美亚洲自拍偷拍| 国产成人av一区二区三区在线观看| 18成人在线视频| 日韩欧美精品在线视频| 欧美午夜宅男影院| 成人性视频网站| 韩国一区二区三区| 日韩精彩视频在线观看| 一区二区成人在线| 中文字幕日韩一区| 中文字幕不卡在线| 精品国产一区二区国模嫣然| 色婷婷精品久久二区二区蜜臀av| 粉嫩av一区二区三区粉嫩| 成人av电影免费观看| 国产成人精品午夜视频免费| 国产精品资源网| 成人激情免费网站| 99免费精品视频| 欧美少妇xxx| 欧美大尺度电影在线| 久久人人超碰精品| 亚洲免费伊人电影| 日本成人中文字幕| 福利电影一区二区三区|