資源描述:
《c語言數獨字謎游戲課程設計.doc》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、學生課程設計報告課程設計題目:數獨字謎游戲專業(yè)名稱:軟件工程2013年6月21日一、課程設計內容數獨字謎游戲:數獨字謎游戲是在一個9x9的正方形內,給出一定的數字,讓玩家在剩余的空格之內填寫數字,最終使每一行,每一列,每一個3x3的小正方形都只有1-9,并且不重復,這樣玩家就算通關的一款游戲。二、技術路線是基于vc++6.0環(huán)境下所開發(fā)的程序,加入了PlaySound()函數,設置了游戲的背景音樂。加入了,頭文件,運用了以系統(tǒng)時間為種子的隨機函數。接收用戶鍵盤輸入信息,實現進入游戲,輸入坐標,
2、輸入數字等功能。運用的類型轉換,將char型數組轉換為int型數組。二、設計與實現1.游戲基本功能:游戲有難度選擇,通關后繼續(xù)游戲和退出游戲的界面。游戲在選擇難度后,會在布滿數字的9x9的正方形宮格內隨機生成一些空白字符,根據選擇難度的不同,生成的空白字符數目會不同,空白字符越多,難度越大。通過正方形宮格外的坐標,用鍵盤輸入想輸入數字的坐標和數字,隨后會顯示出輸入數字后新宮格,再重復以上操作,直到每一行,每一列,每一個3x3的宮格內只有1-9這9個數字并且不重復,游戲就算通關。游戲通關后,可以選擇繼續(xù)游戲,并且挑戰(zhàn)更大難度,
3、也可以選擇退出游戲,下次再戰(zhàn)。2.函數定義和聲明(1)頭文件#include#include//隨機函數#include//系統(tǒng)時間#include"pcc32.h"http://彩色文本#include#pragmacomment(lib,"pcc32_vc6.lib")#pragmacomment(lib,"winmm.lib")usingnamespacestd;(2)函數聲明boolyz(charb[9][10])//驗證子函數,驗證每一行,每一列,每
4、一個3x3宮格都是1-9.3.主函數intmain()voidmain(){PlaySound((char*)"kanong.wav",NULL,SND_ASYNC
5、SND_LOOP);chara[9][10]={{"493761528"},{"582943167"},{"716528349"},{"139674852"},{"658219734"},{"247835691"},{"975382416"},{"821456973"},{"364197285"}};intb[81],c[81],q=0,p=0;intk,x;d
6、o{setTextColor(14);cout<<"*^0^*<<<<<歡迎進入數獨游戲>>>>>*^0^*";setTextColor(10);cout<<"請選擇游戲的難易級別為?(3—高,2—中,1—低):"<>k;switch(k){inti,j,m,n,gs;case1:srand((int)time(0));for(gs=0;gs<30;gs++)//隨機在已經布滿的9x9宮格里,運用隨機數,并且以系統(tǒng)時間為參數,隨機產生空白字符,{//低難度的數獨,每次產生的空白字符為22個左右,m=(
7、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<<"123456789"<8、---------------‖"<9、";for(q=0,p=0;q<31,p<31;q++,p++)//將隨機的空白字符單獨表示出來,并且以另一種顏色輸出表示.{if(i==b[q]&&j==c[p]){setTextColor(14);cout<10、reak;}if(q==30&&p==30)//將剩下的題目字符用另一種顏色輸出表示{setTextColor(12);cout<