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

正文內(nèi)容

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

2025-01-16 22:38本頁面
  

【正文】 public int getHeight() { return height。 } public String getName() { return name。 } public Color 獲取棋子顏色 () { return foreColor。 } public void set棋子類別 (String 類別 ) { 顏色類別 = 類別 。 } 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)。 (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。 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)這一功能: 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()) { 可否走棋 =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(紅方顏色 )) { } 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))。 } if (isValidMove(x, y, x, y 1)) { }
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1