JAVA走迷宫小游戏

import java.awt.*;
import javax.swing.*;

import java.awt.event.*;
import javax.swing.event.*;
class JPanelEa1 extends JFrame implements MenuListener,ActionListener
{
JPanel mainp,p1,p2,p3,p4;
JTextField jt1;
JMenuItem mnuCopy;
JMenuItem mnuPaste;
JButton bM;
boolean isDouble = false;// 是否为实数
int opFlag = -1;
static double t1 = 0, t2 = 0, t3 = 0, result = 0;
static int opflag1 = -1, opflag2 = -1, flag = 0, resflag = 1;
int preOp, currentOp = 0;// 标准位
double op1 = 0, op2 = 0;// 操作数
double n3;
StringBuffer buf = new StringBuffer(20);
StringBuffer copyBoard = new StringBuffer(20);// 剪贴板
StringBuffer memory = new StringBuffer(20);// M系列
StringBuffer str = new StringBuffer();

public JPanelEa1()
{
p1=new JPanel();
p1.setLayout(new GridLayout(2,1,10,10));
JMenuBar mnuNotepad=new JMenuBar();
JMenu mnuEdit=new JMenu("编辑(E)");
mnuEdit.setMnemonic(KeyEvent.VK_E);
JMenu mnuCheck=new JMenu("查看(V)");
mnuCheck.setMnemonic(KeyEvent.VK_V);
JMenu mnuHelp=new JMenu("帮助(H)");
mnuCopy=new JMenuItem("复制(C)");
mnuPaste=new JMenuItem("粘贴(P)");
JMenuItem mnuVisit=new JMenuItem("查看帮助(V)");
JMenuItem mnuAbout=new JMenuItem("关于计算器(A)");
JSeparator sep=new JSeparator();
jt1=new JTextField("0.");
jt1.setEnabled(false);
jt1.setHorizontalAlignment(JTextField.RIGHT);
mnuEdit.addMenuListener(this);
mnuCheck.addMenuListener(this);
mnuHelp.addMenuListener(this);
mnuCopy.addActionListener(this);
mnuPaste.addActionListener(this);
mnuVisit.addActionListener(this);
mnuAbout.addActionListener(this);
mnuNotepad.add(mnuEdit);
mnuNotepad.add(mnuCheck);
mnuNotepad.add(mnuHelp);
mnuEdit.add(mnuCopy);
mnuEdit.add(mnuPaste);
mnuEdit.add(sep);
mnuHelp.add(mnuVisit);
mnuHelp.add(sep);
mnuHelp.add(mnuAbout);
p1.add(mnuNotepad);
p1.add(jt1);
p2=new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
bM = new JButton(" ");
bM.setEnabled(false);
p2.add(bM);

Button b25=new Button("Backspace");
b25.addActionListener(this);
Button b26=new Button("CE");
b26.addActionListener(this);
Button b27=new Button("C");
b27.addActionListener(this);

p2.add(b25);
p2.add(b26);
p2.add(b27);
p3=new JPanel();
p3.setLayout(new GridLayout(4,6));
Button button1=new Button("MC");
button1.addActionListener(this);
Button button2=new Button("7");
button2.addActionListener(this);
Button button3=new Button("8");
button3.addActionListener(this);
Button button4=new Button("9");
button4.addActionListener(this);
Button button5=new Button("/");
button5.addActionListener(this);
Button button6=new Button("sqrt");
button6.addActionListener(this);
Button button7=new Button("MR");
button7.addActionListener(this);
Button button8=new Button("4");
button8.addActionListener(this);
Button button9=new Button("5");
button9.addActionListener(this);
Button button10=new Button("6");
button10.addActionListener(this);
Button button11=new Button("*");
button11.addActionListener(this);
Button button12=new Button("%");
button12.addActionListener(this);
Button button13=new Button("MS");
button13.addActionListener(this);
Button button14=new Button("1");
button14.addActionListener(this);
Button button15=new Button("2");
button15.addActionListener(this);
Button button16=new Button("3");
button16.addActionListener(this);
Button button17=new Button("-");
button17.addActionListener(this);
Button button18=new Button("1/x");
button18.addActionListener(this);
Button button19=new Button("M+");
button19.addActionListener(this);
Button button20=new Button("0");
button20.addActionListener(this);
Button button21=new Button("+/-");
button21.addActionListener(this);
Button button22=new Button(".");
button22.addActionListener(this);
Button button23=new Button("+");
button23.addActionListener(this);
Button button24=new Button("=");
button24.addActionListener(this);
p3.add(button1);p3.add(button2);
p3.add(button3);p3.add(button4);
p3.add(button5);p3.add(button6);
p3.add(button7);p3.add(button8);
p3.add(button9);p3.add(button10);
p3.add(button11);p3.add(button12);
p3.add(button13);p3.add(button14);
p3.add(button15);p3.add(button16);
p3.add(button17);p3.add(button18);
p3.add(button19);p3.add(button20);
p3.add(button21);p3.add(button22);
p3.add(button23);p3.add(button24);
setSize(250,150);
mainp=new JPanel();
mainp.setLayout(new GridLayout(3,1));
mainp.add(p1);
mainp.add(p2);
mainp.add(p3);
setContentPane(mainp);
setTitle("计算器");
setSize(300,300);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e)
{
String s= e.getActionCommand();
if (s.equals("复制(C)")) {
String temp = jt1.getText().trim();
copyBoard.replace(0, copyBoard.length(), temp);
mnuPaste.setEnabled(true);
} else if (s.equals("粘贴(p)")) {
jt1.setText(copyBoard.toString());
} else if (s.equals("CE")) {
// 如果是CE则清除文本框
jt1.setText("0.");
} else if (s.equals("Backspace")) {
if (!jt1.getText().trim().equals("0.")) {
// 如果文本框中有内容
if (str.length() != 1 && str.length() != 0) {
jt1.setText(str.delete(str.length() - 1, str.length())
.toString());
} else {
jt1.setText("0.");
str.setLength(0);
}
}
op2 = Double.parseDouble(jt1.getText().trim());
} else if (s.equals("C")) {
// 如果是C删除当前计算
jt1.setText("0.");
op1 = op2 = 0;
str.replace(0, str.length(), " ");
preOp = currentOp = 0;
} else if (s.equals("MC")) {
// 如果是MC则清除缓冲区
String temp = "";
memory.replace(0, memory.length(), temp);
bM.setText(" ");
} else if (s.equals("MR")) {
// 如果按键为MR则恢复缓冲区的数到文本框
jt1.setText(memory.toString());
} else if (s.equals("MS")) {
// 如果按键为MS则将文本框的数存入缓冲区
String s1 = jt1.getText().trim();
memory.replace(0, memory.length(), s1);
bM.setText("M");
} else if (s.equals("M+")) {
// 如果按键为MS则将文本框值与缓冲区的数相加但不显示结果
String temp1 = jt1.getText().trim();
double dtemp = Double.parseDouble(temp1);
String temp2 = memory.toString();
dtemp += Double.parseDouble(temp2);
temp1 = String.valueOf(dtemp);
memory.replace(0, memory.length(), temp1);
} else if (s.equals("1/x")) {
// 如果按键为1/x则将文本框中的数据为它的倒数
String temp = jt1.getText().trim();
double dtemp = Double.parseDouble(temp);
jt1.setText("" + 1 / dtemp);
} else if (s.equals("sqrt")) {
// 如果按键为sqrt则将文本框中的内容求平方根
String temp = jt1.getText().trim();
double dtemp = Double.parseDouble(temp);
jt1.setText("" + Math.sqrt(dtemp));
} else if (s.equals("+")) {
str.setLength(0);
if (currentOp == 0) {
preOp = currentOp = 1;
op2 = 0;
jt1.setText("" + op1);
} else {
currentOp = preOp;
preOp = 1;
switch (currentOp) {
case 1:
op1 += op2;
jt1.setText("" + op1);
break;
case 2:
op1 -= op2;
jt1.setText("" + op1);
break;
case 3:
op1 *= op2;
jt1.setText("" + op1);
break;
case 4:
op1 /= op2;
jt1.setText("" + op1);
break;
}
}
} else if (s.equals("-")) {
str.setLength(0);
if (currentOp == 0) {
preOp = currentOp = 2;// op1=op2;op2=0;
jt1.setText("" + op1);
} else {
currentOp = preOp;
preOp = 2;
switch (currentOp) {
case 1:
op1 = op1 + op2;
jt1.setText("" + op1);
break;
case 2:
op1 = op1 - op2;
jt1.setText("" + op1);
break;
case 3:
op1 = op1 * op2;
jt1.setText("" + op1);
break;
case 4:
op1 = op1 / op2;
jt1.setText("" + op1);
break;
}
}
} else if (s.equals("*"))// *
{
str.setLength(0);
if (currentOp == 0) {
preOp = currentOp = 3;// op1=op2;op2=1;
jt1.setText("" + op1);// op1=op2;
} else {
currentOp = preOp;
preOp = 3;
switch (currentOp) {
case 1:
op1 = op1 + op2;
jt1.setText("" + op1);
break;
case 2:
op1 = op1 - op2;
jt1.setText("" + op1);
break;
case 3:
op1 = op1 * op2;
jt1.setText("" + op1);
break;
case 4:
op1 = op1 / op2;
jt1.setText("" + op1);
break;
}
}
} else if (s.equals("/"))// /
{
str.setLength(0);
if (currentOp == 0) {
preOp = currentOp = 4;// op2=1;
jt1.setText("" + op1);// op1=op2;
} else {
currentOp = preOp;
preOp = 4;
switch (currentOp) {
case 1:
op1 = op1 + op2;
jt1.setText("" + op1);
break;
case 2:
op1 = op1 - op2;
jt1.setText("" + op1);
break;
case 3:
op1 = op1 * op2;
jt1.setText("" + op1);
break;
case 4:
op1 = op1 / op2;
jt1.setText("" + op1);
break;
}
}
} else if (s.equals("="))// =
{
if (currentOp == 0) {
str.setLength(0);
jt1.setText("" + op2);
} else {
str.setLength(0);
currentOp = preOp;
switch (currentOp) {
case 1:
op1 = op1 + op2;
jt1.setText("" + op1);
break;
case 2:
op1 = op1 - op2;
jt1.setText("" + op1);
break;
case 3:
op1 = op1 * op2;
jt1.setText("" + op1);
break;
case 4:
op1 = op1 / op2;
jt1.setText("" + op1);
break;
}
currentOp = 0;
op2 = 0;
}
} else if (s.equals(".")) {
isDouble = true;
if (jt1.getText().trim().indexOf('.') != -1)
;
else {
if (jt1.getText().trim().equals("0")) {
str.setLength(0);
jt1.setText((str.append("0" + s)).toString());
}
// else
// if(jt1.getText().trim().equals("")){}//如果初时显示为空则不做任何操作
else {
jt1.setText((str.append(s)).toString());
}
}
} else if (s.equals("0"))// 如果选择的是"0"这个数字键
{
if (jt1.getText().trim().equals("0.")) {
} else {
jt1.setText(str.append(s).toString());
op2 = Double.parseDouble(jt1.getText().trim());
}
} else {
jt1.setText(str.append(s).toString());
op2 = Double.parseDouble(jt1.getText().trim());
if (currentOp == 0)
op1 = op2;
}
}
public static void main(String args[])
{
JPanelEa1 g=new JPanelEa1();
}

@Override
public void menuSelected(MenuEvent e) {
// TODO Auto-generated method stub

}

@Override
public void menuDeselected(MenuEvent e) {
// TODO Auto-generated method stub

}

@Override
public void menuCanceled(MenuEvent e) {
// TODO Auto-generated method stub

}

}

if(ulobj.scrollTop==rows*height){
ulobj.scrollTop=0;
}
if(ulobj.scrollTop%height==0) {
timeID = setTimeout(play,d);
}else{
timeID = setTimeout(play,s);
}
}
timeID = setTimeout(play,d);
ulobj.onmouseover = function() {
clearTimeout(timeID);
}
ulobj.onmouseout = play;
}

没玩过

Java迷宫的游戏~

这个太简单了。。我用类C的代码写给你看看。。。直接手写的,不调试了
,谁让你就给这点分呢。。。。其实分啥都不是。。。

其实就是搜索,为了简单我就用深度优先了

int dir[4][2]={
{1,0},
{-1,0},
{0,1},
{0,-1}
};//用来控制方向的数组
int flag = 0;
int map[][];//这个就是你的迷宫

void dfs( int x, int y ){
if( flag ){
return;
}
map[x][y] = 0;
for(int i = 0; i < 4; i++ ){
int dx = x + dir[i][0];
int dy = y + dir[i][1];
if( 0 <= dx && dx < 行数 && 0 <= dy && dy < 列数 && map[dx][dy] == 1 ){
dfs(dx,dy);
}
}
map[x][y] = 1;
}


这个就是回溯函数了。。。。

你得知道游戏的机制
迷宫需要些什么
画图如何画
怎么判定是否走出迷宫
是否遇到墙,此路不通
搞懂了这些流程,做起来就快了

#17590858356# Java各种小游戏的编程思路 - ******
#阚南# Java小游戏主要的是使用java swing,通过组件化示例一个模型,鼠标监听移动,刷新界面,进行交互.

#17590858356# java(JavaSE)能用来写小游戏吗?又是怎么写的啊? ******
#阚南# /* * 简单的小游戏:九宫格游戏,将蓝色方块全部变成绿色方块,最少25步能完成,你试试... */ import javax.swing.JFrame; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JButton; import ...

#17590858356# 帮忙推荐几个JAVA小游戏 ******
#阚南# 战争艺术2,霸王大陆

#17590858356# 用JAVA编写一个小游戏 - ******
#阚南# 前天写的猜数字游戏,yong i控制猜测次数,有详细解析,用黑窗口可以直接运行, 我试验过了,没问题 import javax.swing.Icon; import javax.swing.JOptionPane; public class CaiShuZi4JOptionPane {/*** @param args*/public static void ...

#17590858356# 求几个java做的小游戏 ******
#阚南# 就在2009年最热门、最大最好玩、最安全无毒、人气最高的游戏网站: www.43-99.com

#17590858356# java做小游戏的一个简单问题 ******
#阚南# 这个用数据库当然更好,那还要看你游戏都需要什么参数,例如只有时间、玩家、级别、分数、历史榜单之类的就这么多吧!新建一个游戏的VO,字段包括以上几个,按你的需求你可以增删该.数据库中新建表字段与你vo中的字段相对应.创建JDBC将其VO与数据库连接 具体想怎么操作这个数据表就看你游戏的需求了.

#17590858356# JAVA求助 一个关于英文猜字谜的小游戏编程 - ******
#阚南# 我想了个简单的思路1.既然是单词是否有相同顺序的字母..分解来看 就是2个字母组合是最小的 所以把s1 和 s2 分解成 两个字母的顺序组合就可以了.2.然后比较分解出来的 2个字母组合数组或者集合 有相同的2个字母组合 就返回true 比如: slient ...

#17590858356# java小游戏编程 - ******
#阚南# /** * File: ControlPanel.java * User:相思无偿 * Date: 2004.12.3 * Describe: 俄罗斯方块的 Java 实现 */ import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; import java.awt.*; import java.awt.event.*;/** ...

#17590858356# 手机java小游戏 ******
#阚南# 克隆危机.不错,伪3D效果,诺基亚玩起来应该无鸭梨.暗黑世界—亡灵的崛起.Q版动作游戏.挺过瘾的,禁咒,奥义啥的

#17590858356# 用java做一个小游戏的问题 - ******
#阚南# 可以在开炮触发的时候产生一个字弹对象 将该对象启动一个线程用于控制前进,当遇到障碍或边界时线程停掉,子弹消除

  • 我正在用java写一个迷宫游戏,现在已经能生成迷宫和移动小人了,请大家...
  • 答:迷宫游戏: 更偏向于益智 和 策略 ,所以可以使用下面的一些思路,来增强可玩性.~并且代码量比较少 地图_宝箱: 打开宝箱后,可以获得道具奖励.需要道具钥匙 地图_丛林:玩家需要(普通斧头)进行伐木,获取木材 地图_小木桥: 一座...

  • 能帮忙写个JAVA的“迷宫游戏”的程序吗?
  • 答:import java.io.IOException;public class GameStart { public static void main(String[] args) { int num=0;//判断方向 System.out.println("迷宫游戏开始:");int[][] array = new MiGong().getMiGong();//创建...

  • 关于Java走迷宫的问题。我已经有相关代码了,但是我看不懂。麻烦高手帮忙...
  • 答:import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.LinkedList; import java...

  • java老鼠迷宫代码难吗
  • 答:非常难。思路:1、设老鼠的行进路线都是优先选择下->右->上->左。2、设老鼠很聪明,走过的路线走撒泡尿,表示鼠大爷到此一游,我们可以把数组的值改为3,表示走过,但走不通。3、这是一个int[8][8]的二位数组,...

  • 诺基亚java单机游戏盘点:你玩过哪些?
  • 答:诺基亚java单机游戏第一弹:推箱子 1994年,日本工程师中森明夫发明了推箱子游戏。顾名思义,就是利用豆腐块和箱子来构成一个迷宫,在规定次数之内将所有的箱子推到指定位置,这种智力小游戏盛行于全球。而在诺基亚手机上,这...

  • 【急求!】用java写一个走迷宫的小游戏,原创加分 大神们帮忙啊 期限20个...
  • 答:不过分值20恐怕不行(好吧,我承认我在讹人),暂时可以先把除Bot外的具体实现打包到一个Eclipse项目中,然后整工程传过去给您(午饭前查邮箱即可),不过要实现完整的Bot部分,分支希望加到150分。不然,小弟将考虑不补全...

  • java栈实现走迷宫
  • 答:首先,你要知道走迷宫的思路:就是遇到岔路都往一个方向,比如往右,遇到死路就回头,回头遇到岔路继续往右。

  • 诺基亚Java老版手机游戏合集
  • 答:当然,这些并不是所有经典的诺基亚Java老版手机游戏。还有《贪吃蛇》、《护卫钢笔》、《连连看》、《翻翻看》、《火柴人打飞机》等等一系列备受喜爱的游戏。总的来说,这些诺基亚Java老版手机游戏成为了很多人的回忆,虽然现在...

  • 急求java课程设计,内容可以是小游戏的,如(迷宫,计算器,停车场之恋的...
  • 答: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 ...

  • java大神 我编写了一个迷宫实验 如何实现Q键退出程序就是那个迷宫游戏小...
  • 答:给窗口添加键盘监听事件 frame.addKeyListener(this);然后在监听事件里写 if(e.getKeyCode()==KeyEvent.VK_Q){ System.exit(1);}

    为传递更多家电数码信息,若有事情请联系
    数码大全网