資源簡介
一個java小游戲的五子棋代碼,具有開局,悔棋,人機對戰,人人對戰的功能
代碼片段和文件信息
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;
//?保存棋子的坐標
int?x?=?0;
int?y?=?0;
//?保存之前下過的全部棋子的坐標
//?其中數據內容?0:?表示這個點并沒有棋子,?1:?表示這個點是黑子,?2:表示這個點是白子
int[][]?allChess?=?new?int[19][19];
//?標識當前應該黑棋還是白棋下下一步
boolean?isBlack?=?true;
//?標識當前游戲是否可以繼續
boolean?canPlay?=?true;
//?保存顯示的提示信息
String?message?=?“黑方先行“;
//?保存最多擁有多少時間(秒)
int?maxTime?=?0;
//?做倒計時的線程類
Thread?t?=?new?Thread(this);
//?保存黑方與白方的剩余時間
int?blackTime?=?0;
int?whiteTime?=?0;
//?保存雙方剩余時間的顯示信息
String?blackMessage?=?“無限制“;
String?whiteMessage?=?“無限制“;
public?FiveChessframe()?{
//?設置標題
this.settitle(“五子棋“);
//?設置窗體大小
this.setSize(500?500);
//?設置窗體出現位置
this.setLocation((width?-?500)?/?2?(height?-?500)?/?2);
//?將窗體設置為大小不可改變
this.setResizable(false);
//?將窗體的關閉方式設置為默認關閉后程序結束
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
//?為窗體加入監聽器
this.addMouseListener(this);
//?將窗體顯示出來
this.setVisible(true);
t.start();
//?刷新屏幕防止開始游戲時出現無法顯示的情況.
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)?{
//?雙緩沖技術防止屏幕閃爍
BufferedImage?bi?=?new?BufferedImage(500?500
BufferedImage.TYPE_INT_RGB);
Graphics?g2?=?bi.createGraphics();
g2.setColor(Color.orange);
//?繪制背景
g2.drawImage(bgImage?1?20?this);
//?輸出標題信息
g2.setFont(new?Font(“黑體“?Font.BOLD?20));
g2.drawString(“游戲信息:“?+?message?130?60);
//?輸出時間信息
g2.setFont(new?Font(“宋體“?0?14));
g2.drawString(“黑方時間:“?+?blackMessage?30?470);
g2.drawString(“白方時間:“?+?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);
}
//?標注點位
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)?{
//?黑子
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評論
共有 條評論