-
2021-03-05 15:49:09
一:坦克大战
源码import java.util.ArrayList;
import java.awt.*;
import java.awt.event.*;
import java.util.List;
import javax.swing.JOptionPane;
public class TankClient extends Frame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final int Fram_width = 800; //
public static final int Fram_length = 600;
public static boolean printable = true;
MenuBar jmb = null;
Menu jm1 = null, jm2 = null, jm3 = null, jm4 = null;
MenuItem jmi1 = null, jmi2 = null, jmi3 = null, jmi4 = null, jmi5 = null,
jmi6 = null, jmi7 = null, jmi8 = null, jmi9 = null;
Image screenImage = null;
Tank homeTank = new Tank(300, 560, true, Direction.STOP, this);//
GetBlood blood = new GetBlood();
Home home = new Home(373, 545, this);
List theRiver = new ArrayList();
List tanks = new ArrayList();
List bombTanks = new ArrayList();
List bullets = new ArrayList();
List trees = new ArrayList();
List homeWall = new ArrayList();
List otherWall = new ArrayList();
List metalWall = new ArrayList();
public void update(Graphics g) {
screenImage = this.createImage(Fram_width, Fram_length);
Graphics gps = screenImage.getGraphics();
Color c = gps.getColor();
gps.setColor(Color.GRAY);
gps.fillRect(0, 0, Fram_width, Fram_length);
gps.setColor(c);
framPaint(gps);
g.drawImage(screenImage, 0, 0, null);
}
public void framPaint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.green);
Font f1 = g.getFont();
g.setFont(new Font("TimesRoman", Font.BOLD, 20));
g.drawString("最高分: ", 200, 70);
g.setFont(new Font("TimesRoman", Font.ITALIC, 30));
g.drawString("" + tanks.size(), 400, 70);
g.setFont(new Font("TimesRoman", Font.BOLD, 20));
g.drawString("得分ֵ: ", 500, 70);
g.setFont(new Font("TimesRoman", Font.ITALIC, 30));
g.drawString("" + homeTank.getLife(), 650, 70);
g.setFont(f1);
if (tanks.size() == 0 && home.isLive() && homeTank.isLive()) {
Font f = g.getFont();
g.setFont(new Font("TimesRoman", Font.BOLD, 60));
this.otherWall.clear();
g.drawString(" ", 310, 300);
g.setFont(f);
}
if (homeTank.isLive() == false) {
Font f = g.getFont();
g.setFont(new Font("TimesRoman", Font.BOLD, 40));
tanks.clear();
bullets.clear();
g.setFont(f);
}
g.setColor(c);
for (int i = 0; i < theRiver.size(); i++) {
River r = theRiver.get(i);
r.draw(g);
}
for (int i = 0; i < theRiver.size(); i++) {
River r = theRiver.get(i);
homeTank.collideRiver(r);
r.draw(g);
}
home.draw(g);
homeTank.draw(g);
homeTank.eat(blood);
for (int i = 0; i < bullets.size(); i++) {
Bullets m = bullets.get(i);
m.hitTanks(tanks);
m.hitTank(homeTank);
版权属于:逍遥子大表哥
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
更多相关内容 -
15个java小游戏源码合集
2019-12-31 17:16:2115个java小游戏源码合集:Java打猎射击游戏,Java对对碰按钮版(最终版),Java俄罗斯方块2,Java飞行射击类游戏,Java推箱子2,Java网络五子棋2等等15个Java小游戏源码。 -
java贪吃蛇小游戏代码java小游戏源码.zip
2021-06-23 06:35:34java贪吃蛇小游戏代码java小游戏源码 -
JAVA小游戏源码(5个)
2018-08-13 00:23:33该资源包含5个JAVA小游戏源码,并且附有说明文档,需要的童鞋可以下载哦! -
20款java小游戏源码Zip
2017-06-05 23:38:12包含20款java小游戏源码,帮助你更好的学习java -
java游戏源代码:11个小游戏的源码集合
2019-11-04 17:32:08包括以下游戏的源码:沙漠阻击手,3D魔方游戏,财富城市,贪吃蛇,俄罗斯方块,麻将,三维迷宫,扫雷,推箱子,算卦游戏和简单回合游戏11个游戏的源码,欢迎下载,供学习与交流。 -
java小游戏 (源码)swing五子棋源代码
2022-05-31 20:07:37java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源... -
Java五个小游戏源码合集
2018-05-07 18:27:03java小游戏源码,亲测可用。内含 推箱子,坦克大战,俄罗斯方块,贪吃蛇,扫雷。好玩不贵,值得一探。 -
Java桌球小游戏源码及相关素材
2021-12-28 19:09:17包含Java桌球小游戏源码及相关素材 -
Java实现蜘蛛纸牌小游戏源码.zip
2021-08-23 09:07:58Java实现windows自带小游戏,蜘蛛纸牌小游戏源码 -
Java经典最新小游戏简易源代码及特效(上手简单,步骤大全,包学会)50个合集.rar
2021-05-15 10:31:35Java源码包实例源码JAVA开发...Java坦克大战网络对战版源代码.rar Java声音播放程序源代码.rar JAVA实现CLDC与MIDP底层编程的代码.rar Java实现HTTP连接与浏览,Java源码下载.rar Java实现的FTP连接与数据浏览程序.rar -
Java小游戏_Java扫雷
2021-03-16 06:23:06Java扫雷程序源码,java Swing实现的扫雷游戏程序源代码,内含需求分析+设计说明+程序文件说明。运行java StartJMine启动程序,或双击StartJMine.bat启动扫雷游戏主程序。程序框架都在JMine.java中。JMine.java 还... -
Java贪吃蛇小游戏源代码
2021-03-16 06:29:48摘要:JAVA源码,游戏娱乐,贪吃蛇 Java贪吃蛇小游戏源代码,非Android源码,当然Android中也是可以运行的,同是基于Java平台,不过修改运行方式。这是运行于Java手机的J2ME游戏源码,也是挺基础的,学习Android游戏... -
几十个java游戏源代码打包,仅供学习使用。
2022-02-07 22:42:25附件是几十个java游戏源代码打包,仅供学习使用。 1、纯java编写 2、主流小游戏 -
java小游戏源码集合
2021-05-19 10:50:458款java小游戏。包含五子棋,坦克大战,贪吃蛇,接苹果,跳跳球,推箱子,中国象棋,火柴人跑酷000000000000000000000000000000 -
java小游戏源码2021版
2021-05-20 09:02:42java小游戏 有5款经典热血小游戏 -
经典java小程序源代码合集.zip
2019-12-15 07:12:09160个项目开发实例,聊天项目,小游戏适和新手学习(项目采用GBK编码)。 import java.util.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*;... -
Java小游戏:超级玛丽源代码.rar
2019-07-10 12:10:28Java超级玛丽源代码,带背景音效,学习java编写游戏时可好好参考下,如果要运行看效果,需要在JAVA虚拟机情况下,运行编译生成的Mario.jar文件。 -
Java五子棋游戏源代码集锦
2019-07-22 13:47:31资源名称:Java五子棋游戏源代码集锦资源目录:【】514]java编写的智能五子棋【】five【】fiveChess【】FiveInARow【】Java五子棋代码【】java实现五子棋【】java编写的一个简单的五子棋程序【】java编的五子棋【】... -
java开发的小游戏源码下载-microrts:微信
2021-06-05 12:25:32java开发的小游戏源码下载微型RTS microRTS 是 RTS 游戏的一个小型实现,旨在执行 AI 研究。 与使用像 Wargus 或 StarCraft(使用 BWAPI)这样的成熟游戏相比,使用 microRTS 的优势在于 microRTS 简单得多,并且... -
求一个简单的Java小游戏的代码
2021-02-12 10:21:10展开全部连连看的小源码package Lianliankan;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class lianliankan implements ActionListener{JFrame mainFrame; //主面...展开全部
连连看的小源码
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面32313133353236313431303231363533e58685e5aeb931333335326239板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组
JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0"); //分数标签
JButton firstButton,secondButton; //分别记录两次被选中的按钮
int grid[][] = new int[8][7];//储存游戏按钮位置
static boolean pressInformation=false; //判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标
int i,j,k,n;//消除方法控制
public void init(){
mainFrame=new JFrame("JKJ连连看");
thisContainer = mainFrame.getContentPane();
thisContainer.setLayout(new BorderLayout());
centerPanel=new JPanel();
southPanel=new JPanel();
northPanel=new JPanel();
thisContainer.add(centerPanel,"Center");
thisContainer.add(southPanel,"South");
thisContainer.add(northPanel,"North");
centerPanel.setLayout(new GridLayout(6,5));
for(int cols = 0;cols < 6;cols++){
for(int rows = 0;rows < 5;rows++ ){
diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
}
}
exitButton=new JButton("退出");
exitButton.addActionListener(this);
resetButton=new JButton("重列");
resetButton.addActionListener(this);
newlyButton=new JButton("再来一局");
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450);
mainFrame.setVisible(true);
}
public void randomBuild() {
int randoms,cols,rows;
for(int twins=1;twins<=15;twins++) {
randoms=(int)(Math.random()*25+1);
for(int alike=1;alike<=2;alike++) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=randoms;
}
}
}
public void fraction(){
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));
}
public void reload() {
int save[] = new int[30];
int n=0,cols,rows;
int grid[][]= new int[8][7];
for(int i=0;i<=6;i++) {
for(int j=0;j<=5;j++) {
if(this.grid[i][j]!=0) {
save[n]=this.grid[i][j];
n++;
}
}
}
n=n-1;
this.grid=grid;
while(n>=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=save[n];
n--;
}
mainFrame.setVisible(false);
pressInformation=false; //这里一定要将按钮点击信息归为初始
init();
for(int i = 0;i < 6;i++){
for(int j = 0;j < 5;j++ ){
if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false);
}
}
}
public void estimateEven(int placeX,int placeY,JButton bz) {
if(pressInformation==false) {
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
pressInformation=true;
}
else {
x0=x;
y0=y;
fristMsg=secondMsg;
firstButton=secondButton;
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
if(fristMsg==secondMsg && secondButton!=firstButton){
xiao();
}
}
}
public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释
if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻
remove();
}
else{
for (j=0;j<7;j++ ) {
if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空
if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边
for (i=y-1;i>=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮
if (grid[x][i]!=0) {
k=0;
break;
}
else{ k=1; } //K=1说明通过了第一次验证
}
if (k==1) {
linePassOne();
}
}
if (y
for (i=y+1;i<=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮
if (grid[x][i]!=0){
k=0;
break;
}
else { k=1; }
}
if (k==1){
linePassOne();
}
}
if (y==j ) {
linePassOne();
}
}
if (k==2) {
if (x0==x) {
remove();
}
if (x0
for (n=x0;n<=x-1;n++ ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 && n==x-1) {
remove();
}
}
}
if (x0>x) {
for (n=x0;n>=x+1 ;n-- ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 && n==x+1) {
remove();
}
}
}
}
}
for (i=0;i<8;i++ ) { //列
if (grid[i][y0]==0) {
if (x>i) {
for (j=x-1;j>=i ;j-- ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x
for (j=x+1;j<=i;j++ ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x==i) {
rowPassOne();
}
}
if (k==2){
if (y0==y) {
remove();
}
if (y0
for (n=y0;n<=y-1 ;n++ ) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 && n==y-1) {
remove();
}
}
}
if (y0>y) {
for (n=y0;n>=y+1 ;n--) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 && n==y+1) {
remove();
}
}
}
}
}
}
}
public void linePassOne(){
if (y0>j){ //第一按钮同行空按钮在左边
for (i=y0-1;i>=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮
if (grid[x0][i]!=0) {
k=0;
break;
}
else { k=2; } //K=2说明通过了第二次验证
}
}
if (y0
for (i=y0+1;i<=j ;i++){
if (grid[x0][i]!=0) {
k=0;
break;
}
else{ k=2; }
}
}
}
public void rowPassOne(){
if (x0>i) {
for (j=x0-1;j>=i ;j-- ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
if (x0
for (j=x0+1;j<=i ;j++ ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
}
public void remove(){
firstButton.setVisible(false);
secondButton.setVisible(false);
fraction();
pressInformation=false;
k=0;
grid[x0][y0]=0;
grid[x][y]=0;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newlyButton){
int grid[][] = new int[8][7];
this.grid = grid;
randomBuild();
mainFrame.setVisible(false);
pressInformation=false;
init();
}
if(e.getSource()==exitButton)
System.exit(0);
if(e.getSource()==resetButton)
reload();
for(int cols = 0;cols < 6;cols++){
for(int rows = 0;rows < 5;rows++ ){
if(e.getSource()==diamondsButton[cols][rows])
estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);
}
}
}
public static void main(String[] args) {
lianliankan llk = new lianliankan();
llk.randomBuild();
llk.init();
}
}
//old 998 lines
//new 318 lines
更多追问追答
追问
有错误
追答
你要新建java工程 上网搜下java小游戏源码 自己好好看看
追问
好吧,我用的是文本
本回答被提问者和网友采纳
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
-
7个Java小游戏源代码
2007-11-10 17:34:037个Java小游戏源代码 解压密码是:yykings -
java小游戏 Typing(源码)
2022-05-31 20:31:29java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 Typing(源码)java小游戏 ... -
java小游戏 TDGame(源码)
2022-05-31 20:31:00java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 TDGame(源码)java小游戏 ... -
java小游戏 STGFly(源码)
2022-05-31 20:30:09java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 STGFly(源码)java小游戏 ... -
简单的java小游戏源码-greenfoot-cupcake-counter:在GreenfootIDE中开发的简单平台游戏。源代码来自“Cr
2021-05-23 03:42:03简单的java小游戏源码蛋糕柜台 在Greenfoot IDE中开发的简单平台游戏。 源代码取自《 Creative Greenfood》一书。 我已更新代码以在新的Greenfoot 3上运行。