天天看點

Java五子棋

Java五子棋
Java五子棋

       這是我做的一個五子棋登陸界面以及棋盤界面。首先說登陸界面,其實登陸界面的制作是非常簡單的,就是一個界面上添加一張圖檔,在添加幾個按鈕就ok了,但對初學者來說(例如本人)其中有一個難點,就是圖檔的添加,該登陸界面添加圖檔的方式和以往的方式有所不同,你試過就會發現,倘若用以往的方式添加圖檔,那麼按鈕是不可能添加在圖檔上的。是以,要想在圖檔上添加按鈕就應該這樣:1、建立一個圖檔以及JLabel對象jla   2、将圖檔對象添加至JLabel中  3、設定jla的邊框大小  4、擷取窗體的深層面闆,将jla加至該深層面闆   5、再将該深層面闆設定為透明

ImageIcon image=new ImageIcon(this.getClass().getResource("wuziqi.png"));

JLabel jla=new JLabel(image);

jla.setBounds(0, 0, 319, 480);

this.getLayeredPane().add(jla,new Integer(Integer.MIN_VALUE));

Container panel=this.getContentPane();

((JPanel)panel).setOpaque(false);

再之後就可以設定按鈕效果了,其中按鈕變紅的效果可以這樣設定,首先在窗體上添加MousemotionListener(滑鼠動作監聽器),再在public void mouseMoved(MouseEvent e){}方法裡面寫出方法體就可以了,方法體可以這樣寫:當滑鼠移至按鈕附近(根據坐标調)時,設定按鈕改變顔色,而滑鼠移出該區域時再将按鈕設定為原色,這樣就可以達到這種效果了。

       接下來是棋盤,這是五子棋的核心!首先畫棋盤,這是一個比較麻煩的地方,需要調坐标,調好坐标後就可以将它寫在重繪方法裡面,這樣棋盤就畫好了。當然,畫棋盤還有一種比較簡單的方式,就是直接插入圖檔,這種方式是值得采用的,友善、簡潔,而且比畫出來的更加漂亮!棋盤畫好後,就是下棋子了,當然,這也是很簡單的,難點就是判斷輸赢!其實判斷輸赢的思路并不難,就是比較麻煩,下一個棋子後需要判斷8次之多!

                                       //橫向判斷棋子個數,往右

for(m=j+1;m<Config.X;m++){

if(array[m][k]==flag){

count++;

}

else

break;

}

//向左

for(n=j-1;n>=0;n--){

if(array[n][k]==flag){

count++;

}

else

break;

}

if(count>=5){

JOptionPane.showConfirmDialog(null, "Game Over, White Win!");

queue.CE();jf.repaint();

for(int i=0;i<13;i++)

for(int j=0;j<13;j++)

array[i][j]=0;

}

          這是向右、向左判斷,每一次判斷的方法都大同小異,就不一一列舉了。

做到這裡,五子棋就基本成型了,再加上悔棋、重新開始功能基本就ok了。當然,五子棋遠不止這些,人機對戰才是衡量五子棋是否做得成功的标準!