c语言数独字谜游戏课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生课程设计报告

课程设计题目:数独字谜游戏

专业名称:软件工程

2013 年6 月21 日

一、课程设计内容

数独字谜游戏:数独字谜游戏是在一个9x9的正方形内,给出一定的数字,让玩家在剩余的空格之内填写数字,最终使每一行,每一列,每一个3x3的小正方形都只有1-9,并且不重复,这样玩家就算通关的一款游戏。

二、技术路线

是基于vc++6.0环境下所开发的程序,

加入了PlaySound()函数,设置了游戏的背景音乐。

加入了头文件,运用了以系统时间为种子的随机函数。

接收用户键盘输入信息,实现进入游戏,输入坐标,输入数字等功能。

运用的类型转换,将char型数组转换为int型数组。

三、设计与实现

1.游戏基本功能:

游戏有难度选择,通关后继续游戏和退出游戏的界面。

游戏在选择难度后,会在布满数字的9x9的正方形宫格内随机生成一些空白字符,根据选择难度的不同,生成的空白字符数目会不同,空白字符越多,难度越大。

通过正方形宫格外的坐标,用键盘输入想输入数字的坐标和数字,随后会显示出输入数字后新宫格,再重复以上操作,直到每一行,每一列,每一个3x3的宫格内只有1-9这9个数字并且不重复,游戏就算通关。

游戏通关后,可以选择继续游戏,并且挑战更大难度,也可以选择退出游戏,下次再战。

2.函数定义和声明

(1)头文件

#include

#include //随机函数

#include //系统时间

#include "pcc32.h" //彩色文本

#include

#pragma comment(lib, "pcc32_vc6.lib")

#pragma comment(lib,"winmm.lib")

using namespace std;

(2)函数声明

bool yz(char b[9][10]) //验证子函数,验证每一行,每一列,每一个3x3宫格都是1-9.

3.主函数int main()

void main()

{

PlaySound((char*)"kanong.wav",NULL,SND_ASYNC|SND_LOOP);

char a[9][10]={{"493761528"},

{"582943167"},

{"716528349"},

{"139674852"},

{"658219734"},

{"247835691"},

{"975382416"},

{"821456973"},

{"364197285"}};

int b[81],c[81],q=0,p=0;

int k,x;

do{

setTextColor(14);

cout<<" *^0^*<<<<<欢迎进入数独游戏>>>>>*^0^*\n";

setTextColor(10);

cout<<"请选择游戏的难易级别为?(3—高,2—中,1—低):"<

cin>>k;

switch(k)

{

int i,j,m,n,gs;

case 1:

srand((int)time(0));

for(gs=0;gs<30;gs++)//随机在已经布满的9x9宫格里,运用随机数,并且以系统时间为参数,随机产生空白字符,

{ //低难度的数独,每次产生的空白字符为22个左右,

m=(int)(10*rand()/(RAND_MAX+1.0));

n=(int)(10*rand()/(RAND_MAX+1.0));

a[m][n]=' ';

b[q]=m; //将随机产生的空白字符的坐标分别存在b,c两个数组中.

c[p]=n;

q++;

p++;

}

b[30]=10,c[30]=10;

do

{

setTextColor(15);

cout<<" 1 2 3 4 5 6 7 8 9"<

setTextColor(3);

cout<<" __________________"<

cout<<" ‖----------------------------------‖"<

for(i=0;i<3;i++)

{

setTextColor(15);

cout<<" "<<(i+1)<<" ";

for(j=0;j<9;j++) //输出不同颜色的题目字符和空白字符.

{

if(j%3!=0)

{

setTextColor(3);

cout<<"| ";

for(q=0,p=0;q<31,p<31;q++,p++) //将随机的空白字符单独表示出来,并且以另一种颜色输出表示.

{

if(i==b[q]&&j==c[p])

{

setTextColor(14);

cout<

break;

}

if(q==30&&p==30) //将剩下的题目字符用另一种颜色输出表示

{

setTextColor(12);

cout<

}

}

setTextColor(3);

cout<<" ";

}

else

{

setTextColor(3);

cout<<"‖";

for(q=0,p=0;q<31,p<31;q++,p++)

{

if(i==b[q]&&j==c[p])

{

setTextColor(14);

cout<

相关文档
最新文档