一个随机生成数独的C++程序

一个随机生成数独的C++程序,第1张

概述一个随机生成数独的C++程序

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。@H_419_1@

内存溢出小编现在分享给大家,也给大家做个参考。@H_419_1@

//mySIZE是数独棋盘的边长,棋盘是mySIZE*mySIZE的大小int mySIZE = 9;voID print(const vector<vector<int>> &num){	for (int i = 0; i < mySIZE; i++)	{		for (int j = 0; j < mySIZE; j++)		{			cout << num[i][j] << " ";		}		cout << endl;	}}bool IsRightPlace(vector<vector<int>> &num,int row,int col){	int n = num[row][col];	//注意i < row	for (int i = 0; i < row; i++)	{		if (num[i][col] == n)			return false;	}	//注意i < col	for (int i = 0; i < col; i++)	{		if (num[row][i] == n)			return false;	}	int row_start = row / 3;	row_start *= 3;	int row_end = row_start + 2;	int col_start = col / 3;	col_start *= 3;	int col_end = col_start + 2;	int i = row_start,j = col_start;	//注意 k <= 8	for (int k = 1; k <= 8; k++)	{		if (row != i || col != j)		{			if (num[i][j] == n)				return false;		}		else			break;		if (j == col_end)		{			//注意j = col_start !不要搞错换行时列的起始点!			j = col_start;			i = i + 1;		}		else		{			j = j + 1;		}	}	return true;}bool generate_core(vector<vector<int>> &num,int col){		vector<int> number;	for (int i = 1; i <= 9; i++)		number.emplace_back(i);	while (!number.empty())	{		int randindex = rand() % number.size();		int randnum = number[randindex];		number.erase(number.begin() + randindex);		num[row][col] = randnum;		if (IsRightPlace(num,row,col) == false)			continue;		if (row == mySIZE - 1 && col == mySIZE-1)		{			return true;		}		int nextrow,nextcol;		if (col == mySIZE-1)		{			nextrow=row + 1;			nextcol = 0;		}		else		{			nextrow = row;			nextcol = col + 1;		}		bool next = generate_core(num,nextrow,nextcol);		if (next)			return true;	}	if (number.empty())	{		num[row][col] = -5;		return false;	}		}voID generate(){	vector<vector<int>> num(mySIZE,vector<int>(mySIZE,-1));	srand((unsigned)time(NulL));	if( generate_core(num,0) )		print(num);}

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。@H_419_1@

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。@H_419_1@ 总结

以上是内存溢出为你收集整理的一个随机生成数独的C++程序全部内容,希望文章能够帮你解决一个随机生成数独的C++程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存