当前位置: 首页>>代码示例>>C++>>正文


C++ CNode::getRow方法代码示例

本文整理汇总了C++中CNode::getRow方法的典型用法代码示例。如果您正苦于以下问题:C++ CNode::getRow方法的具体用法?C++ CNode::getRow怎么用?C++ CNode::getRow使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CNode的用法示例。


在下文中一共展示了CNode::getRow方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CDialog

CTipDlg::CTipDlg(CWnd* pParent, int table[9][9])
	: CDialog(CTipDlg::IDD, pParent)
	, m_index(0)
	, m_bStep(false)
{
	for(int i = 0;i < 9;i ++)
	{
		for(int j = 0;j < 9;j ++)
		{
			m_node[i][j].setLoc(i, j);
		}
	}

	for(int i = 0;i < 9;i ++)
	{
		for(int j= 0;j < 9;j ++)
		{
			if(table[i][j] == 0)
			{
				m_nodeList[8].AddNode(&m_node[i][j]);
			}
			else
			{
				m_node[i][j].setNum(table[i][j]);
				m_nodeList[0].AddNode(&m_node[i][j]);
			}
		}
	}


	for(CNode* pt = m_nodeList[0].GetHead();pt != NULL;pt = pt->next)
	{
		delSurround(pt->getData(), pt->getCol(), pt->getRow());
	}

	while (ConfirmNode());
}
开发者ID:zephyrer,项目名称:sudoku-xiu,代码行数:37,代码来源:TipDlg.cpp

示例2: ConfirmNode

bool CTipDlg::ConfirmNode(void)
{
	int lev = 1;
	for(int lev = 1;lev < 9;lev ++)
	{
		for(CNode *pt = m_nodeList[lev].GetHead();pt != NULL;pt = pt->next)
		{
			for(int num = 1;num < 10;num ++)
			{
				if(pt->hasNum(num))
				{
					bool otherHas = false;
					for(int i = 0;i < 9;i ++)
					{
						if(m_node[i][pt->getRow()].hasNum(num) && i != pt->getCol())
						{
							otherHas = true;
							break;
						}
					}

					if(otherHas)
					{
						otherHas = false;
						for(int i = 0;i < 9;i ++)
						{
							if(m_node[pt->getCol()][i].hasNum(num) && i != pt->getRow())
							{
								otherHas = true;
								break;
							}
						}
					}
					else
					{
						
						NodeRC rc;
						rc.col = pt->getCol();
						rc.row = pt->getRow();
						rc.way = 1;
						m_vectorNum.push_back(rc);


						goto labelEnd2;
					}

					if(otherHas)
					{
						otherHas = false;
						int baseRow = pt->getRow() / 3 * 3;
						int baseCol = pt->getCol() / 3 * 3;
						for(int i = baseRow;i < baseRow + 3;i ++)
						{
							for(int j = baseCol;j < baseCol + 3;j ++)
							{
								if(m_node[j][i].hasNum(num) && !(i == pt->getRow() && j == pt->getCol()))
								{
									otherHas = true;
									goto labelEnd2;
								}
							}
						}
					}
					else
					{
						
						NodeRC rc;
						rc.col = pt->getCol();
						rc.row = pt->getRow();
						rc.way = 2;
						m_vectorNum.push_back(rc);

						goto labelEnd2;
					}
					if(!otherHas)
					{
						NodeRC rc;
						rc.col = pt->getCol();
						rc.row = pt->getRow();
						rc.way = 3;
						m_vectorNum.push_back(rc);
					}
labelEnd2:
					if(!otherHas)
					{
						m_nodeList[pt->getLen() - 1].RemoveNode(pt);
						pt->setNum(num);

						m_nodeList[0].AddNode(pt);
						delSurround(num, pt->getCol(), pt->getRow());
						return true;
					}



				}
			}
		}
	}
	return false;
//.........这里部分代码省略.........
开发者ID:zephyrer,项目名称:sudoku-xiu,代码行数:101,代码来源:TipDlg.cpp


注:本文中的CNode::getRow方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。