子棋(雙人對戰(zhàn)) C語言課程設(shè)計_第1頁
子棋(雙人對戰(zhàn)) C語言課程設(shè)計_第2頁
子棋(雙人對戰(zhàn)) C語言課程設(shè)計_第3頁
子棋(雙人對戰(zhàn)) C語言課程設(shè)計_第4頁
子棋(雙人對戰(zhàn)) C語言課程設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、. C語言程序設(shè)計 題 目 五子棋(雙人對戰(zhàn))指導教師 曹東燕學生姓名 夏文龍 于文杰 邢健學 號 201000802032 201000802114 201000802097專 業(yè) 電子信息工程教學單位 物理系 (蓋章) 目錄 1設(shè)計內(nèi)容與設(shè)計要求 11.1系統(tǒng)功能簡介 1 1.2系統(tǒng)運行環(huán)境 12程序流程圖 13運行的運行及說明 23.1系統(tǒng)的運行 23.2運行說明 44課程設(shè)計目的.5 程序特色.56總結(jié) 5附件:源程序清單51設(shè)計內(nèi)容與設(shè)計要求1.1系統(tǒng)功能簡介該系統(tǒng)是五子棋的人人對戰(zhàn)模式,而非平常的人機對戰(zhàn)系統(tǒng)有簡單的菜單界面1.2系統(tǒng)運行環(huán)境Vc+6.0下運行,硬件基本無要求,現(xiàn)在

2、的計算機系統(tǒng)基本都可以運行該系統(tǒng)。2程序流程圖 開始白子落棋白子有五個在一條直線上黑子落棋黑子五個在一條直線上白子獲勝黑子獲勝結(jié)束是否否是 3系統(tǒng)的運行及說明 3.1系統(tǒng)的運行圖3-1程序的初始化界面程序初始化的界面,界面簡潔明快,便于觀察。圖3-2程序的運行界面圖3-3程序的介紹界面3-2運行說明A向左 W向上 D向右 S向左 空格鍵 確定 當結(jié)束時按Y重新開始游戲按N退出游戲4課程設(shè)計目的五子棋游戲不僅能增強人們的抽象思維能力、邏輯推理能力、空間想象力,提高人們的記憶力、心算能力等,而且深含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑方式所特有的特征“短、平、快” ,又有中國古典哲學所包含的高

3、深學問“陰陽易理” ;它既有簡單易學的特點,為人民群眾所喜聞樂見,又有深奧的技巧;既能組織舉辦群眾性的比賽、活動,又能組織舉辦高水平的國際性比賽;它的棋文化源淵流長,具有東方的神秘和西方的直觀,它是中西方文化的交融點,也是中西方文化交流的一個平臺。自從計算機作為游戲?qū)?zhàn)平臺以來,各種棋類游戲如雨后春筍般紛紛冒出。五子棋是一種受大眾廣泛喜愛的游戲,其規(guī)則簡單,變化多端,非常富有趣味性和消遣性。同時具有簡單易學、既動手又動腦的特點。同時也為鍛煉自己的編程能力。5程序特色本程序簡潔明快,采用黑白兩色棋,并且本程序為雙人對戰(zhàn)。6總結(jié)通過這次實習,讓我們初步有了編寫系統(tǒng)的能力,我們對很多的函數(shù)有了新的認

4、識,也學會了運用多種函數(shù),也明白了編寫軟件的基本過程,和基本方法。編寫軟件的過程中我們又學到了曾經(jīng)自己不知道的函數(shù)或是自己不會的函數(shù)的用法。這次課程設(shè)計課總的來說讓我受益匪淺。在這幾天的編寫過程中我們對c語言有了更進一步的認識和了解。此次編程過程的經(jīng)驗和知識肯定能促進我以后的學習。此次課程設(shè)計不僅給了我們很多很好的經(jīng)驗,也讓我們體會到了失敗時的焦急和難受,也體會到了成功時的興奮與喜悅。附件:源程序清單#include <stdio.h>#include <conio.h>#include <stdlib.h>void main()/q:20*20棋盤數(shù)據(jù)數(shù)組

5、,0表示空,1表示黑棋,2表示白棋/h:游戲狀態(tài)量,變化范圍為0、1、2,0表示退出游戲,1表示初始化游戲數(shù)據(jù),2表示進行游戲/i:循環(huán)輔助量/j:鍵盤輸入結(jié)果/k:從二維坐標得到的一維數(shù)組下標/l:黑白子變化輔助量,變化范圍為1、2,1為當前下的是黑棋,2為當前下的的是白棋/m:輸贏判斷結(jié)果,變化范圍為0、1、2,0表示沒有輸贏,1表示黑棋贏,2表示白棋贏/x:游標的X坐標/y:游標的Y坐標char q400;int h, i, j, k, l, m, x, y;/第一次進入游戲循環(huán),首先初始化游戲數(shù)據(jù)h = 1;while (h)if (h = 1)/初始化棋盤for (i = 0; i

6、< 400; +i)qi = 0;/初始化黑白子變化輔助量,黑棋先行l(wèi) = 2;/初始化輸贏判斷結(jié)果,當前沒有輸贏m = 0;/初始化游標坐標x = y = 0;/初始化完畢進行游戲h = 2;else/清屏system("cls");/繪制棋子、棋盤for (i = 0; i < 400; +i)if (y * 20 + x = i)if (qi = 1)printf("");else if (qi = 2)printf("");elseprintf("");elseif (qi = 1)printf

7、("");else if (qi = 2)printf("");elseif (i = 0)printf("");else if (i = 19)printf("");else if (i = 380)printf("");else if (i = 399)printf("");else if (i > 0 && i < 19)printf("");else if (0 = i % 20)printf("")

8、;else if (19 = i % 20)printf("");else if (i > 380 && i < 399)printf("");elseprintf("");if (19 = i % 20)printf("n");/接收輸入j = _getch();/更新游標坐標if (y > 0 && (j = 'w' | j = 'W')-y;if (y < 19 && (j = 's' |

9、j = 'S')+y;if (x > 0 && (j = 'a' | j = 'A')-x;if (x < 19 && (j = 'd' | j = 'D')+x;/下子if (j = ' ')/從二維坐標轉(zhuǎn)換到一維數(shù)組索引k = y * 20 + x;/設(shè)置數(shù)據(jù)if (0 = qk)qk = (l = (l = 2) ? 1 : 2);/設(shè)置勝負判斷結(jié)果m = 0;/左右勝負判斷for (i = -4; i < 1; +i)/邊界判斷 if (x

10、+ i < 0 | x + i + 4 > 19)continue;else/得到最左邊棋子的索引k = y * 20 + x + i;/連棋判斷,若成立則修改勝負判斷結(jié)果if (qk = qk + 1 &&qk + 1 = qk + 2 &&qk + 2 = qk + 3 &&qk + 3 = qk + 4)m = l;break;/上下勝負判斷for (i = -4; i < 1; +i)/邊界判斷if (y + i < 0 | y + i + 4 > 19)continue;else/得到最上邊棋子的索引k =

11、 (y + i) * 20 + x;/連棋判斷,若成立則修改勝負判斷結(jié)果if (qk = qk + 20 &&qk + 20 = qk + 40 &&qk + 40 = qk + 60 &&qk + 60 = qk + 80)m = l;break;/左上右下勝負判斷for (i = -4; i < 1; +i)/邊界判斷if (x + i < 0 | x + i + 4 > 19 | y + i < 0 | y + i + 4 > 19)continue;else/得到最左上邊棋子的索引k = (y + i) *

12、20 + x + i;/連棋判斷,若成立則修改勝負判斷結(jié)果if (qk = qk + 20 + 1 &&qk + 20 + 1 = qk + 40 + 2 &&qk + 40 + 2 = qk + 60 + 3 &&qk + 60 + 3 = qk + 80 + 4)m = l;break;/左下右上勝負判斷for (i = -4; i < 1; +i)/邊界判斷if (x + i < 0 | x + i + 4 > 19 | y - i > 19 | y - i - 4 < 0)continue;else/得到最左

13、下邊棋子的索引k = (y - i) * 20 + x + i;/連棋判斷,若成立則修改勝負判斷結(jié)果if (qk = qk - 20 + 1 &&qk - 20 + 1 = qk - 40 + 2 &&qk - 40 + 2 = qk - 60 + 3 &&qk - 60 + 3 = qk - 80 + 4)m = l;break;/勝利結(jié)果選擇if (m != 0)/打印勝利結(jié)果if (m = 1)printf("白棋勝利!n");elseprintf("黑棋勝利!n");/用戶輸入選擇doprintf("重新游戲請按Y,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論