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

正文內(nèi)容

基于c畢業(yè)設(shè)計(jì)-五子棋游戲(參考版)

2025-06-22 12:32本頁面
  

【正文】 在每次設(shè)計(jì)遇到問題時(shí)老師不辭辛苦的講解才使得我的設(shè)計(jì)順利的進(jìn)行。山東凱文科技職業(yè)學(xué)院16參考文獻(xiàn)[1] MSDN for Visual Studio [2] 設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ),Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides 著,李英軍/馬曉星/蔡敏/劉建中 等譯,機(jī)械工業(yè)出版社[3] 深入淺出 MFC(第 2 版) ,侯俊杰著,華中科技大學(xué)出版社[4] Microsoft174。我深刻體會(huì)到要做好一個(gè)完整的事情,需要有系統(tǒng)的思維方式和方法,還要有一個(gè)團(tuán)隊(duì)合作的精神。使我體會(huì)到在設(shè)計(jì)中的每一步的重要性,如果上一個(gè)步驟不能很好的完成,在后續(xù)的設(shè)計(jì)將會(huì)付出幾倍的代價(jià)。,設(shè)計(jì)過程中需要理論與實(shí)際的結(jié)合,這就要求有扎實(shí)的理論知識(shí),靈活的頭腦,我本身所做的設(shè)計(jì)并不算十分復(fù)雜,但由于以前沒有獨(dú)立做過系統(tǒng)所以剛開始時(shí)有點(diǎn)亂,好在有老師的幫助,我很快理清了思路,找到了自己的出發(fā)點(diǎn)。在困境中摸索,總結(jié),轉(zhuǎn)變思路,繼續(xù)前進(jìn),這是對(duì)我制作本游戲過程的一個(gè)概括。由于對(duì)游戲的概念比較模糊,在前期的編程設(shè)計(jì)過程中腦海中僅僅有一個(gè)框架,而很多卻細(xì)節(jié)沒有考慮到,結(jié)果一度走入一邊編程,一邊改模版的尷尬境地,進(jìn)度緩慢,思路不清。? 對(duì)于人機(jī)對(duì)弈的悔棋處理,由于這個(gè)算法的開銷相當(dāng)大,每一步落子都會(huì)存在不同的棋盤布局,所以實(shí)現(xiàn)從頭到尾的悔棋不是很現(xiàn)實(shí)(將會(huì)存在過多的空間保存棋盤布局) ,因而在人機(jī)對(duì)弈模式下,只允許玩家悔最近的兩步落子。? 由于計(jì)算機(jī)在落子時(shí)選取的是得分最高的一步落子,所以如果玩家在開局的時(shí)候不改變落子步驟,那么將會(huì)獲得從頭至尾相同的棋局。 } SetDlgItemText( IDC_ST_PERCENT, str )。 // 計(jì)算勝率 if ( 0 == pAppm_nWin ) { str = _T(勝率:0%)。 ( _T(%d), pAppm_nLost )。 ( _T(%d), pAppm_nDraw )。 ( _T(%d), pAppm_nWin )。山東凱文科技職業(yè)學(xué)院14}void CStatDlg::ShowStat(){ CFiveApp *pApp = (CFiveApp *)AfxGetApp()。 pAppm_nLost = 0。 pAppm_nWin = 0。CDialog::OnOK()。 wsprintf( str, _T(%d), pAppm_nLost )。 wsprintf( str, _T(%d), pAppm_nDraw )。 wsprintf( str, _T(%d), pAppm_nWin )。 // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE}void CStatDlg::OnOK() {// TODO: Add extra validation here CFiveApp *pApp = (CFiveApp *)AfxGetApp()。 ShowStat()。山東凱文科技職業(yè)學(xué)院13// TODO: Add extra initialization here // 讀取姓名 CTable *pTable = (CTable *)GetParent()GetDlgItem( IDC_TABLE )。代碼如下:CStatDlg::CStatDlg(CWnd* pParent /*=NULL*/): CDialog(CStatDlg::IDD, pParent){//{{AFX_DATA_INIT(CStatDlg)// NOTE: the ClassWizard will add member initialization here//}}AFX_DATA_INIT}void CStatDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX)。}在這之后,重新改變一下棋盤的狀態(tài)()即可。 bestx = pi。} 選取最佳落子在循環(huán)結(jié)束的時(shí)候,就可以根據(jù)攻、守兩方面的打分綜合地考慮落子位置了。 m++ ){ // 恢復(fù)玩家信息 m_Player[pi][pj][temp1[m]] = true。}for ( m = 0。 ptemp = GiveScore( step )。 = i。while ( SearchBlank( i, j, ptempTable ) ){ ptempTable[i][j] = 2。pi = i。 n++。 temp2[n] = m_Win[0][m]。 m++ ){ // 暫時(shí)更改玩家信息 if ( m_Player[i][j][m] ) { temp1[n] = m。整個(gè)過程如下:for ( m = 0?!》朗夭呗月渥拥目紤]不單單要從進(jìn)攻考慮,還要從防守考慮。 } } } } return nScore。 break。 break。 break。 break。 default: break。 case 4: nScore = 5000。 case 3: nScore = 500。 case 2: nScore = 50。 i++ ) {山東凱文科技職業(yè)學(xué)院9 if ( m_pTableGetColor() == ) { // 玩家下 if ( m_Player[][][i] ) { switch ( m_Win[0][i] ) { case 1: nScore = 5。 for ( i = 0。} 落子打分找到空位后,需要對(duì)這個(gè)點(diǎn)的落子進(jìn)行打分,這個(gè)分?jǐn)?shù)也就是這個(gè)坐標(biāo)重要性的體現(xiàn),代碼如下:int COneGame::GiveScore( const STEPamp。 return true。 nowTable[x][y] != 2 ) { i = x。 y++ ) { if ( nowTable[x][y] == 1 amp。 x++ ) { for ( y = 0。 for ( x = 0。i, int amp。 m_Win[1][i] = 1。m_Win[0][i] != 1 ) m_Win[0][i]++。 i++ ){ // 修改狀態(tài)變化 if ( m_Player[][][i] amp。以玩家落子為例,代碼為:for ( i = 0。在初始化的時(shí)候,將每個(gè)棋子數(shù)置為 0。 // 玩家獲勝組合在每次游戲初始化(COneGame::Init)的時(shí)候,需要將每個(gè)坐標(biāo)下可能的獲勝組合都置為true。由于是雙方對(duì)弈,所以游戲的雙方都需要一份獲勝組合,也就是:bool m_Computer[15][15][572]。而對(duì)于每個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1