《c语言数独字谜游戏课程设计》由会员分享,可在线阅读,更多相关《c语言数独字谜游戏课程设计(10页珍藏版)》请在金锄头文库上搜索。
1、文档供参考,可复制、编制,期待您的好评与关注! 学生课程设计报告课程设计题目: 数独字谜游戏专 业 名 称: 软件工程 2013 年 6 月 21 日一、课程设计内容数独字谜游戏:数独字谜游戏是在一个9x9的正方形内,给出一定的数字,让玩家在剩余的空格之内填写数字,最终使每一行,每一列,每一个3x3的小正方形都只有1-9,并且不重复,这样玩家就算通关的一款游戏。二、 技术路线是基于vc+6.0环境下所开发的程序,加入了PlaySound()函数,设置了游戏的背景音乐。加入了,头文件,运用了以系统时间为种子的随机函数。接收用户键盘输入信息,实现进入游戏,输入坐标,输入数字等功能。运用的类型转换,
2、将char型数组转换为int型数组。三、 设计与实现1.游戏基本功能:游戏有难度选择,通关后继续游戏和退出游戏的界面。游戏在选择难度后,会在布满数字的9x9的正方形宫格内随机生成一些空白字符,根据选择难度的不同,生成的空白字符数目会不同,空白字符越多,难度越大。通过正方形宫格外的坐标,用键盘输入想输入数字的坐标和数字,随后会显示出输入数字后新宫格,再重复以上操作,直到每一行,每一列,每一个3x3的宫格内只有1-9这9个数字并且不重复,游戏就算通关。游戏通关后,可以选择继续游戏,并且挑战更大难度,也可以选择退出游戏,下次再战。2.函数定义和声明(1) 头文件#include #include /
3、随机函数#include /系统时间#include pcc32.h/彩色文本#include #pragma comment(lib, pcc32_vc6.lib)#pragma comment(lib,winmm.lib) using namespace std;(2)函数声明bool yz(char b910) /验证子函数,验证每一行,每一列,每一个3x3宫格都是1-9. / 3.主函数int main()void main()PlaySound(char*)kanong.wav,NULL,SND_ASYNC|SND_LOOP);char a910=493761528,58294316
4、7,716528349,139674852,658219734,247835691,975382416,821456973,364197285;int b81,c81,q=0,p=0;int k,x;dosetTextColor(14);cout *0*0*n;setTextColor(10);cout请选择游戏的难易级别为?(3高,2中,1低):k;switch(k)int i,j,m,n,gs;case 1:srand(int)time(0);for(gs=0;gs30;gs+)/随机在已经布满的9x9宫格里,运用随机数,并且以系统时间为参数,随机产生空白字符, /低难度的数独,每次产生的
5、空白字符为22个左右, m=(int)(10*rand()/(RAND_MAX+1.0);n=(int)(10*rand()/(RAND_MAX+1.0);amn= ;bq=m;/将随机产生的空白字符的坐标分别存在b,c两个数组中.cp=n;q+;p+;b30=10,c30=10;dosetTextColor(15);cout 1 2 3 4 5 6 7 8 9endl;setTextColor(3);cout endl;cout -endl;for(i=0;i3;i+)setTextColor(15);cout(i+1) ;for(j=0;j9;j+) /输出不同颜色的题目字符和空白字符.i
6、f(j%3!=0)setTextColor(3);cout| ;for(q=0,p=0;q31,p31;q+,p+) /将随机的空白字符单独表示出来,并且以另一种颜色输出表示.if(i=bq&j=cp)setTextColor(14);coutaij;break;if(q=30&p=30)/将剩下的题目字符用另一种颜色输出表示setTextColor(12);coutaij;setTextColor(3);cout ;elsesetTextColor(3);cout;for(q=0,p=0;q31,p31;q+,p+)if(i=bq&j=cp)setTextColor(14);coutaij;
7、break;if(q=30&p=30)setTextColor(12);coutaij;setTextColor(3);cout ;setTextColor(3);coutendl;setTextColor(3);cout =endl;cout =endl;for(i=3;i6;i+)setTextColor(15);cout(i+1) ;for(j=0;j9;j+)if(j%3!=0)setTextColor(3);cout| ;for(q=0,p=0;q31,p31;q+,p+)if(i=bq&j=cp)setTextColor(14);coutaij;break;if(q=30&p=30
8、)setTextColor(12);coutaij;setTextColor(3);cout ;elsesetTextColor(3);cout;for(q=0,p=0;q31,p31;q+,p+)if(i=bq&j=cp)setTextColor(14);coutaij;break;if(q=30&p=30)setTextColor(12);coutaij;setTextColor(3);cout ;setTextColor(3);coutendl;setTextColor(3);cout =endl;cout =endl;for(i=6;i9;i+)setTextColor(15);cout(i+1) ;for(j=0;j9;j+)if(j%3!=0)setTextColor(3);cout| ;for(q=0,p=0;q31,p31;q+,p+)if(i=bq&j=cp)setTextColor(14);coutaij;break;if(q=30&p=30)setTextColor(12);coutaij;setTextColor(3);cout ;