java拿火柴游戏流程图_Java拿火柴游戏实训报告

41528d3028836879cd698677c3999917.gifJava拿火柴游戏实训报告

Java 实训报告程序名:拿火柴游戏姓名: 龙宇 学号: 2010221062 班级: 计应 101 班指导教师: 郑晓东时间: 2011.12.31一、 程序功能介绍火柴游戏的功能时通过用户与计算机相互对拿火柴的游戏程序,通过与计算机的对拿来训练人脑的逻辑思维能力。游戏简单,便于操作二、 运行效果及玩法该程序(火柴游戏)的功能用户与计算机相互对拿火柴的游戏程序,游戏的玩法是用系统产生的随机函数产生火柴数量(大约在 20—50 之间),每次每一方最多拿三根,最少拿一根,谁拿到最后一根,即为胜者。游戏的运行效果如下图图 1 所示,电脑随机产生了若干根火柴棍,图画面上按左边“Computer First”那个按钮,就是电脑先拿,如果点击的是右边的“TAKE ”按钮,就是人先拿。图 1具体步骤如下图所示1、如果是电脑先拿先单击 Computer First 按钮,电脑随机拿走一根火柴,并在电脑按钮下方显示“Computer takes 1 matches this time”提示信息,单击之后电脑拿走的按钮被禁用,直到用户单击自己的按钮之后才能再拿,具体情况如图 2 所示:图 22、之后用户单击自己的 Take 按钮,根据自己的情况拿相应的火柴数,比如说用户那个三根火柴如图 3 所示:图 33、可以看到用户根据自己的需要拿了三根火柴,之后电脑又拿了一根,如此循环,直到哪一方赢得比赛的胜利。从图 4,图 5 中可以看到用户赢得了比赛的胜利。图 4三、 设计主要内容:该游戏程序设计的主要内容是使用 java 中的各种组件与容器互相搭配来完成的一个小游戏。游戏设计中的主要的知识要点包括 java 的 awt 包中的颜色类,图形类,图像类,事件监听器类,和 util 包中的 stack 类,timer 类,和 timertask 类的使用方法,以及 swing 包中的窗口类,按钮类,标签类,面板类,复选框类等一些常用组件的用法。通过这些组件来掌握事件监听器的用法,java 中栈的用法,以及实现了 Runnable 类的TimerTask 类的用法,通过这个类实现线程技术,还有 Graphics 类中的主要方法的使用,学会运用这些方法来来绘制火柴,绘制图片的目的。四、 源程序import java.awt.Color;//引入颜色类import java.awt.Component;//引入组件类import java.awt.Dimension;//引入封装单个对象中组件的宽度和高度(精确到整数)的类import java.awt.Graphics;//引入图形类import java.awt.Graphics2D;//引入二维图形类import java.awt.event.ActionEvent;//引入事件类import java.awt.event.ActionListener;//引入事件监听器类import java.awt.image.BufferedImage;//引入缓冲图像类import java.util.Stack;//引入栈类import java.util.Timer;//引入计时器类import java.util.TimerTask;//引入了实现Runnable接口的类,并具有了线程的功能import javax.swing.JButton;//引入按钮类import javax.swing.JComboBox;//引入下拉列表框类import javax.swing.JFrame;//引入主框架主窗口类import javax.swing.JLabel;//引入标签类import javax.swing.JOptionPane;//引入选项面板类import javax.swing.JPanel;//引入面板类public class Test//定义一个公共的主类Test{public static void main(String[] args)//定义主方法main{new Test();//调用Test 类的构造方法Test()}private static final int MIN_CNT = 20;//定义一个常量,设置为最小火柴棍数量为20private static final int MAX_CNT = 50;//定义一个常量,设置为最大火柴棍数量为50private static final int MAX_TAKE = 3;//定义一个常量,设置为最大拿火柴数量为3private static final int DELAY = 1000;//定义一个常量,设置为延迟时间为1000private JFrame mainFrame;//定义主框架变量private MyPaintPanel[] paints;//定义我自己画的面板数组变量private JButton userBtn;//定义我的按钮属性private JComboBox userNum;//定义我的下拉列表private JButton compBtn;//定义电脑按钮属性private JLabel compTxt;//定义电脑标签private Timer timer;//定义计时器的变量private Test()//定义一个私有的构造方法,来完成游戏的初始化动作{mainFrame = new JFrame();//实例化一个主窗口mainFrame.setResizable(false);//设置窗体大小不可调整mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认的关闭操作为关闭窗口JPanel mainPanel = new JPanel();//实例化一个主面板对象mainPanel.setLayout(null);//设置布局为空,即没有任何布局mainPanel.setPreferredSize(new Dimension(600, 400));//将组件的首选大小设置为常量值mainFrame.add(mainPanel);//将主面板添加到框架(窗口)中JLabel lab11 = new JLabel(“电脑“);//创建并设置标签按钮的内容为电脑lab11.setHorizontalAlignment(JLabel.CENTER);//设置标签内容沿 X 轴的对齐方式lab11.setBounds(0, 10, 200, 20);//设置该标签显示位置为坐标(0,10 ),宽200,高20mainPanel.add(lab11);//将标签加入主面板JButton btn11 = new JButton(“Reset“);//定义一个重新来的按钮btn11.addActionListener(new ActionListener()//为“Reset” 添加行为事件监听器,采用匿名类的方式{@Overridepublic void actionPered(ActionEvent e)//实现监听器中的方法{init(

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值