freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

五子棋游戲的設(shè)計與實現(xiàn)畢業(yè)論文-文庫吧資料

2025-07-04 17:20本頁面
  

【正文】 f( \n)。 printf(\n\n \n\n)。//設(shè)置窗口大小 system(color 2b)。 // 選擇誰是先手 void showsubmenu() {//打印子菜單 system(cls)。本游戲系統(tǒng)中此模塊主要分為了以下幾個功能模塊:1. 設(shè)置先手功能2. 電腦智能落子功能3. 可以悔棋、退出4. 顯示輸贏在打開本游戲系統(tǒng)之后,選擇人機對戰(zhàn)之后利用system(mode con cols=64 lines=24)窗體函數(shù)設(shè)置窗口大小,然后用system(color 2b)函數(shù)設(shè)置窗體背景顏色為綠色,然后在窗體中打印出窗口內(nèi)容,即設(shè)置先手,當(dāng)從鍵盤上輸入1,即本局游戲選擇玩家先手,開始游戲電腦優(yōu)先防御;當(dāng)從鍵盤上輸入2,即本局游戲選擇電腦先手,開始游戲電腦優(yōu)先進攻;當(dāng)從鍵盤上輸入3,即返回上一層目錄菜單,不進行游戲[9]。 // 如果按了退出熱鍵則返回 該模塊功能的實現(xiàn)是在實現(xiàn)畫出棋盤模塊、畫出棋子模塊、設(shè)置棋局規(guī)則模塊、悔棋功能模塊、判斷輸贏模塊而的基礎(chǔ)之上而實現(xiàn)的。 判斷輸贏白棋贏 判斷輸贏黑棋贏該模塊的功能為,在游戲進行的任意時候,只要按下退出熱鍵(F12),就可以退出游戲,直接退到游戲的初始界面,但是當(dāng)游戲退出后,再次開始游戲時,為新的一局游戲,不能接著上次的繼續(xù)玩,即沒有設(shè)置保存功能[8]。 gotoxy(0,0)。 }產(chǎn)生平局時:gotoxy(0,0)。 if(line(chessboard,6,x,y,color)+line(chessboard,7,x,y,color)3) return true。 if(line(chessboard,2,x,y,color)+line(chessboard,3,x,y,color)3) return true。 } return i。 y=y+direction[dirt][1]。 chessboard[x+direction[dirt][0]][y+direction[dirt][1]].color==color。chessboard[x+direction[dirt][0]][y+direction[dirt][1]].step0 amp。 } int line(NODE chessboard[][15], int dirt, int x, int y, int color) {// 判斷顏色為color的點(x,y),在dirt方向上有多少相連的同色棋子 int i。具體實現(xiàn)程序如下(僅部分主要代碼):bool inside(int x, int y) {// 如果不在棋盤內(nèi)返回false,否則返回true if(x0 || x14 || y0 || y14) return false。 // 重繪光標(biāo)原本所在處 }} 悔棋A 悔棋B本模塊的功能是每當(dāng)棋子落下后判斷是否已經(jīng)產(chǎn)生輸贏,若已產(chǎn)生則重新開始游戲,若沒有產(chǎn)生則判斷是否已經(jīng)落子225步,如果已經(jīng)225步,則判定為雙方平局,并重新開始游戲,如果沒有達到225步,則繼續(xù)游戲。 // 將光標(biāo)移回棋盤中央 renew(chessboard,i,j)。 =7。} // 重繪棋盤 tempx=。j++) if(chessboard[i][j].step==step1) { // 找到上一步 chessboard[i][j].step=0。i++) //搜索上一步所下的位置 for(j=0。 // 重繪光標(biāo)原本所在處 } } } else if(step==2) { //如果下了一步 for(i=0。 renew(chessboard,i,j)。 =i。 // 清空棋子標(biāo)志 tempx=。 // 清空棋子標(biāo)志 renew(chessboard,i,j)。j15。i15。 if(step==1) return。本游戲系統(tǒng)中沒有限制悔棋的步數(shù),可以無限制悔棋,直到第一步。當(dāng)棋子多余3個時,按下悔棋鍵后,由于系統(tǒng)無法判定是白棋想悔棋,還是黑棋想悔棋,故而一次撤銷兩步,即當(dāng)該黑棋落子時,按下了悔棋鍵,會撤銷兩步,即撤銷了白棋剛剛走的一步和黑棋剛剛走的那一步,光標(biāo)也回到剛剛黑棋的位置。本模塊的創(chuàng)建是根據(jù)現(xiàn)實中玩五子棋游戲時的實際存在的情況而編寫的,當(dāng)玩家下棋后,發(fā)現(xiàn)不是最佳的位置,或者是棋子沒有落在自己想要落的位置,發(fā)生偏離,此時就需要用到本模塊的功能:悔棋功能。本模塊實現(xiàn)的是兩個人類玩家在一臺電腦上進行游戲,本部分不涉及電腦的AI,只需要電腦提供一個平臺(顯示器的功能),本部分的實現(xiàn)較為簡單,在以上兩個模塊即畫出棋盤模塊和畫出棋子模塊功能實現(xiàn)的基礎(chǔ)上,兩個玩家就可以自由的進行游戲,雙方通過依次控制電腦鍵盤上的方向鍵移動光標(biāo)到自己認(rèn)為合理的地方落子。本系統(tǒng)中涉及到的五子棋的基本棋型有防御棋型和進攻棋型兩類,具體有:連五型,活四型,沖四型,活三型,死三活二型五種,具體如下: 連五型(黑棋) 活四型(黑棋) 沖四型(黑棋) 活三型(黑棋) 死三活二型(黑棋)悔棋規(guī)則應(yīng)用于游戲的整個過程,在游戲產(chǎn)生輸贏之前的任意時候,只要玩家按下悔棋熱鍵,就可進行悔棋,且本系統(tǒng)中不限制悔棋步數(shù)。落子規(guī)則包括落子位置與落子順序。 } } }本模塊實現(xiàn)的是游戲的規(guī)則,包括落子規(guī)則,悔棋規(guī)則,輸贏規(guī)則。) { // 悔棋 regret=true。 || c==39。 // 下子 else if(c==39。amp。 return true。 break。 renew(chessboard,)。 case 77: // 右 ++。 renew(chessboard,)。 if(0) =0。 break。 renew(chessboard,)。 case 80: // 下 ++。 renew(chessboard,)。 if(0) =0。) { c=getch()。 } // 打印棋子 光標(biāo)的移動(實現(xiàn)在棋盤上任意位置落子):bool getmove(NODE chessboard[][15]) {// 獲取光標(biāo)移動,并響應(yīng) // 當(dāng)按下悔棋、下子、退出熱鍵時,返回true char c。 // 被選中的黑棋 else textcolor(BLACKCHESS)。amp。 // 未被選中的黑棋 printf(●)。 y==) textcolor(SELECTEDWHITE)。具體實現(xiàn)如以下程序(僅部分主要代碼):else if(chessboard[x][y].color==0) { // 如果是白棋 if (x== amp。本模塊是在畫出棋盤的基礎(chǔ)下實現(xiàn)的,要求依次輪流畫出黑白兩種顏色的棋子,且位置必須在棋盤的位點之上,并且要求必須先畫黑棋,位置為棋盤的天元位。 //打印列坐標(biāo) printf( 移動:方向鍵 下棋:ENTER\n 悔棋:U 退出:F12\n)。 } textcolor(TEXTS)。 // 打印棋盤的每一塊 textcolor(TEXTS)。j15。 // 改為文本顏色 printf(%2d,15i)。i15。 char letter[]={ABCDEFGHIJKLMNO\n}。 // 右邊線 else printf(┼)。 default: if(y==0) printf(┠)。 // 右下角 else printf(┷)。 case 14: if(y==0) printf(┗)。 // 右邊線 else printf(┼)。 // 左邊線 else if(y==3 || y==11) printf(+)。 // 交叉點 break。 // 星位 else if(y==14) printf(┨)。 case 7: if(y==0) printf(┠)。 // 右邊線 else printf(┼)。 // 左邊線 else if(y==3 || y==11) printf(+)。 // 上邊線 break。 // 左上角 else if(y==14) printf(┓)。 y==) textcolor(CURSOR)。 if(chessboard[x][y].step==0) { if (x== amp。棋盤上的交點稱為位點(包括交叉點,天元,四方星位,邊界交點)。游戲的說明主要有棋局動態(tài)信息顯示,如何移動光標(biāo),如何實現(xiàn)落子,如何悔棋以及退出。本模塊是整個游戲系統(tǒng)的平臺性模塊,之后所有的功能都將依附該模塊來體現(xiàn),主要需實現(xiàn)棋盤的繪制與游戲說明。悔棋是棋局類游戲的必須的功能,在游戲時,如果有人悔棋時,立即調(diào)用悔棋功能函數(shù),本系統(tǒng)中由于棋盤上的所有的交點都有一個二維數(shù)組的一組數(shù)據(jù)與之相對應(yīng),而且每次落子后會有一個二維數(shù)組記錄相應(yīng)的信息(步數(shù),棋子顏色),因此此功能的實現(xiàn)依靠的是C中的循環(huán)函數(shù)。則該點的總價值為:。本系統(tǒng)中設(shè)定了以下幾種棋型和相應(yīng)的權(quán)值: 防守棋型及其相應(yīng)權(quán)值表棋型連五型沖四型活四型活三型死三活二型權(quán)值2000001100600024020 進攻棋型及其相應(yīng)權(quán)值表棋型連五型沖四型活四型活三型死三活二型權(quán)值2000000200024000850125根據(jù)不同棋型的權(quán)值可以計算出棋盤的各點的價值之和,用Vij表示點(i,j)的總價值,用Aij表示點(i,j)的進攻價值,用Dij表示點(i,j)的防守價值,用dt表示防守優(yōu)先級數(shù),at表示進攻優(yōu)先級數(shù),其中防守和進攻優(yōu)先級數(shù)是電腦在比較點(i,j)的進攻總價值和防守總價值后賦予的,給總價值大的類型設(shè)定優(yōu)先級數(shù)為2,而價值小的則為1。單點估值函數(shù)只能估計一個空點的價值,對當(dāng)前的棋局,把所有的空點對己方的有利程度總和和不利程度總和相關(guān)就可得出全局價值。本系統(tǒng)的估值函數(shù)為單點估值函數(shù)。博弈算法的任務(wù)是在這些呈幾何級數(shù)上升的子節(jié)點中選出最優(yōu)的節(jié)點,從而贏得比賽。樹的根節(jié)點先手的第一步位置,下面的走棋方法構(gòu)成樹的子節(jié)點,直到游戲結(jié)束。電腦博弈模仿人類下棋,傳統(tǒng)算法使用的是博弈樹。首先用循環(huán)語句和制表符畫出整個棋盤,然后利用繪圖函畫出棋子,然后制定自己的落子規(guī)則(包含輸贏規(guī)則),并用循環(huán)語句實現(xiàn)黑白子的輪流下子,如此就實現(xiàn)了雙人對戰(zhàn)的目的。游戲開始后,: 電腦落子是否是否玩家落子(白)任意方向有五子相連或棋盤落滿任意方向有五子相連或棋盤落滿是電腦先手電腦落子人機對戰(zhàn)否開始游戲雙人對戰(zhàn)是白方落子游戲結(jié)束否是黑方落子任意方向有五子相連或棋盤落滿任意方向有五子相連或棋盤落滿否否否是是是玩家落子(黑)任意方向有五子相連或棋盤落滿任意方向有五子相連或棋盤落滿否 游戲運行流程圖當(dāng)系統(tǒng)運行后,首先看到的是一個選擇游戲模式(雙人,人機)的界面,根據(jù)要求選擇后,有兩種情況,第一種是雙人模式,根據(jù)游戲的設(shè)定先黑方落子
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1