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

正文內容

五子棋本科畢業(yè)論文(編輯修改稿)

2025-07-25 16:43 本頁面
 

【文章內容簡介】 來調用一個圖片作為我們下棋的背景圖片使用。 第四章 軟件的具體實現:首先用MyEclipse來建一個工程,我將此工程的名字命為:fivechess。然后在我所建的工程里建立一個包,包名為fiveframe。再在包里面建立我需要的類,建立一個名字為FiveChessFrame的JAVA類,而且同時引入MouseListener 這個監(jiān)聽的接口,有下面拓展 public class FiveChessFrame extend JFrame implements MouseListener。那么這個類里面就會有監(jiān)聽的一些命令:@Override public void mouseClicked(MouseEvent e) { // TODO Autogenerated method stub } //鼠標點擊監(jiān)聽操作。 @Override public void mouseEntered(MouseEvent e) { // TODO Autogenerated method stub } //鼠標進入監(jiān)聽操作。 @Override public void mouseExited(MouseEvent e) { // TODO Autogenerated method stub } //鼠標離開監(jiān)聽操作。 @Override public void mousePressed(MouseEvent e) { // TODO Autogenerated method stub} ////鼠標按下監(jiān)聽操作。@Override public void mouseReleased(MouseEvent e) { // TODO Autogenerated method stub } //鼠標抬起監(jiān)聽操作。:開始開發(fā)游戲的第一步就是先制作出游戲的窗口界面,一個漂亮美麗大方的游戲界面,往往先能吸引玩家去嘗試,所以這個地方不能夠馬虎。先把我們需要的窗口按需求創(chuàng)建出來:public FiveChessFrame() { //設置標題 (五子棋)。 //窗體大小 (500,500)。 //窗體出現位置 ((width 500) / 2, (height 500) / 2)。 //窗體設置為大小不可變 (false)。 //將窗體的關閉方式設置為默認關閉后程序結束 ()。 //加入鼠標監(jiān)聽 (this)。 //將窗體顯示出來 (true)。}然后建立一個測試類,來測試一下我剛才寫的窗口是否符合我的要求:import 。public class Test { public static void main(String[] args){ FiveChessFrame ff=new FiveChessFrame()。 }}運行這個測試類得到如下窗口:得出這個窗體以后,我們就開始編寫界面,我先是調用一個圖片作為我這個五子棋程序棋盤的背景,大家都喜歡在木棋盤上面下五子棋,那種會讓人感覺到很高雅,所以我就選了一張木質的圖片來當我的五子棋的背景圖片。先定義一個背景圖片://背景圖片 BufferedImage bgImage = null 。下面是調用背景文件,要用try來調用,要不然會出錯。 try{ bgImage = (new File(e:/JAVA/))。 }catch(Exception e){ ()。 }由上面的語句可以知道我加入的背景圖片存放在e:/JAVA/這個目錄下,現在加入把背景顯示出來的方法:public void paint(Graphics g){ //繪制背景 (bgImage, 1, 20, this)。}這樣我們就把背景圖片調用到了,再看一下現在的窗口界面:現在已經可以看到背景圖象了,很有木質感,一看到這個背景就讓人有想下棋的沖動,當然,要等程序寫好了才能下。那么,下面我要開始繪制棋盤了,我需要繪制一個十九乘十九的棋盤,繪制棋盤需要注意到的問題是,我們點擊棋盤的時候,會出現跳動也就是屏幕閃爍的問題,因為我們每下一步棋子,都會需要再繪制一次棋盤的。所以我們就要用到雙緩沖技術了,雙緩沖技術的使用會使得屏幕不再閃爍,一般雙緩沖技術用在手機游戲中,因為手機內存小,屏幕閃爍問題比較明顯。在畫棋盤的時候需要計算棋盤中每一條線的間距,這里用的是十九乘十九的圍棋棋盤那么總寬度可以為360像素,分成18份,沒分是20像素,總高度也同樣是360像素,如寬度一樣分。實現語句: public void paint(Graphics g){ //雙緩沖技術防止屏幕閃爍 BufferedImage bi = new BufferedImage(500,500,)。 Graphics g2 = () 。 ()。 //繪制背景 (bgImage, 1, 20, this)。 //控制字體 (new Font(黑體,20))。 //輸出標題信息 (下棋提示: , 130, 60)。 //把前面改過的字體改回來 (new Font(宋體,0,14))。 //輸出時間信息 (黑方時間:無限制 , 30 , 470)。 (白方時間: 無限制, 260, 470)。 //添加下棋需要到的功能說明 (new Font(黑體,15))。 (開始游戲, 405, 110)。 (游戲設置, 405, 160)。 (游戲說明, 405, 210)。 (悔棋, 425, 260)。 (認輸, 425, 310)。 (關于, 425, 360)。 (退出, 425, 410)。 //繪制棋盤 for (int i=0。i19。i++) { (10, 70+20*i, 370, 70+20*i)。 (10+20*i, 70, 10+20*i, 430)。 } //標點位,棋盤上的八個星和一個天元點。 (68,128,4,4)。 (308,128,4,4)。 (308,368,4,4)。 (68,368,4,4)。 (308,248,4,4)。 (188,128,4,4)。 (68,248,4,4)。 (188,368,4,4)。 (188,248,4,4)。 //在背景上繪制以后調用,實現雙緩沖。 (bi, 0, 0, this)。}通過上面的幾段代碼,現在就可以得到一個我需要的界面了,那么界面就算是繪制完成了,測試一下看:這就是五子棋游戲的基本界面,以后要補全的功能也在上面了。:現在我需要在我完成的游戲界面上可以下棋,也就是可以把通過鼠標點擊,我可以在相應的位置上放下棋子。先繪制棋子,黑棋我用一個實心的黑圓來表示,白棋用一個實心的白圓再加上一個同大小的空心的黑圓來表示通過一個二維的數組來保存之前已經下過的棋子。點擊鼠標對應位置的時候,把棋子落在距離點擊處最近的左上一個交點上,這樣使得棋子都能落在交點上,美觀而且符合五子棋實際下棋的要求://保存棋子的坐標 int x = 0。 int y = 0。 //保存之前下過的全部棋子的坐標 //內容為0表示沒有棋子,為1表示黑子,為2表示白子 int[][] allChess = new int[19][19]。 //繪制棋子 /*(x, y, 10, 10)。*/ for (int i = 0。 i 19。 i++){ for (int j = 0。 j 19。 j++) { if (allChess[i][j] == 1) { //黑子 int tempX = i * 20 + 10 。 int tempY = j * 20 + 70 。 (tempX 7, tempY 7, 14, 14)。 } if (allChess[i][j] == 2) { //白子 int tempX = i * 20 + 10 。 int tempY = j * 20 + 70 。 ()。 (tempX 7, tempY 7, 14, 14)。 ()。 (tempX 7, tempY 7, 14, 14)。 } } }點擊鼠標時讓棋子下在棋盤范圍之內,那么就要用到鼠標按下這個類了:@Override public void mousePressed(MouseEvent e) { // TODO Autogenerated method stub /*(X:+())。 (Y:+())。*/ if (canPlay == true){ x = () 。 y = () 。 if (x = 10 amp。amp。 x = 370 amp。amp。 y = 70 amp。amp。 y = 430) { //重新執(zhí)行一次paint()方法 ()。}那么,下棋的功能就已經可以實現了,下棋的時候我們是需要互斥的下子的,先是黑棋下了然后到白棋,而且當棋盤上有棋子的時候就不可以再往那個地方下棋了,所以我們還需要做一下互斥的功能,并用下棋的游戲信息來提示玩家該輪到誰落子了,同時當棋子落在同一個位置的時候,就要放出提示框來提示已經有棋子,不能再下棋。//標識當前是黑棋還是白棋下下一步 boolean isBlack = true 。 //標識當前游戲是否可以繼續(xù) boolean canPlay = true 。 //保存顯示的提示信息String message = 黑方先行 。 @Override public void mousePressed(MouseEvent e) { if (canPlay == true){ x = () 。 y = () 。 if (x = 10 amp。amp。 x = 370 amp。amp。 y = 70 amp。amp。 y = 430) { /*(在棋盤范圍之內: + x + + y)。*/ x = (x 10) / 20。 y = (y 70) / 20。 if (allChess[x][y] == 0){ //判斷要下棋子的顏色 if (isBlack == true){ allChess[x][y] = 1。 isBlack = false 。 message = 輪到白方。 }else{ allChess[x][y] = 2。 isBlack = true 。 message = 輪到黑方。 } //判斷是否勝利了 boolean winFlag = ()。 if (winFlag == true){ (this, 游戲結束,+(all
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1