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

正文內容

畢業(yè)設計---智能中國象棋系統(tǒng)的設計與實現(xiàn)-畢業(yè)設計-資料下載頁

2025-01-19 04:40本頁面

【導讀】智能中國象棋系統(tǒng)在此基礎上實現(xiàn)人與機器的對弈,突破了以往傳統(tǒng)象棋游。戲只能人與人對戰(zhàn)的限制,使中國象棋這一古老的游戲形式煥發(fā)出蓬勃朝氣。放棋譜以及挑戰(zhàn)英雄榜等功能模塊。人人對戰(zhàn)規(guī)則明確,包含了中國象棋所有的著法;作和播放棋譜模塊容易操作,方便學習;挑戰(zhàn)英雄榜則為象棋游戲增加了樂趣。棋譜不易保存、不易演示等問題。

  

【正文】 ng 類別 ) { 顏色類別 = 類別 。 } public String 棋子類別 () { return 顏色類別 。 } } 然后在棋盤類( ChessBoard)里定義棋盤的表示、棋子的類別、顏色以及棋子在棋盤上的位置表示: /*棋盤的表示 */ public void paintComponent(Graphics g) { (g)。 for(int j=1。j=y 軸長 。j++) { (point[1][j].x,point[1][j].y,point[x 軸長 ][j].x,point[x 軸長 ][j].y)。 } for(int i=1。i=x 軸長 。i++) { if(i!=1amp。amp。i!=x 軸長 ) { (point[i][1].x,point[i][1].y,point[i][y 軸長 5].x,point[i][y 軸長5].y)。 4 (point[i][y 軸長 4].x,point[i][y 軸長 4].y,point[i][y 軸長 ].x,point[i][y 軸長 ].y)。 } else { (point[i][1].x,point[i][1].y,point[i][y 軸長 ].x,point[i][y 軸長 ].y)。 } } (point[4][1].x,point[4][1].y,point[6][3].x,point[6][3].y)。 (point[6][1].x,point[6][1].y,point[4][3].x,point[4][3].y)。 (point[4][8].x,point[4][8].y,point[6][y 軸長 ].x,point[6][y 軸長 ].y)。 (point[4][y 軸長 ].x,point[4][y 軸長 ].y,point[6][8].x,point[6][8].y)。 for(int i=1。i=x 軸長 。i++) { (+i,i*unitWidth,unitHeight/2)。 } int j=1。 for(char c=39。A39。c=39。J39。c++) { (+c,unitWidth/4,j*unitHeight)。 j++。 } } /*棋子的類別 */ public String 紅方顏色 =紅色 ,黑方顏色 =黑色 。 ChessPiece 紅車 1,紅車 2,紅馬 1,紅馬 2,紅相 1,紅相 2,紅帥 ,紅士 1,紅士 2, 紅兵 1,紅兵 2,紅兵 3,紅兵 4,紅兵 5,紅炮 1,紅炮 2。 4 ChessPiece 黑車 1,黑車 2,黑馬 1,黑馬 2,黑將 ,黑士 1,黑士 2, 黑卒 1,黑卒 2,黑卒 3,黑 卒 4,黑卒 5,黑象 1,黑象 2,黑炮 1,黑炮 2。 通過以上兩段本系統(tǒng)就實現(xiàn)了棋盤和棋子的定義,然后通過下面的方法實現(xiàn)棋子在棋盤上的表示: public ChessBoard(int w,int h,int r,int c) { setLayout(null)。 addMouseListener(this)。 addMouseMotionListener(this)。 Color bc=getBackground()。 unitWidth=w。 unitHeight=h。 x 軸長 =r。 y 軸長 =c。 ...... 紅車 1=new ChessPiece(車 ,bc,w4,h4,this)。 紅車 棋子類別 (紅方顏色 )。 紅車 2=new ChessPiece(車 ,bc,w4,h4,this)。 紅車 棋子類別 (紅方顏色 )。 ...... point[1][10].setPiece(紅車 1,this)。 point[2][10].setPiece(紅馬 1,this)。 ...... } 實現(xiàn)界面后,就可以在此基礎上實現(xiàn)象棋系統(tǒng)的其它功能。 對弈功能的實現(xiàn) 對弈是用戶對象棋游戲最基本的需求,本系統(tǒng)的對弈功能包括人人對戰(zhàn)和人機對戰(zhàn)。人人對戰(zhàn)功能的實現(xiàn)其實就是一系列象棋規(guī)則的集中體現(xiàn),譬如“馬走日”、“相走田”、“炮打隔山”等。本系統(tǒng)通過對象棋規(guī)則的定義以及圖形化的棋子如何 在棋盤中消失來實現(xiàn)人人對戰(zhàn)這一功能: 4 public boolean movePieceRule(ChessPiece piece,int startI,int startJ,int endI,int endJ) { =piece。 ...... int minI=(startI,endI)。 int maxI=(startI,endI)。 ...... boolean 可否走棋 =false。 if(().equals(車 ))//車的走棋規(guī)則 { if(startI==endI) { int j=0。 for(j=minJ+1。j=maxJ1。j++) { if(point[startI][j].isPiece()) { 可否走棋 =false。 break。 } } if(j==maxJ) { 可否走棋 =true。 } } else if(startJ==endJ) { int i=0。 for(i=minI+1。i=maxI1。i++) { if(point[i][startJ].isPiece()) 4 { 可否走棋 =false。 break。 } } if(i==maxI) { 可否走棋 =true。 } } else { 可否走棋 =false。 } } ...... } 如何監(jiān)視棋子在棋盤中移動和消失的實現(xiàn): public void mousePressed(MouseEvent e)//按下鼠標時發(fā)生事件的情況 {...... } public void mouseDragged(MouseEvent e)//拖動棋子移動時發(fā)生的事件 { ...... } public void mouseReleased(MouseEvent e)//釋放鼠標時發(fā)生的事件 { { (pieceRemoved) 。 if( ().equals(紅方顏色 )) 4 { } if( ().equals(黑方顏色 )) { } (piece,startI,startJ,m,n) 。 (沒吃棋子 )。 } 系統(tǒng)的最終目的是要實現(xiàn)人機對戰(zhàn),人機對戰(zhàn)的核心是使電腦具有人工智能。本文通過 αβ剪枝算法使電腦生成有效的著法來實現(xiàn)人機對戰(zhàn)功能: public ListMotion generatePossibleMoves()//有效著法的生成 { ListMotion ret = new ArrayListMotion()。 for (int x = 0。 x 9。 x++) { for (int y = 0。 y 10。 y++) { int ChessMan = ChessBoard[x][y]。 if (ChessMan != 0) { if (!isRedGo amp。amp。 isRed(ChessMan)) { continue。 } if (isRedGo amp。amp。 !isRed(ChessMan)) { continue。 } switch (ChessMan) { case 7: if (isValidMove(x, y, x, y + 1)) { (new Motion(ChessMan, x, y, x, y + 1, 0))。 } 4 if (isValidMove(x, y, x, y 1)) { } if (isValidMove(x, y, x 1, y)) { } if (isValidMove(x, y, x + 1, y)) { }
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1