第一步:大嘴鱼类

package fish;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:* 大嘴鱼类<br>* 此类继承AcitonListener,实现AcitonPerformed方法,练习ActionListener的另一种实现方法<br>* 此类还练习定时器Timer的使用<br>* 此类还练习图形类Graphics的使用<br>*/
public class BigMouthFish implements ActionListener{/** 大嘴鱼嘴的方向:0-上 */public static int UP = 0;/** 大嘴鱼嘴的方向:1-右 */public static int RIGHT = 1;/** 大嘴鱼嘴的方向:2-下 */public static int DOWN = 2;/** 大嘴鱼嘴的方向:3-左 */public static int LEFT = 3;/** 大嘴鱼的身体大小,以size为半径画圆 */public int size = 50;/** 大嘴鱼现在的方向(以嘴的方向为基准) */public int direction = RIGHT;/** 大嘴鱼身体的颜色 */private Color color = Color.CYAN;/** 大嘴鱼的位置x */public int posx = 80;/** 大嘴鱼的位置y */public int posy = 80;/** 大嘴鱼的速度,鱼每次前进的像素 */public int speed = 4;/** 大嘴鱼眼睛的大小 */private int eyesize = size/5;/** 大嘴鱼眼睛的位置x */private int eyeposx = posx+size/2;/** 大嘴鱼眼睛的位置y */private int eyeposy = posy+size/5;/** 大嘴鱼眼睛的颜色 */private Color eyecolor = Color.RED;/** 大嘴鱼嘴的最大角度的一半 */private int maxMonth = 30;/** 大嘴鱼现在嘴角的角度 */private int monthsize = 30;/** 大嘴鱼的嘴是否张开 */private boolean isOpen = true;private Timer time = null;/*** 大嘴鱼缺省构造函数.<br>* 创建一个位置为(200,200),大小为50,方向为右,颜色为Color.CYAN,速度为10的大嘴鱼*/public BigMouthFish() {//this的使用。this(200,200,50,RIGHT,Color.CYAN,4);}/*** 根据位置、大小、方向、颜色、速度构造一个大嘴鱼。* @param posx 大嘴鱼的位置x。* @param posy 大嘴鱼的位置y。* @param size 大嘴鱼的大小。* @param direction 大嘴鱼的方向:0-上;1-右;2-下;3-左。出入错误时,默认改为1。* @param color 大嘴鱼的颜色。* @param speed 大嘴鱼的速度。*/public BigMouthFish(int posx,int posy,int size,int direction,Color color,int speed) {this.posx = posx;this.posy = posy;this.size = size;if(direction==1 || direction==2 || direction==3 || direction==4)this.direction = direction;this.color = color;this.speed = speed;eyesize = size/7;initEye();time = new Timer(FishPool.reTime,this);time.start();}/*** 大嘴鱼移动。根据鱼的方向移动鱼。*/public void move(){switch (direction) {case 0:posy--;break;case 1:posx++;break;case 2:posy++;break;case 3:posx--;break;default:break;}}/*** 改变大嘴鱼身体的颜色。* @param color 欲改变大嘴鱼身体的颜色*/public void changeColor(Color color){this.color = color;}/*** 改变大嘴鱼的方向* @param direction 欲改变大嘴鱼的方向*/public void changeDir(int direction){this.direction = direction;}/*** 使用画笔绘画大嘴鱼.大嘴鱼的头像:一个扇形的是鱼脸,上面有一个小圆是眼睛<br>* 1.保存画笔颜色<br>* 2.绘制大嘴鱼的脸<br>* 3.绘制大嘴鱼的眼睛<br>* 4.恢复画笔颜色<br>* @param g 画笔*/public void paint(Graphics g){//保存画笔的颜色Color c = g.getColor();//绘制鱼脸g.setColor(color);//从(posx,posy)点开始,绘制宽为size,高为size,开始角度为(direction%2==0?(direction+1):(direction-1))*90+monthsize,弧度为360-2*maxMonth的弧形g.fillArc(posx, posy, size, size, (direction%2==0?(direction+1):(direction-1))*90+monthsize, 360-2*monthsize);//绘制鱼眼initEye();g.setColor(eyecolor);g.fillOval(eyeposx, eyeposy, eyesize, eyesize);//恢复画笔颜色g.setColor(c);}/*** 大嘴鱼张嘴闭嘴事件<br>* 此处只负责鱼的角度的变化,不负责鱼的重绘。* 重绘在鱼池中实现。<br>* 这样的好处:保证鱼的绘制和步伐分开。显示层和逻辑层单独处理。(面向对象的责任问题)。* @param e 事件对象*/public void actionPerformed(ActionEvent e) {if(isOpen){monthsize -= 2;if(monthsize<=0)isOpen = false;}else{monthsize += 2;if(monthsize>=maxMonth)isOpen = true;}}/*** 方向改变时,眼睛的改变。*/private void initEye(){switch (direction) {case 0:eyeposx = posx+size/7;eyeposy = posy+size/2-eyesize;break;case 1:eyeposx = posx+size/2;eyeposy = posy+size/7;break;case 2:eyeposx = posx+size*5/7;eyeposy = posy+size/2;break;case 3:eyeposx = posx+size/2-eyesize;eyeposy = posy+size/7;break;default:break;}}
}

第二步:豆豆类

package fish;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:豆豆类*/
public class FishBean implements ActionListener{/** 小鱼的位置x */public int posx = 190;/** 小鱼的位置y */public int posy = 190;/** 小鱼的大小,以size为半径画豆豆(圆)。 */public int size = 10;/** 小鱼的当前颜色 */private Color color = Color.MAGENTA;/** 小鱼的新颜色 */private Color newColor = Color.MAGENTA;/** 小鱼的旧颜色 */private Color oldColor = Color.GRAY;/** 小鱼消失时的闪烁时间 */public static int flickerTime = 350;/** 小鱼消失时的闪烁次数 */public static int filckerNum = 8;private int hasFileckedNum = 0;/** 小鱼消失时闪烁的定时器 */private Timer timer = null;/*** 缺省构造函数。按位置(40,40),大小15,颜色Color.MAGENTA构造一个豆豆。*/public FishBean() {this(190,190,10,Color.MAGENTA,Color.GRAY);}/*** 按照位置、大小、颜色构造一个豆豆类。* @param posx 豆豆的水平坐标x。* @param posy 豆豆的垂直坐标y。* @param size 豆豆的大小。* @param newColor 豆豆的颜色。* @param oldColor 豆豆的旧颜色*/public FishBean(int posx,int posy,int size,Color newColor,Color oldColor) {this.posx = posx;this.posy = posy;this.size = size;this.newColor = newColor;this.oldColor = oldColor;this.color = newColor;timer = new Timer(flickerTime,this);}/*** 移动豆豆到新的位置。* @param posx 豆豆的新水平坐标x。* @param posy 豆豆的新垂直坐标y。*/public void newPos(int posx,int posy){this.posx = posx;this.posy = posy;}/*** 绘制豆豆。* @param g 画笔*/public void paint(Graphics g){Color c = g.getColor();g.setColor(color);g.fillOval(posx, posy, size, size);g.setColor(c);}/*** 停止Timer。*/public void stopTimer(){color = newColor;timer.stop();hasFileckedNum = 0;}/*** 启动Timer。*/public void runTimer(){timer.start();}/*** 定时器事件。*/public void actionPerformed(ActionEvent e) {hasFileckedNum++;if(color.equals(newColor) || color==newColor)color = oldColor;elsecolor = newColor;//定时器运行的次数完成时,停止定时器。if(hasFileckedNum==filckerNum && timer.isRunning()){stopTimer();}}/*** Timer定时器是否运行中。* @return 返回Timer是否运行中。*/public boolean timerIsRunning(){return timer.isRunning();}
}

第三部:鱼池类

package fish;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JLabel;
import javax.swing.KeyStroke;
import javax.swing.Timer;
import main.BigMouthFishFrame;
import tools.FishUtilities;
import tools.RandomUtil;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:* 鱼池类。<br>* 大鱼和小鱼放到此鱼池中,当大嘴鱼每吃10条小鱼的时候,鱼的size加1,速度加2。<br>* 每条小鱼默认存在的时间是15秒钟。10秒后自动消失。<br>* 此类练习if、for、Timer、内部类等的使用。<br>* 更重要的是,希望学员做这个的游戏时候能做好严谨的逻辑考虑后,再动手。<br>* 难点:大嘴鱼在鱼池边界的处理、大嘴鱼升级时的相关问题的处理。<br>*/
public class FishPool extends JLabel{private BigMouthFish fish = null;private FishBean bean = null;/** 小鱼存在的时间长短,单位:毫秒 */private int timeLegth = 20*1000;/** 重绘时间长短,单位:毫秒 */public static int reTime = 100;/** 鱼池重绘定时器 */private Timer timer = null;/** 小鱼生成定时器 */private Timer time = null;/** 大嘴鱼每升级1次属性增加:大小加1 */private int sizeAdd = 1;/** 大嘴鱼每升级1次属性增加:速度加2 */private int speedAdd = 2;/** 大嘴鱼每吃1条小鱼属性增加:分数加1 */private int scoreAdd = 1;/** 大嘴鱼现在的分数 */private int score = 0;/** 大嘴鱼升级的速度:每吃10条小鱼升级1次 */private int upgradeNum = 10;/** 大嘴鱼已吃小鱼的数量,每吃upgradeNum个,变为0 */private int eatNum = 0;/** 大嘴鱼的水平最小边界 */private int min_x = 0;/** 大嘴鱼的水平最大边界 */private int max_x = 0;/** 大嘴鱼的垂直最小边界 */private int min_y = 0;/** 大嘴鱼的垂直最大边界 */private int max_y = 0;public FishPool() {setSize(BigMouthFishFrame.width,BigMouthFishFrame.height);setLocation(10, 10);fish = new BigMouthFish();initFishBean();//此处加3、减3是为了大嘴鱼不直接接触鱼池边界。min_x = 3;max_x = BigMouthFishFrame.width-fish.size-3;min_y = 3;max_y = BigMouthFishFrame.height-fish.size-3;//注册向上键getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_UP,0),"UpPress");getActionMap().put("UpPress", new UpListenerImpl());//注册向右键getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,0),"RightPress");getActionMap().put("RightPress", new RightListenerImpl());//注册向下建getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,0),"DownPress");getActionMap().put("DownPress", new DownListenerImpl());//注册向左键getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,0),"LeftPress");getActionMap().put("LeftPress", new LeftListenerImpl());timer = new Timer(reTime,new TimerListenerImpl());timer.start();time = new Timer(timeLegth-FishBean.flickerTime*FishBean.filckerNum,new ActionListener(){public void actionPerformed(ActionEvent e) {//先停止本身定时器。time.stop();//启动小鱼的闪烁定时器。bean.runTimer();//检测小鱼是否已经闪烁完毕。new Thread(){public void run() {while (true) {//小鱼闪烁完毕后,移动大嘴鱼。//重新启动本身定时器。if(!bean.timerIsRunning()){beanNewPos();time.restart();break;}}}}.start();}});time.start();}/*** 初始化小鱼。<br>* 保证小鱼生成的位置与大嘴鱼的位置不重叠。*/private void initFishBean(){int size = 15;int posx = 0;int posy = 0;do{posx = RandomUtil.randomInt(BigMouthFishFrame.width-size);posy = RandomUtil.randomInt(BigMouthFishFrame.height-size);//System.out.println("posx:"+posx);//System.out.println("posy:"+posy);}while (posx>=fish.posx && posx<=fish.posx+fish.size && posy>=fish.posy && posy<=fish.posy+fish.size &&posx+size>=fish.posx && posx+size<=fish.posx+fish.size && posy+size>=fish.posy && posy+size<=fish.posy+fish.size);bean = new FishBean(posx,posy,size,Color.BLUE,getBackground());}/*** 小鱼重新生成新位置。<br>* 保证小鱼生成的位置与大嘴鱼的位置不重叠。*/private void beanNewPos(){int size = 15;int posx = 0;int posy = 0;do{posx = RandomUtil.randomInt(2*size, BigMouthFishFrame.width-2*size);posy = RandomUtil.randomInt(2*size,BigMouthFishFrame.height-2*size);}while (posx>=fish.posx && posx<=fish.posx+fish.size && posy>=fish.posy && posy<=fish.posy+fish.size &&posx+size>=fish.posx && posx+size<=fish.posx+fish.size && posy+size>=fish.posy && posy+size<=fish.posy+fish.size);bean.newPos(posx, posy);}/*** 覆盖JLabel的paint事件。* @param g 画笔。*/@Overridepublic void paint(Graphics g) {super.paint(g);fish.paint(g);bean.paint(g);}/*** 大嘴鱼的移动。<br>* 根据大嘴鱼嘴的方向,判断其是否到了鱼池边界。<br>* @param direction 大嘴鱼移动的方向*/private void bigFishMove(int direction){MOVE:for(int i=0;i<fish.speed;i++){fish.changeDir(direction);//大嘴鱼到池边,不可在移动switch(direction){case 0:if(fish.posy>=min_y+1)if(isTouched()) break MOVE;break;case 1:if(fish.posx<=max_x-1)if(isTouched()) break MOVE;break;case 2:if(fish.posy<=max_y-1)if(isTouched()) break MOVE;break;case 3:if(fish.posx>=min_x+1)if(isTouched()) break MOVE;break;}}}/*** 检测大嘴鱼是否吃到了小鱼。* @return 吃到小鱼就重新生成小鱼。*/private boolean isTouched(){fish.move();boolean b = FishUtilities.isInteraction(fish, bean);if(b){//鱼的升级eatNum++;score += scoreAdd;BigMouthFishFrame.lblScore.setText(score+"");if(eatNum==upgradeNum){eatNum = 0;fish.size += sizeAdd;fish.speed += speedAdd;BigMouthFishFrame.lblSize.setText(fish.size+"");BigMouthFishFrame.lblSpeed.setText(fish.speed+"");//下面的这段代码是发现游戏bug后增加的代码//bug:如果大嘴鱼在鱼池边界处恰好升级,将使鱼出界。if(fish.posx==max_x || fish.posy==max_y){fish.posx -= sizeAdd;fish.posy -= sizeAdd;}}//下面的这段代码是发现游戏bug后增加的代码。//bug:如果大嘴鱼在小鱼闪烁时吃到小鱼。小鱼将触发新位置,而又将使小鱼继续闪烁。//停止小鱼闪烁的定时器,更改颜色为原来的颜色。已经闪烁次数为0。if(bean.timerIsRunning()){bean.stopTimer();}beanNewPos();time.restart();}return b;}/*** 内部类 - 向上按键事件。* 2013-7-24* @author      Oracle* @version 2.0* @since       JDK1.6(建议)* @author      小夜的传说*/private class UpListenerImpl extends AbstractAction{public void actionPerformed(ActionEvent e) {bigFishMove(0);}}/*** 内部类 - 向右按键事件。* 2013-7-24* @author      Oracle* @version 2.0* @since       JDK1.6(建议)* @author      小夜的传说*/private class RightListenerImpl extends AbstractAction{public void actionPerformed(ActionEvent e) {bigFishMove(1);}}/*** 内部类 - 向下按键事件。* 2013-7-24* @author      Oracle* @version 2.0* @since       JDK1.6(建议)* @author      小夜的传说*/private class DownListenerImpl extends AbstractAction{public void actionPerformed(ActionEvent e) {bigFishMove(2);}}/*** 内部类 - 向左按键事件。* 2013-7-24* @author      Oracle* @version 2.0* @since       JDK1.6(建议)* @author      小夜的传说*/private class LeftListenerImpl extends AbstractAction{public void actionPerformed(ActionEvent e) {bigFishMove(3);}}/*** 内部类 - 图形重回事件.<br>* 2013-7-24* @author      Oracle* @version 2.0* @since       JDK1.6(建议)* @author      小夜的传说*/private class TimerListenerImpl implements ActionListener{public void actionPerformed(ActionEvent e) {repaint();}}
}

第四步:随机生成类

package tools;
import java.util.Random;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:* 数学类-随机数生成类*/
public class RandomUtil {/*** 生成a-b的随机数* @param a 整数a* @param b 整数b* @return a-b的随机数*/public static int randomInt(int a,int b){int t,n=0;if(a>b){t=a;a=b;b=t;}t=(int)(Math.ceil(Math.log10(b)));//对b向上取整while(true){n=(int)(Math.random()*Math.pow(10,t));//随机数*10的t次方if(n>=a && n<=b)break;}//System.out.println("生成的随机数如下:"+n);return n;}/*** 返回0-a的随机数。* @param a 整数a。* @return 返回0-a的随机数。*/public static int randomInt(int a){return new Random().nextInt(a);}
}

第五步:检测大嘴怪吃豆豆类

package tools;
import fish.BigMouthFish;
import fish.FishBean;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:* 检测大嘴鱼和小鱼碰撞类。<br>* 此类练习Math的静态函数的使用。*/
public class FishUtilities {/*** 返回大嘴鱼是否吃掉了小鱼。<br>* 方式:检测2鱼(圆)之间是否相切或相交。<br>* 判断2圆心之间的距离小于2圆半径之和。此处判断小于大嘴鱼的半径即可。让大嘴鱼可以吃掉小鱼。* @param fish* @param bean* @return 返回大鱼是否吃掉小鱼。*/public static boolean isInteraction(BigMouthFish fish,FishBean bean){return Math.pow(fish.posx+fish.size/2-bean.posx-bean.size/2,2)+Math.pow(fish.posy+fish.size/2-bean.posy-bean.size/2, 2)<=Math.pow(fish.size/2, 2);}
}

第六步:面板函数

package main;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.EtchedBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import fish.FishPool;
/****@author huyongjian Oracle(Compus Solution Group)* @Date  2013-7-24* @version 2.0* @since JDK1.6(建议)Copy Right Information    COMPUS SOLUTION GROUPIDE:Eclipseclass:大嘴鱼洁面类。完成大嘴鱼的界面的绘制。*/
public class BigMouthFishFrame extends JFrame{private FishPool pool = null;public static int width = 800;public static int height = 600;private JLabel lblInfo = new JLabel("欢迎进入大嘴鱼!V2.0");private JLabel lblFishSize = new JLabel("鱼 的 大 小:");private JLabel lblFishSpeed = new JLabel("鱼 的 速 度:");private JLabel lblFishScore = new JLabel("现 在 得  分:");public static JLabel lblSize = new JLabel("50");public static JLabel lblSpeed = new JLabel("4");public static JLabel lblScore = new JLabel("0");private JTextArea txtInfo = new JTextArea();public BigMouthFishFrame() {pool = new FishPool();pool.setBorder(new EtchedBorder(EtchedBorder.RAISED));setTitle("大嘴鱼游戏");setSize(width+180,height+50);setResizable(false);Toolkit tk=Toolkit.getDefaultToolkit();setLocation((tk.getScreenSize().width-getSize().width)/2,(tk.getScreenSize().height-getSize().height)/2);lblInfo.setSize(150,20);lblInfo.setLocation(width+25,240);String str = "    大嘴鱼游戏的简单使用说明:使用键盘上的上、下、左、右控制大嘴鱼的方向,每吃1条小鱼,得分加1分。每吃10条小鱼,大嘴鱼将升级:大小加1,速度加2。\n\n";str += "研发部总监:小胡\n分 析 设 计 :小夜的传说\n程 序 编 写 :小夜的传说";txtInfo.append(str);txtInfo.setBackground(getBackground());txtInfo.setEditable(false);txtInfo.setLineWrap(true);txtInfo.setSize(150,240);txtInfo.setLocation(width+15,370);txtInfo.setBorder(new TitledBorder(new LineBorder(Color.GRAY),"游戏说明"));JPanel pan = new JPanel();pan.setSize(150,100);pan.setLocation(width+15,265);pan.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));pan.setBorder(new TitledBorder(new LineBorder(Color.GRAY),"游戏积分"));pan.add(lblFishSize);pan.add(lblSize);pan.add(lblFishSpeed);pan.add(lblSpeed);pan.add(lblFishScore);pan.add(lblScore);setLayout(null);add(pool);add(lblInfo);add(pan);add(txtInfo);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}/*** @param args*/public static void main(String[] args) {new BigMouthFishFrame();}
}

Java程序猿联盟:160243674 欢迎大家的加入!

转载于:https://blog.51cto.com/1936625305/1282139

Java编写大嘴怪游戏--原创相关推荐

  1. java大嘴鱼游戏代码_Java编写大嘴怪游戏--原创

    第一步:大嘴鱼类 package fish; import java.awt.Color; import java.awt.Graphics; import java.awt.event.Action ...

  2. 贪吃的大嘴java_贪吃大嘴怪游戏下载|贪吃大嘴怪安卓版下载v1.0.2-乐游网安卓下载...

    <贪吃大嘴怪安卓版>是一款非常搞笑的敏捷休闲游戏,这款游戏操作起来的方式和玩法都还是非常容易的,而且拥有搞笑的街机的乐趣,快速的判断准确的点击,难度会慢慢的提升,具有一定的挑战性,感兴趣的 ...

  3. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  4. java编写大数据分析模型_如何用Java(DOM分析器)编写XML文件

    java编写大数据分析模型 Earlier we learned how to read XML file and how to edit XML file in java using DOM Par ...

  5. Java编写的五子棋小游戏

    看书的时候看到一个不完整的Java编写的一个五子棋小游戏,为了恢复一下编程能力刚刚把这个小程序完成了. 实现的功能很简单,两人对下五子棋,程序自动回判断输赢.在ubuntu下搞得,没有装什么高端的输入 ...

  6. 用Java编写简单的扑克牌游戏

    昨天我帮助一位朋友解决了这个问题,今天我即兴想写一篇详细的关于用Java编写扑克牌游戏的文章. 当然我这里只是实现一些简单的功能. 关于扑克牌游戏的特征,想必大家都有所接触过,有扑克牌,玩扑克牌游戏的 ...

  7. 利用Java编写简单的猜拳游戏

    猜拳游戏要求用Java编写一个人机对战并判断输赢,记录输赢情况. 其中,1代表石头,2代表剪刀,3代表布,110表示结束游戏. 思路:首先定义输入函数,并提示用户输入猜拳数值,定义一个随机数代表电脑数 ...

  8. 24点游戏java_使用java编写计算24点游戏程序

    初学java,编写了一个计算24点的程序,时间有限,有些粗糙,不过可以使用. //-------------Cal24.java--------------- //计算24点程序 //作者:徒步天下( ...

  9. Java 编写de简单小游戏 -- 《Lights Off》

    关灯游戏 – <Lights Off> 游戏规则: 当点击方块时,其左,右,上,下中的棋子灯的状态会变为相反的状态,题中假定1为开灯,0为关灯,棋盘大小为5*5,题中会随机生成开灯的方块, ...

最新文章

  1. centos 网卡聚合及Cisco交换机链路聚合
  2. 用 Python 爬了点你们喜欢的小电影
  3. Android 跨进程通信基础
  4. Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程
  5. zoj 3705 Applications
  6. uilabel 自适应
  7. Hemberg-lab单细胞转录组数据分析(四)
  8. java获取已经打开的串口的输出流_使用Java读取串口的程序(转)
  9. 在Centos环境下搭建Confluence
  10. 罗永浩回应被“Sharklet 科技解约”;12306 已屏蔽多个抢票软件;FreeDB 将关闭 | 极客头条...
  11. 2018年区块链五大关键趋势预测:区块链与物联网结合有望突破
  12. 先锋linux 64位安装包的安装使用
  13. 自用软件系列之:迅雷X ,无广告,纯净版
  14. HTML5框架 iframe用法 实现嵌套 好玩用法
  15. Mac 下如何解压 bin 文件
  16. 人工智能02 机器进化
  17. 14152学年C#程序设计语言与.Net框架基础课程之学生blog名单
  18. 使用HBuilder打包App教程(图文教程)
  19. 计算机老出现无法响应,电脑经常出现假死或未响应怎么处理
  20. web实现html页面思维导图效果

热门文章

  1. java 单元测试用例_Java 单元测试及JUnit的使用
  2. sql,判断字段是否包含数字字符或者英文字符,translate函数
  3. matlab中行矢量,请教 错误使用 zeros 大小矢量必须是包含实数元素的行矢量
  4. [Unity3D]Shader学习笔记之点和矢量
  5. .Net Core 为 x86 和 x64 程序集编写 AnyCPU 包装
  6. mysql2003错误如何解决_iPhone刷机出现未知错误3014如何解决【图文教程】
  7. Oracle APEX 系列文章3:在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Nginx)
  8. 使用Jest进行React单元测试
  9. 银河麒麟(linux arm64)安装新版谷歌浏览器
  10. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度