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

正文內(nèi)容

基于android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2025-07-01 00:42本頁(yè)面
  

【正文】 amp。amp。 chessID = R_END)。 } //判斷chessID是否是紅棋 public static boolean isRed(int chessID) { return (chessID = R_BEGIN amp。amp。 //初始棋盤 public final static int INITCHESSBOARD[][]= { {2,3,6,5,1,5,6,3,2}, {0,0,0,0,0,0,0,0,0}, {0,4,0,0,0,0,0,4,0}, {7,0,7,0,7,0,7,0,7}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {14,0,14,0,14,0,14,0,14}, {0,11,0,0,0,0,0,11,0}, {0,0,0,0,0,0,0,0,0}, {9,10,13,12,8,12,13,10,9} }。 public final static int FLEXIBLE_CAR = 6。 public final static int FLEXIBLE_HORSE = 12。 public final static int FLEXIBLE_BISHOP = 1。 public final static int BASEVALUE_KING = 10000。 public final static int BASEVALUE_CANON = 350。 public final static int BASEVALUE_ELEPHANT = //定義每種棋的價(jià)值 //兵100,士250,象250,馬350,炮350車500 public final static int BASEVALUE_PAWN = 100。 //紅卒 public final static int R_BEGIN = 8。 //紅仕 public final static int R_ELEPHANT = 13。 //紅馬 public final static int R_CANON = 11。 //紅將 public final static int R_CAR = 9。 public final static int B_END = 7。 //黑象 public final static int B_PAWN = 7。 //黑炮 public final static int B_BISHOP = 5。 //黑車 public final static int B_HORSE = 3。 //無(wú)子 //黑方 public final static int B_KING = 1。 }}package 。 //如果到了根節(jié)點(diǎn)S if(depth == m_maxDepth) {//記錄最優(yōu)的走棋,把它保存到m_bestMove中 bestMove = [depth][i]。 //取消上次走法 unMakeMove([depth][i],type)。 ++i) { //嘗試每種走法 type = makeMove([depth][i])。 for(i = 0。 if(depth = 0){//搜索到葉子節(jié)點(diǎn),返回估值信息 return (m_curPosition,side)。 if((m_maxDepthdepth)%2 == 1) side = true。 if(i != 0)//不等于0表示某方的王不存在了,直接返回 { return i。 int type。 int score = 0。 } makeMove(bestMove)。 //調(diào)用負(fù)極大值搜索引擎 try { (4000)。 ++j) m_curPosition[i][j] = position[i][j]。 ++i) for(j = 0。 for(i = 0。 } public static void searchAgoodMove(int[][] position) { m_maxDepth = m_searchDepth。public class NegamaxEngine extends SearchEngine{ public NegamaxEngine(){ } public static ChessMove Search(int[][] position){ searchAgoodMove(position)。 m_curPosition[][] = chessID。 return 0。 } if(!blackLive) if(0 != i) return 19990depth。//取當(dāng)前奇偶標(biāo)志 if(!redLive)//紅將不在了 { if(i != 0) return 19990 + depth。 ++j) { if(position[i][j] == 8) redLive = true。 ++i) for(j = 3。 } for(i = 7。 j 6。 i 3。 boolean redLive = false, blackLive = false。 return chessID。 m_curPosition[][] = m_curPosition[][]。 //移動(dòng)棋子 public static void searchAgoodMove(int position[][]){} public static int makeMove(ChessMove data) { int chessID。 //搜索深度 public static int m_searchDepth。 //走法產(chǎn)生七器 public static GuiZe moveGen = new GuiZe()。public class SearchEngine { //表示棋盤棋的分布 public static int m_curPosition[][] = new int[10][9]。//棋子的目標(biāo)點(diǎn)y坐標(biāo) = score。 = toX。//棋子的類型 = fromX。 int score。 int toX。//表明是什么棋子 int fromX。//切換到幫助界面 }}package 。//播放聲音 } (new MenuView(this,this))。//停止播放聲音 startSound = null。//播放聲音 } } public void initGameView(){//初始化游戲界面 (new GameView(this,this))。//初始化歡迎界面 } public void initWeleView(){//初始化歡迎界面 (new WeleView(this,this))。//游戲過(guò)程的背景聲音 (true)。//加載歡迎聲音 (true)。 getWindow().setFlags( , )。 public void onCreate(Bundle savedInstanceState) {//重寫的onCreate (savedInstanceState)。//初始化并切換到游戲界面 } else if( == 3){//MenuView傳來(lái)的消息,切換到HelpView initHelpView()。//游戲聲音 Handler myHandler = new Handler(){//用來(lái)更新UI線程中的控件 public void handleMessage(Message msg) { if( == 1){ //WeleView或HelpView或GameView傳來(lái)的消息,切換到MenuView initMenuView()。//是否播放聲音 MediaPlayer startSound。import 。import 。import 。import 。[8] 周瑋, 王水濤, 孫旸. 中國(guó)象棋計(jì)算機(jī)博弈中的一種數(shù)據(jù)結(jié)構(gòu)方法. 計(jì)算機(jī)工程與應(yīng)用, :219。[6] 王贈(zèng)凱, 呂維先. 機(jī)器博弈搜索技術(shù)分析. 軟件導(dǎo)刊, 2007, 2: 2627。[4]王驕, 王濤, 羅艷紅, 等. 中國(guó)象棋計(jì)算機(jī)博弈系統(tǒng)評(píng)估函數(shù)的自適應(yīng)遺傳算法實(shí)現(xiàn). 東北大學(xué)學(xué)報(bào), 2005, 126(10): 949952.。[2] 黃晨等. 象棋百科全書. 。最后感謝西安郵電大學(xué)和理學(xué)院這四年來(lái)對(duì)我的教導(dǎo),使我能夠成長(zhǎng)為現(xiàn)在這樣一個(gè)擁有技術(shù),即將踏入社會(huì)的學(xué)子。此次畢業(yè)設(shè)計(jì)才會(huì)順利完成。在此我要向我的導(dǎo)師致以最衷心的感謝和深深的敬意。老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、淵博的知識(shí)、無(wú)私的奉獻(xiàn)精神使我深受啟迪。我的設(shè)計(jì)較為復(fù)雜煩瑣,而且涉及到的一些技術(shù)算法很是生僻,但是林老師仍然細(xì)心地糾正我程序設(shè)計(jì)中的錯(cuò)誤,并且為我提供閱讀資料和開(kāi)發(fā)文檔供我參考。致 謝經(jīng)過(guò)這段時(shí)間的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)本科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒(méi)有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。對(duì)于人機(jī)博弈搜索算法只是用了負(fù)極大值搜索,負(fù)極大值搜索由于搜索太多效率較差由此設(shè)想可以通過(guò)對(duì)幾種不同的算法如歷史表法、迭代加深、極小窗口、渴望搜索、alphabeta等的同時(shí)實(shí)現(xiàn)然后選擇有效的搜索,來(lái)提高電腦人工智能的效率。由于技術(shù)和時(shí)間的問(wèn)題,本系統(tǒng)對(duì)弈時(shí)電腦走棋相對(duì)比較粗糙,系統(tǒng)中還存在著許多不足的地方需要改正和完善,如人機(jī)對(duì)戰(zhàn)時(shí)電腦走棋人工智能還欠缺。對(duì)Android手機(jī)的兼容,歡迎界面、菜單界面、幫助界面、游戲界面之間的切換,背景音樂(lè)的開(kāi)與關(guān),安全的退出游戲,棋子按規(guī)則行走等基本功能都得到實(shí)現(xiàn);而且粗略的完成了象棋的人機(jī)對(duì)弈。7 結(jié)束語(yǔ)本論文詳細(xì)論述了基于Android技術(shù)中國(guó)象棋人機(jī)對(duì)弈的設(shè)計(jì)與實(shí)現(xiàn),采用了JDK,Eclipse for IDE,Android SDK,ADT等工具。造成象棋對(duì)弈過(guò)程中電腦走棋思索時(shí)間太長(zhǎng),將使得玩家受不了。 通過(guò)對(duì)大量資料的了解學(xué)習(xí),最終初步設(shè)計(jì)實(shí)現(xiàn)了負(fù)極大值搜索引擎的搜索和局面的評(píng)估代碼。 經(jīng)過(guò)最初的測(cè)試,系統(tǒng)能正常運(yùn)行,能夠很好地實(shí)現(xiàn)模塊界面間的切換,音樂(lè)聲音的開(kāi)關(guān),象棋能夠按照規(guī)則來(lái)行走等功能都能正常運(yùn)行;同時(shí)電腦也可以進(jìn)行走棋,實(shí)現(xiàn)人和電腦下棋。 圖  游戲界面 (2) 玩家先走棋,玩家走一步棋;當(dāng)前位置顯示為黑帥,: 圖 輪到電腦走棋 (3)電腦走完棋后當(dāng)前位置顯示紅將,輪到玩家走棋;如圖 : 圖 電腦走完棋轉(zhuǎn)換玩家 (4)對(duì)局結(jié)束紅方將輸了(電腦贏了): 圖 紅方玩家輸了(電腦勝利) (5)對(duì)局結(jié)束紅方將贏了(電腦輸了): 紅方玩家贏了(電腦輸了) (5)點(diǎn)擊“您輸了”小框體或者點(diǎn)擊“退出”按鈕退出游戲界面切換到菜單界面,: 從游戲界面返回菜單界面6 運(yùn)行測(cè)試 系統(tǒng)測(cè)試是軟件開(kāi)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1