軟體工程系開發專案 基於C語言開發的五子棋小遊戲

2021-10-18 23:17:20 字數 2412 閱讀 3030

重點**塊介紹

本系統是乙個簡易的五子棋系統,是我在大一學期c語言入門時進行編寫的。本系統完全使用c語言進行開發,系統中分為人人對戰和人機對戰。人人對戰時黑棋白棋都需要人工通過輸入座標確定位置。人機對戰每一回合電腦會自動生成乙個棋子。本系統的開發運用了模組化思想,不同的功能通過不同的函式封裝,在主函式中呼叫即可。

本系統適合c語言初學者練習開發,運用的是較簡單的語句,執行邏輯比較好理解,我將在文章末尾分析源**。

microsoft visual studio 2010

c語言實現人人對戰

實現人機對戰(自動生成棋子)

判斷5字連線輸贏

棋盤的繪製:對於棋盤的繪製,我首先會初始化乙個二維陣列矩陣。在沒有棋子的時候全部初始化為0,若為黑旗子則在相應位置設為1,為白棋子在相應位置設為2。在繪製棋盤的函式中,為0時將繪製棋盤邊框,為1,2時則繪製棋子。

判斷輸贏的實現邏輯:棋盤每次增加乙個棋子時都會進行三次遍歷,當檢測到第乙個棋子時就將初始化乙個flag值,在上下左右斜向每發現乙個相同棋子就將flag值加1,當flag==5時,則判斷為有一方已經勝利。

void

menu()

//繪製ui主介面

void

drawqipan

(int qipan[row]

[col]

)//棋盤繪製函式

void

drawqizi

(int type,

char

*tableline)

//棋子繪製函式

void

isfull

(int qipan[row]

[col]

)//判斷棋盤是否全滿

void

randomcreatxy

(int

*point_x,

int*point_y)

//自動生成棋子座標

void

judgewin

(int qipan[row]

[col]

)//判斷輸贏函式

void

person_person()

//人人對戰函式

void

person_computer()

//人機對戰函式

intmain()

//主函式

void

drawqipan

(int qipan[row]

[col])if

(j>

0&& j

if(j==col-1)

}}if(i>

0&&i

if(j>

0&& j

if(j==col-1)

}}if(i==row-1)

if(j>

0&& j

if(j==col-1)

}}printf

("\n");

}}void

drawqizi

(int type,

char

*tableline)

通過檢索二維陣列的值的變化來繪製棋盤與棋子

void

judgewin

(int qipan[row]

[col]

)else

if(flag==1)

}}else

} itemp=i;jtemp=j;count=1;

while((

++itemp<20)

&&(5!=count)

)else

if(flag==1)

}}else

} itemp=i;jtemp=j;count=1;

while((

++itemp<20)

&&(++jtemp<20)

&&(count=5)

)else

if(flag==1)

}}else

} itemp=i;jtemp=j;count=1;

while((

--itemp>=0)

&&(--jtemp>=0)

&&(count!=5)

)else

if(flag==1)

}}else}}}}}

函式的重點在分別進行的左右,上下以及斜向三次遍歷。

void

randomcreatxy

(int

*point_x,

int*point_y)

在棋盤限度內每次隨機生成兩個座標,傳值給棋盤繪製函式。

軟體工程 軟體工程系統定義 需求開發與需求管理

系統定義階段 需求分析概述 軟體需求分析層次 需求分析的過程 需求開發 需求管理 待更新 更新日誌 最近更新 系統定義是軟體生命週期的第一階段,有著根據使用者的具體要求解決系統做什麼的重要任務。系統定義階段主要完成三部分,即問題提出 可行性研究 需求分析 問題提出與可行性分析兩部分的工作內容需體現在...

軟體工程 軟體專案開發計畫

1 引言 1 1編寫目的 闡明編寫開發計畫的目的,指出讀者物件。1 2專案背景 可包括 a 專案的委託單位 開發單位和主管部門 b 該軟體系統與其他系統的關係。1 3定義 列出本檔中用到的專門術語的定義和縮寫詞的原文。1 4參考資料 可包括 a 專案經核准的計畫任務書 合同或上級機關的批文 b 文件...

軟體工程系列 軟體開發形式化說明技術

形式化方法就是基於數學的技術描述系統的性質,消除自然語言書寫的系統規格說明書的 矛盾 二義性 含糊性 不完整性 及抽象層次混亂性。有窮狀態機 有窮狀態機包括下述的5個部分 狀態集j 輸入集k 由當前狀態和當前輸入確定下個狀態 次態 的轉換函式t 初始態s 和終態集f。轉換規則為 當前狀態 選單 事件...