java写的小游戏

                       用java写的小游戏,翻棋子的小游戏。
                       使用MVC的设计思想。
package cn.zhx.game;


public interface function {
int getR();
int getC();

boolean isBack(int r, int c);
void change(int r, int c);
    
boolean isAll();
}


package cn.zhx.game;
public class Model implements function {
int r;
int c;
boolean[][] flag;


public Model(int r, int c) {
super();
this.r = r;
this.c = c;
this.flag = new boolean[r][c];
}


@Override
public int getR() {
// TODO Auto-generated method stub


return flag == null ? 0 : r;
}


@Override
public int getC() {
// TODO Auto-generated method stub
return flag == null ? 0 : c;
}


@Override
public boolean isBack(int r, int c) {
// TODO Auto-generated method stub


return flag[r][c];
}


@Override
public void change(int r, int c) {
// TODO Auto-generated method stub
if ((r >= 0 && r < this.r) && (c >= 0 && c < this.c)) {
if (flag[r][c]) {
flag[r][c] = false;
} else {
flag[r][c] = true;
}
}
}


@Override
public boolean isAll() {
// TODO Auto-generated method stub
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (!flag[i][j]) {
return false;
}
}
}
return true;
}


}

package cn.zhx.game;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;


public class ViewFrame extends JFrame implements ActionListener {
/**

*/
private static final long serialVersionUID = 1L;
final static Icon backImage = new ImageIcon("./image/back.GIF");
final static Icon okImage = new ImageIcon("./image/ok.GIF");
int r;
int c;
GridLayout mainLayout;
JButton[][] buttons;
Model model;


public ViewFrame(int r, int c) throws HeadlessException {
super();
this.r = r;
this.c = c;
mainLayout = new GridLayout(r, c);
setLayout(mainLayout);
model = new Model(r, c);
initButtons();
setSize(580,460);
}


private void initButtons() {
buttons = new JButton[r][c];
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
buttons[i][j] = new JButton(backImage);
buttons[i][j].setActionCommand(i + "," + j);
buttons[i][j].addActionListener(this);
add(buttons[i][j]);


}


}


}


@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String cmd = e.getActionCommand();
int br = Integer.parseInt(cmd.substring(0,cmd.indexOf(",")));
int bc = Integer.parseInt(cmd.substring(cmd.indexOf(",")+1));
model.change(br - 1, bc);
model.change(br + 1, bc);
model.change(br, bc - 1);
model.change(br, bc + 1);


changeView(br - 1, bc);
changeView(br + 1, bc);
changeView(br, bc - 1);
changeView(br, bc + 1);


if (model.isAll()) {
           
}


}


private void changeView(int br, int bc) {
if ((br >= 0 && br < this.r) && (bc >= 0 && bc < this.c)) {
if (model.isBack(br, bc)) {
buttons[br][bc].setIcon(okImage);
} else {
buttons[br][bc].setIcon(backImage);
}
}
}
}
运行的效果


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。 Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。 Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值