

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語(yǔ)言程序設(shè)計(jì) </b></p><p> 題 目 五子棋(雙人對(duì)戰(zhàn))</p><p><b> 目錄</b></p><p> 1設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求…………………………………… 1</p><p> 1.1系統(tǒng)功能簡(jiǎn)介………………………………
2、……… 1 </p><p> 1.2系統(tǒng)運(yùn)行環(huán)境 ………………………………………1</p><p> 2程序流程圖 ………………………………………………1</p><p> 3運(yùn)行的運(yùn)行及說(shuō)明 ………………………………………2</p><p> 3.1系統(tǒng)的運(yùn)行 …………………………………………2
3、</p><p> 3.2運(yùn)行說(shuō)明…………………………………………… 4</p><p> 4課程設(shè)計(jì)目的………………………………………………….</p><p> 5 程序特色…………………………………………………….5</p><p> 6總結(jié) ………………………………………………………5</p><p>
4、 附件:源程序清單……………………………………………5</p><p> 1設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p><b> 1.1系統(tǒng)功能簡(jiǎn)介</b></p><p> 該系統(tǒng)是五子棋的人人對(duì)戰(zhàn)模式,而非平常的人機(jī)對(duì)戰(zhàn)</p><p> 系統(tǒng)有簡(jiǎn)單的菜單界面</p><p><b&g
5、t; 1.2系統(tǒng)運(yùn)行環(huán)境</b></p><p> Vc++6.0下運(yùn)行,硬件基本無(wú)要求,現(xiàn)在的計(jì)算機(jī)系統(tǒng)基本都可以運(yùn)行該系統(tǒng)。</p><p><b> 2程序流程圖</b></p><p><b> 3系統(tǒng)的運(yùn)行及說(shuō)明</b></p><p><b> 3.1系統(tǒng)
6、的運(yùn)行</b></p><p> 圖3-1程序的初始化界面</p><p> 程序初始化的界面,界面簡(jiǎn)潔明快,便于觀(guān)察。</p><p> 圖3-2程序的運(yùn)行界面</p><p> 圖3-3程序的介紹界面</p><p><b> 3-2運(yùn)行說(shuō)明</b></p>
7、<p> A向左 W向上 D向右 S向左 空格鍵 確定 當(dāng)結(jié)束時(shí)按Y重新開(kāi)始游戲按N退出游戲</p><p><b> 4課程設(shè)計(jì)目的</b></p><p> 五子棋游戲不僅能增強(qiáng)人們的抽象思維能力、邏輯推理能力、空間想象力,提高人們的記憶力、心算能力等,而且深含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑方式所特有的特征“短、平、快
8、” ,又有中國(guó)古典哲學(xué)所包含的高深學(xué)問(wèn)“陰陽(yáng)易理” ;它既有簡(jiǎn)單易學(xué)的特點(diǎn),為人民群眾所喜聞樂(lè)見(jiàn),又有深?yuàn)W的技巧;既能組織舉辦群眾性的比賽、活動(dòng),又能組織舉辦高水平的國(guó)際性比賽;它的棋文化源淵流長(zhǎng),具有東方的神秘和西方的直觀(guān),它是中西方文化的交融點(diǎn),也是中西方文化交流的一個(gè)平臺(tái)。</p><p> 自從計(jì)算機(jī)作為游戲?qū)?zhàn)平臺(tái)以來(lái),各種棋類(lèi)游戲如雨后春筍般紛紛冒出。五子棋是一種受大眾廣泛喜愛(ài)的游戲,其規(guī)則簡(jiǎn)單,變
9、化多端,非常富有趣味性和消遣性。同時(shí)具有簡(jiǎn)單易學(xué)、既動(dòng)手又動(dòng)腦的特點(diǎn)。</p><p> 同時(shí)也為鍛煉自己的編程能力。</p><p><b> 5程序特色</b></p><p> 本程序簡(jiǎn)潔明快,采用黑白兩色棋,并且本程序?yàn)殡p人對(duì)戰(zhàn)。</p><p><b> 6總結(jié)</b></p
10、><p> 通過(guò)這次實(shí)習(xí),讓我們初步有了編寫(xiě)系統(tǒng)的能力,我們對(duì)很多的函數(shù)有了新的認(rèn)識(shí),也學(xué)會(huì)了運(yùn)用多種函數(shù),也明白了編寫(xiě)軟件的基本過(guò)程,和基本方法。編寫(xiě)軟件的過(guò)程中我們又學(xué)到了曾經(jīng)自己不知道的函數(shù)或是自己不會(huì)的函數(shù)的用法。這次課程設(shè)計(jì)課總的來(lái)說(shuō)讓我受益匪淺。</p><p> 在這幾天的編寫(xiě)過(guò)程中我們對(duì)c語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解。此次編程過(guò)程的經(jīng)驗(yàn)和知識(shí)肯定能促進(jìn)我以后的學(xué)習(xí)。<
11、/p><p> 此次課程設(shè)計(jì)不僅給了我們很多很好的經(jīng)驗(yàn),也讓我們體會(huì)到了失敗時(shí)的焦急和難受,也體會(huì)到了成功時(shí)的興奮與喜悅。</p><p><b> 附件:源程序清單</b></p><p> #include <stdio.h></p><p> #include <conio.h><
12、/p><p> #include <stdlib.h></p><p> void main()</p><p><b> {</b></p><p> //q:20*20棋盤(pán)數(shù)據(jù)數(shù)組,0表示空,1表示黑棋,2表示白棋</p><p> //h:游戲狀態(tài)量,變化范圍為0、1、2,
13、0表示退出游戲,1表示初始化游戲數(shù)據(jù),2表示進(jìn)行游戲</p><p><b> //i:循環(huán)輔助量</b></p><p> //j:鍵盤(pán)輸入結(jié)果</p><p> //k:從二維坐標(biāo)得到的一維數(shù)組下標(biāo)</p><p> //l:黑白子變化輔助量,變化范圍為1、2,1為當(dāng)前下的是黑棋,2為當(dāng)前下的的是白棋<
14、/p><p> //m:輸贏判斷結(jié)果,變化范圍為0、1、2,0表示沒(méi)有輸贏,1表示黑棋贏,2表示白棋贏</p><p> //x:游標(biāo)的X坐標(biāo)</p><p> //y:游標(biāo)的Y坐標(biāo)</p><p> char q[400];</p><p> int h, i, j, k, l, m, x, y;</p&
15、gt;<p> //第一次進(jìn)入游戲循環(huán),首先初始化游戲數(shù)據(jù)</p><p><b> h = 1;</b></p><p><b> while (h)</b></p><p><b> {</b></p><p> if (h == 1)</p&
16、gt;<p><b> {</b></p><p><b> //初始化棋盤(pán)</b></p><p> for (i = 0; i < 400; ++i)</p><p><b> q[i] = 0;</b></p><p> //初始化黑白子變化
17、輔助量,黑棋先行</p><p><b> l = 2;</b></p><p> //初始化輸贏判斷結(jié)果,當(dāng)前沒(méi)有輸贏</p><p><b> m = 0;</b></p><p><b> //初始化游標(biāo)坐標(biāo)</b></p><p> x
18、 = y = 0;</p><p> //初始化完畢進(jìn)行游戲</p><p><b> h = 2;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b&
19、gt;</p><p><b> //清屏</b></p><p> system("cls");</p><p><b> //繪制棋子、棋盤(pán)</b></p><p> for (i = 0; i < 400; ++i)</p><p>&
20、lt;b> {</b></p><p> if (y * 20 + x == i)</p><p><b> {</b></p><p> if (q[i] == 1)</p><p> printf("■");</p><p> else if
21、(q[i] == 2)</p><p> printf("□");</p><p><b> else</b></p><p> printf("◎");</p><p><b> }</b></p><p><b>
22、 else</b></p><p><b> {</b></p><p> if (q[i] == 1)</p><p> printf("●");</p><p> else if (q[i] == 2)</p><p> printf("○
23、");</p><p><b> else</b></p><p><b> {</b></p><p> if (i == 0)</p><p> printf("┏");</p><p> else if (i == 19)<
24、/p><p> printf("┓");</p><p> else if (i == 380)</p><p> printf("┗");</p><p> else if (i == 399)</p><p> printf("┛");</p&
25、gt;<p> else if (i > 0 && i < 19)</p><p> printf("┳");</p><p> else if (0 == i % 20)</p><p> printf("┣");</p><p> else if
26、(19 == i % 20)</p><p> printf("┫");</p><p> else if (i > 380 && i < 399)</p><p> printf("┻");</p><p><b> else</b></
27、p><p> printf("╋");</p><p><b> }</b></p><p><b> }</b></p><p> if (19 == i % 20)</p><p> printf("\n");</p&g
28、t;<p><b> }</b></p><p><b> //接收輸入</b></p><p> j = _getch();</p><p><b> //更新游標(biāo)坐標(biāo)</b></p><p> if (y > 0 && (j =
29、= 'w' || j == 'W'))</p><p><b> --y;</b></p><p> if (y < 19 && (j == 's' || j == 'S'))</p><p><b> ++y;</b></p
30、><p> if (x > 0 && (j == 'a' || j == 'A'))</p><p><b> --x;</b></p><p> if (x < 19 && (j == 'd' || j == 'D'))</p&
31、gt;<p><b> ++x;</b></p><p><b> //下子</b></p><p> if (j == ' ')</p><p><b> {</b></p><p> //從二維坐標(biāo)轉(zhuǎn)換到一維數(shù)組索引</p>
32、;<p> k = y * 20 + x;</p><p><b> //設(shè)置數(shù)據(jù)</b></p><p> if (0 == q[k])</p><p> q[k] = (l = (l == 2) ? 1 : 2);</p><p> //設(shè)置勝負(fù)判斷結(jié)果</p><p>
33、;<b> m = 0;</b></p><p><b> //左右勝負(fù)判斷</b></p><p> for (i = -4; i < 1; ++i)</p><p><b> {</b></p><p><b> //邊界判斷 </b>
34、;</p><p> if (x + i < 0 || x + i + 4 > 19)</p><p><b> continue;</b></p><p><b> else</b></p><p><b> {</b></p><p&
35、gt; //得到最左邊棋子的索引</p><p> k = y * 20 + x + i;</p><p> //連棋判斷,若成立則修改勝負(fù)判斷結(jié)果</p><p> if (q[k] == q[k + 1] &&</p><p> q[k + 1] == q[k + 2] &&</p>
36、<p> q[k + 2] == q[k + 3] &&</p><p> q[k + 3] == q[k + 4])</p><p><b> {</b></p><p><b> m = l;</b></p><p> break;}}}</p>
37、;<p><b> //上下勝負(fù)判斷</b></p><p> for (i = -4; i < 1; ++i)</p><p><b> {</b></p><p><b> //邊界判斷</b></p><p> if (y + i <
38、0 || y + i + 4 > 19)</p><p><b> continue;</b></p><p><b> else</b></p><p><b> {</b></p><p> //得到最上邊棋子的索引</p><p>
39、 k = (y + i) * 20 + x;</p><p> //連棋判斷,若成立則修改勝負(fù)判斷結(jié)果</p><p> if (q[k] == q[k + 20] &&</p><p> q[k + 20] == q[k + 40] &&</p><p> q[k + 40] == q[k + 60]
40、 &&</p><p> q[k + 60] == q[k + 80])</p><p><b> {</b></p><p><b> m = l;</b></p><p> break;}}}</p><p> //左上右下勝負(fù)判斷<
41、/p><p> for (i = -4; i < 1; ++i)</p><p><b> {</b></p><p><b> //邊界判斷</b></p><p> if (x + i < 0 || x + i + 4 > 19 || y + i < 0 || y +
42、 i + 4 > 19)</p><p><b> continue;</b></p><p><b> else</b></p><p><b> {</b></p><p> //得到最左上邊棋子的索引</p><p> k = (y
43、 + i) * 20 + x + i;</p><p> //連棋判斷,若成立則修改勝負(fù)判斷結(jié)果</p><p> if (q[k] == q[k + 20 + 1] &&</p><p> q[k + 20 + 1] == q[k + 40 + 2] &&</p><p> q[k + 40 + 2]
44、 == q[k + 60 + 3] &&</p><p> q[k + 60 + 3] == q[k + 80 + 4])</p><p><b> {</b></p><p><b> m = l;</b></p><p> break;}}}</p>&
45、lt;p> //左下右上勝負(fù)判斷</p><p> for (i = -4; i < 1; ++i)</p><p><b> {</b></p><p><b> //邊界判斷</b></p><p> if (x + i < 0 || x + i + 4 > 1
46、9 || y - i > 19 || y - i - 4 < 0)</p><p><b> continue;</b></p><p><b> else</b></p><p><b> {</b></p><p> //得到最左下邊棋子的索引</
47、p><p> k = (y - i) * 20 + x + i;</p><p> //連棋判斷,若成立則修改勝負(fù)判斷結(jié)果</p><p> if (q[k] == q[k - 20 + 1] &&</p><p> q[k - 20 + 1] == q[k - 40 + 2] &&</p>
48、<p> q[k - 40 + 2] == q[k - 60 + 3] &&</p><p> q[k - 60 + 3] == q[k - 80 + 4])</p><p><b> {</b></p><p><b> m = l;</b></p><p>
49、break;}}}}</p><p><b> //勝利結(jié)果選擇</b></p><p> if (m != 0)</p><p><b> {</b></p><p><b> //打印勝利結(jié)果</b></p><p> if (m =
50、= 1)</p><p> printf("白棋勝利!\n");</p><p><b> else</b></p><p> printf("黑棋勝利!\n");</p><p><b> //用戶(hù)輸入選擇</b></p><p&
51、gt;<b> do</b></p><p><b> {</b></p><p> printf("重新游戲請(qǐng)按Y,退出游戲請(qǐng)按N:\n");</p><p> j = _getch();</p><p> } while (j != 'y' &
52、;& j != 'Y' && j != 'n' && j != 'N');</p><p> //根據(jù)選擇設(shè)置游戲狀態(tài)</p><p> if (j == 'y' || j == 'Y')</p><p> h = 1;elseh = 0;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--對(duì)戰(zhàn)五子棋
- c語(yǔ)言五子棋課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--五子棋游戲設(shè)計(jì)
- c語(yǔ)言圖形五子棋課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖形五子棋課程設(shè)計(jì)報(bào)告
- 五子棋c++課程設(shè)計(jì)
- 五子棋c++課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告五子棋游戲課程設(shè)計(jì)
- c++課程設(shè)計(jì)——五子棋
- 五子棋課程設(shè)計(jì)
- 五子棋對(duì)戰(zhàn)游戲
- 網(wǎng)絡(luò)對(duì)戰(zhàn)五子棋
- 匯編語(yǔ)言五子棋課程設(shè)計(jì)
- 匯編語(yǔ)言五子棋課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---五子棋人機(jī)對(duì)戰(zhàn)
- 五子棋java語(yǔ)言課程設(shè)計(jì)報(bào)告
- c++五子棋課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)--五子棋游戲
- java五子棋課程設(shè)計(jì)
- 五子棋-課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論