資源簡介
一個(gè)java小游戲的五子棋代碼,具有開局,悔棋,人機(jī)對(duì)戰(zhàn),人人對(duì)戰(zhàn)的功能
代碼片段和文件信息
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Toolkit;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseListener;
import?java.awt.image.BufferedImage;
import?java.io.File;
import?java.io.IOException;
import?javax.imageio.ImageIO;
import?javax.swing.Jframe;
import?javax.swing.JOptionPane;
public?class?FiveChessframe?extends?Jframe?implements?MouseListener?Runnable?{
//?取得屏幕的寬度
int?width?=?Toolkit.getDefaultToolkit().getScreenSize().width;
//?取得屏幕的高度
int?height?=?Toolkit.getDefaultToolkit().getScreenSize().height;
//?背景圖片
BufferedImage?bgImage?=?null;
//?保存棋子的坐標(biāo)
int?x?=?0;
int?y?=?0;
//?保存之前下過的全部棋子的坐標(biāo)
//?其中數(shù)據(jù)內(nèi)容?0:?表示這個(gè)點(diǎn)并沒有棋子,?1:?表示這個(gè)點(diǎn)是黑子,?2:表示這個(gè)點(diǎn)是白子
int[][]?allChess?=?new?int[19][19];
//?標(biāo)識(shí)當(dāng)前應(yīng)該黑棋還是白棋下下一步
boolean?isBlack?=?true;
//?標(biāo)識(shí)當(dāng)前游戲是否可以繼續(xù)
boolean?canPlay?=?true;
//?保存顯示的提示信息
String?message?=?“黑方先行“;
//?保存最多擁有多少時(shí)間(秒)
int?maxTime?=?0;
//?做倒計(jì)時(shí)的線程類
Thread?t?=?new?Thread(this);
//?保存黑方與白方的剩余時(shí)間
int?blackTime?=?0;
int?whiteTime?=?0;
//?保存雙方剩余時(shí)間的顯示信息
String?blackMessage?=?“無限制“;
String?whiteMessage?=?“無限制“;
public?FiveChessframe()?{
//?設(shè)置標(biāo)題
this.settitle(“五子棋“);
//?設(shè)置窗體大小
this.setSize(500?500);
//?設(shè)置窗體出現(xiàn)位置
this.setLocation((width?-?500)?/?2?(height?-?500)?/?2);
//?將窗體設(shè)置為大小不可改變
this.setResizable(false);
//?將窗體的關(guān)閉方式設(shè)置為默認(rèn)關(guān)閉后程序結(jié)束
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
//?為窗體加入監(jiān)聽器
this.addMouseListener(this);
//?將窗體顯示出來
this.setVisible(true);
t.start();
//?刷新屏幕防止開始游戲時(shí)出現(xiàn)無法顯示的情況.
this.repaint();
String?imagePath?=?““?;
try?{
imagePath?=?System.getProperty(“user.dir“)+“/image/background.jpg“?;
bgImage?=?ImageIO.read(new?File(imagePath.replaceAll(“\\\\“?“/“)));
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
public?void?paint(Graphics?g)?{
//?雙緩沖技術(shù)防止屏幕閃爍
BufferedImage?bi?=?new?BufferedImage(500?500
BufferedImage.TYPE_INT_RGB);
Graphics?g2?=?bi.createGraphics();
g2.setColor(Color.orange);
//?繪制背景
g2.drawImage(bgImage?1?20?this);
//?輸出標(biāo)題信息
g2.setFont(new?Font(“黑體“?Font.BOLD?20));
g2.drawString(“游戲信息:“?+?message?130?60);
//?輸出時(shí)間信息
g2.setFont(new?Font(“宋體“?0?14));
g2.drawString(“黑方時(shí)間:“?+?blackMessage?30?470);
g2.drawString(“白方時(shí)間:“?+?whiteMessage?260?470);
//?繪制棋盤
for?(int?i?=?0;?i?19;?i++)?{
g2.drawLine(10?70?+?20?*?i?370?70?+?20?*?i);
g2.drawLine(10?+?20?*?i?70?10?+?20?*?i?430);
}
//?標(biāo)注點(diǎn)位
g2.fillOval(68?128?4?4);
g2.fillOval(308?128?4?4);
g2.fillOval(308?368?4?4);
g2.fillOval(68?368?4?4);
g2.fillOval(308?248?4?4);
g2.fillOval(188?128?4?4);
g2.fillOval(68?248?4?4);
g2.fillOval(188?368?4?4);
g2.fillOval(188?248?4?4);
//?繪制全部棋子
for?(int?i?=?0;?i?19;?i++)?{
for?(int?j?=?0;?j?19;?j++)?{
if?(allChess[i][j]?==?1)?{
//?黑子
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-01-21?15:05??五子棋\
?????文件?????????301??2015-01-21?15:03??五子棋\.classpath
?????文件?????????385??2015-01-21?15:03??五子棋\.project
?????目錄???????????0??2015-01-21?15:03??五子棋\.settings\
?????文件?????????598??2015-01-21?15:03??五子棋\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2015-06-22?14:01??五子棋\bin\
?????文件????????9388??2015-06-22?14:01??五子棋\bin\FiveChessfr
?????文件????????2892??2015-06-22?14:01??五子棋\bin\MyChessfr
?????文件?????????426??2015-06-22?14:01??五子棋\bin\Test.class
?????目錄???????????0??2015-01-21?15:05??五子棋\image\
?????文件???????20983??2015-01-21?15:05??五子棋\image\background.jpg
?????目錄???????????0??2015-01-21?15:04??五子棋\src\
?????文件???????11787??2015-05-08?21:33??五子棋\src\FiveChessfr
?????文件????????2030??2015-01-21?15:09??五子棋\src\MyChessfr
?????文件?????????118??2015-05-08?20:39??五子棋\src\Test.java
評(píng)論
共有 條評(píng)論