簡單五子棋C語言課設_第1頁
簡單五子棋C語言課設_第2頁
簡單五子棋C語言課設_第3頁
簡單五子棋C語言課設_第4頁
簡單五子棋C語言課設_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上C語言課程設計姓名:學號:專業(yè):軟件工程班級: 3 班指導教師:編寫日期:2015/6/25一、需求分析1、程序的輸入與輸出:只需通過鍵盤“上”,“下”,“左”,“右”移動光標在棋盤上的位置,“p”鍵下子,“q”鍵悔棋進行人人對戰(zhàn)。2、程序的系統(tǒng)功能:(1)五子棋;(2)、根據(jù)需要提供對圖書所需的查詢方式。二、系統(tǒng)總體設計1問題:(1)建立棋盤:如何跟簡便的建立棋盤; (2)玩家操作如何移動光標;(3)如何在各個方向上檢查是否有五個棋子連接;2. 解決方法:(1) 用許多“+”符號連接起來構成簡便棋盤,下棋時只需將棋子覆蓋到“+”完成下子;(2) 棋子的移動與落子有鍵

2、盤上按鍵控制,本程序選取按鍵為W、S、A、D和P鍵,分別代表上移、下移、左移、右移光標和落子。在光標移動的過程中,光標按照玩家按鍵移動;在玩家按下落子按鍵后,程序自動調(diào)用棋子顯示子程序和判斷勝負子程序。落子后,程序會為落子處的數(shù)組元素賦一個特定值,用于判定勝負。(3) 勝負判斷模塊是程序的關鍵,該模塊的設計直接關系到程序的運行速率和運行結果的正確與否。本函數(shù)根據(jù)每次落子的位置,分別向上、下、左、右、左上、左下、右上、右下八個方向判斷是否有相同顏色的棋子連成五子,如果成立,游戲就結束,并顯示提示信息,否則繼續(xù)落子。3、 詳細設計1. 建立棋盤void drawqipan() /繪制棋盤及數(shù)據(jù)初始

3、化 int i,j; system("cls"); /清除屏幕 for(i=0;i<20;i+) for(j=0;j<20;j+) Qij=0; printf("十"); printf("n"); weizhi.x=0;weizhi.y=0; /程序數(shù)據(jù)初始化 gotoxy(0,0);2 玩家操作void jilu() /記錄落子情況 Qweizhi.xweizhi.y=player+1; if(player) player=0; /玩家變換 return; player=1;int cluozi(int x,int y)

4、 /由電腦落子時調(diào)用 weizhi.x=x;weizhi.y=y; gotoxy(weizhi.x,weizhi.y); if(Qweizhi.xweizhi.y=0) /判斷當前位置是否已經(jīng)落子 jilu(); printf(""); gotoxy(weizhi.x,weizhi.y); void luozi() /玩家落子 if(Qweizhi.xweizhi.y=0) /判斷當前位置是否已經(jīng)落子 if(player) jilu(); printf(""); else jilu(); printf(""); gotoxy(weiz

5、hi.x,weizhi.y); 3、systemsystem("CLS")可以實現(xiàn)清屏操作。而調(diào)用color函數(shù)可以改變控制臺的前景色和背景。4、 判斷勝負int checkWin() /檢查游戲是否有輸贏int p; int r,c,rr,cc,count=0; p=player=0?2:1; for(c=0;c<20;c+) for(r=0;r<20;r+) if(Qrc!=p) continue; /檢查列 rr=r;cc=c; while(-cc>=0 &&Qrrcc=p)count+; cc=c; while(+cc<20

6、&&Qrrcc=p)count+; cc=c; if(count+1>=5) return p; /檢查行 count=0; while(-rr>=0 &&Qrrcc=p)count+; rr=r; while(+rr<20 &&Qrrcc=p)count+; rr=r; if(count+1>=5) return p; /檢查反斜邊 count=0; cc-;rr-; while(cc>=0|rr>=0) &&Qrrcc=p)count+;cc-;rr-; rr=r;cc=c; cc+;rr+

7、; while(cc<20|rr<20) &&Qrrcc=p)count+;cc+;rr+; rr=r;cc=c; if(count+1>=5) return p; count=0; /檢查正斜邊 count=0; cc+;rr-; while(cc<20|rr>=0) &&Qrrcc=p)count+;cc+;rr-; rr=r;cc=c; cc-;rr+; while(cc>=0|rr<20) &&Qrrcc=p)count+;cc-;rr+; rr=r;cc=c; if(count+1>=5)

8、 return p; count=0; return 0;四、程序運行結果測試與分析1.棋盤2. 光標移動3. 判斷勝負五、結論與心得這次課程設計完成了五子棋的主體設計,基本實現(xiàn)了五子棋的核心要求,另外在構建棋盤時用到了創(chuàng)新的思路,更加簡便的完成了棋盤的建立。程序的總體設計較為簡單,并沒有用到許多復雜的語句等,其所用的語句如:for,while,switch,case.都是C語言基礎的語句,比較適合閱讀。在設計程序的過程中,我們遇到了許多困難,比如建立棋盤時遇到了錯誤,于是我們小組成員通過上網(wǎng)查閱資料的方式解決了問題。但是,這個程序有一個待改進的地方就是該游戲只能人與人對戰(zhàn)而不能人機對戰(zhàn),所以在單人時缺乏可玩性,我想我們小組一定會在

溫馨提示

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

評論

0/150

提交評論