收藏 分享(赏)

火柴游戏.doc

上传人:weiwoduzun 文档编号:5643801 上传时间:2019-03-10 格式:DOC 页数:16 大小:139.50KB
下载 相关 举报
火柴游戏.doc_第1页
第1页 / 共16页
火柴游戏.doc_第2页
第2页 / 共16页
火柴游戏.doc_第3页
第3页 / 共16页
火柴游戏.doc_第4页
第4页 / 共16页
火柴游戏.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、北 京 理 工 大 学 珠 海 学 院 计 算 机 学 院Java课 程 设 计 报 告题目: 火柴游戏 姓 名 : 岳 鹏 飞 学 院 : 计 算 机 科 学 与 技 术 专 业 : 软 件 工 程 专 业 班 级 : 一 班 学 号 : 070202011036 指导教师: 代 俊 雅 完成日期:2009 年 1 月 8 日北京理工大学珠海学院课程设计2原创性声明本人郑重声明:所呈交的课程设计报告,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式

2、标明。本人完全意识到本声明的法律结果由本人承担。作者签名:日期: 年 月 日北京理工大学珠海学院课程设计3前言Java 语言在诞生的短短的十几年时间内,在计算机领域得到了广泛的应用,同时在社会生活的应用中也发挥着非常重要的作用。Java 是一种简单、面向对象、分布式、平台无关、高效能、动态的语言。通过一个学期的学习,我对于 Java 程序设计有了初步的认识和了解,通过进一步的查阅相关书籍及网络上的资料,我完成了这次不太成功的程序设计。这一次程序设计意在考察我们对于 Java 语言的掌握程度和提高我们 Java 的自主程序设计能力,进一步理解和运用结构化程序设计的思想和方法,并且掌握书写程设计开

3、发文档的能力。另外,通过一个学期的学习与实践,我的数学能力,逻辑能力,全面整体的观察事物的能力,细心仔细的能力,还有创新的思维能力,都得到了一定的提升。对一些程序的编辑也有了模式化的认识通过这次程序设计,我对于 Java 语言又有了进一步的理解与认识,又明白了程序设计不是纸上谈兵,需要我们通过动手,动脑把自己脑中的思想转化为 Java 语言,同时又认识到团队的作用。我的 Java 学习的并不是十分理想,在这次设计过程当中我遇到了好多平时课本学习当中没有遇到的问题,是同学老师耐心的解答和帮助使得我的设计能够进行下去。这一次的程序设计让我认识到了自己的不足,在即将到来的寒假我决定参阅更多编程语言方

4、面的书籍,对自己的编程思想,语言掌握进行进一步的提高和深化。北京理工大学珠海学院课程设计I目录第一章 设计题目及要求 11.1 问题描述 .11.2 设计思路 1第二章 算法分析 22.1 系统结构框架 .22.2 图形用户界面设计 2第 三 章 主 要 流 程 图 .33.1 算法主要流程图 .3第四章 测试 44.1 图形用户界面测试 44.2 算法测试 5附录 6课程设计体会 10参考文献 11教师评语及成绩评定表 12北京理工大学珠海学院课程设计1第一章 设计题目及要求1.1 问题描述名称; 火柴游戏要求: 使用图形用户界面 程序随机产生 2050 根火柴,由人与计算机轮流拿,每次拿的

5、数量不超过 3 根,拿到最后一根为胜。1.2 设计思路本程序功能不是太复杂,主要工作是界面的设计。所有功能均在一个类中实现。函数名称 函数功能public GetMatch() 加载窗体及窗体关闭事件等public void actionPerformed(ActionEvent e) 响应事件,执行相应逻辑处理北京理工大学珠海学院课程设计2第二章 算法分析2.1 系统结构框架随机抽取 20-50 根火柴,人机依次抽取 1-3 根火柴,最终拿到最后一根火柴者获胜。首先用一个判断判断是否触发了 PC 启动按钮,若是则随机去一个 20 到 50 之间的整数。取了一个整数以后玩家利用单选按钮首先进行

6、选择,选则要减去的整数。减完以后得到的整数再加以判断,如果剩余的整数小于 0,跳转到界面显示“出错了!重新来过!” ,如果等于 0 则结束游戏当轮流减去几次整数以后,轮到计算机取数时,计算机则对剩余整数进行判断,如果该整数在 0 到 3 之间,怎就取该整数,结果计算机胜利,跳转到界面“你输了!” 。反之,轮到玩家取数是恰好剩余整数为 0 到 3 之间的整数,则玩家胜利,跳转到界面“你赢了!” 。2.2 图形用户界面设计从 JLabel 类中创建三个标签, 填入指定文本表示人取的火柴数,计算机取的火柴数以及剩余火柴数显示位置。创建一个按钮(JButton ) ,用于启动 PC 随机取出火柴。创建

7、三个单选按钮(JRadioButton) ,供玩家选择取出的火柴数量。创建两个单行文本框(JTextField) ,用于显示计算机取出的火柴数量和显示剩余的火柴数量。另外实现了关闭界面和最小化功能。运行结果:北京理工大学珠海学院课程设计3第 三 章 主 要 流 程 图3.1 算法主要流程图玩家通过单选框从该整数中选择减去1 到 3 之间的整数计算机新生成的整数中随机选择减去1 到 3 之间的整数剩余整数是否等于 0Y结束游戏N计算机随机取一个20 到 50 之间的整数经过几次减法运算之后得到的整数如果大于1 小于 3Y计算机则取与该值相等的整数计算机胜利N继续轮流减去1 到 3 之间的整数轮到

8、计算机取值Y玩家则取与该值相等的整数玩家胜利N北京理工大学珠海学院课程设计4第四章 测试4.1 图形用户界面测试经测试图形用户界面每个组建都实现了相应的功能,运行结果如下:(图 41)PC 启动:(图形 42)Person 取数(图形 43)剩余火柴数北京理工大学珠海学院课程设计5(图形 44)4.2 算法测试经过测试算法可以正确的实现游戏预计的功能,没有错误。若人取到最后一根(图形 45)若计算机取到最后一根(图形 46)若取至剩余火柴数为负(图形 47)北京理工大学珠海学院课程设计6附录程序源代码import javax.swing.JFrame;import javax.swing.JL

9、abel; import javax.swing.JOptionPane;import javax.swing.JRadioButton;import javax.swing.JTextField;public class GetMatch extends JFrame implements ActionListenerprivate static final long serialVersionUI = 920921981358099067L;public int sumMatch;private JLabel lbPer, lbCom, lbLast;private JButton btn

10、Start;private JRadioButton rdbOne, rdbTwo, rdbThree;/单选框private JTextField tfPcshow, tfLastshow;private boolean win = true;public GetMatch()/加载窗体super(“火柴游戏“);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/当框架关闭时,终止程序运行setSize(500, 300);/指定窗口大小setLocationRelativeTo(null);setResizable(false);initUI(

11、);private void initUI()Container contrainer = getContentPane();ButtonGroup group = new ButtonGroup();contrainer.setLayout(null);/设置布局版面为 nulllbPer = new JLabel(“Person 取数“);/创建组件lbPer.setBounds(20, 25, 100, 25);lbCom = new JLabel(“Computer 取数“);lbCom.setBounds(20, 70, 100, 25);北京理工大学珠海学院课程设计7lbLast

12、= new JLabel(“剩余火柴数“);lbLast.setBounds(20, 115, 100, 25);btnStart = new JButton(“PC 启动“);btnStart.setBounds(310, 70, 100, 25);btnStart.addActionListener(this);/注册事件监听器 rdbOne = new JRadioButton(“1“);rdbOne.setBounds(135, 25, 35, 35);rdbOne.addActionListener(this);rdbTwo = new JRadioButton(“2“);rdbTw

13、o.setBounds(170, 25, 35, 35);rdbTwo.addActionListener(this);rdbThree = new JRadioButton(“3“);rdbThree.setBounds(205, 25, 35, 35);rdbThree.addActionListener(this);tfPcshow = new JTextField();tfPcshow.setBounds(135, 70, 150, 25);tfLastshow = new JTextField();tfLastshow.setBounds(135, 115, 150, 25);/设置

14、为只能选择一个选项group.add(rdbOne);group.add(rdbTwo);group.add(rdbThree);/添加组件到版面contrainer.add(btnStart);contrainer.add(rdbOne);contrainer.add(rdbTwo);contrainer.add(rdbThree);contrainer.add(lbPer);contrainer.add(lbCom);contrainer.add(tfPcshow);contrainer.add(lbLast);contrainer.add(tfLastshow);public void

15、actionPerformed(ActionEvent e)/响应事件if(e.getSource() = btnStart)sumMatch = (int)(Math.random() * (50 - 20) + 20;tfPcshow.setText(“计算机随机取了“ + sumMatch + “根火柴“);tfLastshow.setText(“);else if(e.getSource() instanceof JRadioButton)北京理工大学珠海学院课程设计8int k = Integer.parseInt(JRadioButton)e.getSource().getText

16、();sumMatch -= k;if(sumMatch = 0)JOptionPane.showMessageDialog(this, “你赢啦!“, “TEST“, JOptionPane.INFORMATION_MESSAGE);else if(sumMatch 0)ret = sumMatch;sumMatch = 0;win = false;else if(sumMatch != 0)ret = (int)(Math.random() * (3 - 1) + 1;sumMatch -= ret;北京理工大学珠海学院课程设计9return ret;public static void

17、main(String args)GetMatch frame = new GetMatch();frame.setVisible(true);北京理工大学珠海学院课程设计10课程设计体会经过近一周的准备,我的工作总算顺利的结束了。在这段时间里,畏难过,抱怨过,但未曾想要放弃过。有时候一个简单的操作,一段简单的代码,我总是要花很长很长的时间才能完成,可能是基础知识不够扎实。慢慢的在很多同学和老师的帮助下,我算是可以比较顺利地完成我的 Java 课程设计,也渐渐发现自己对程序的开发越来越有兴趣。通过这次程序设计,我对于 Java 语言又有了进一步的理解与认识,又明白了程序设计不是纸上谈兵,需要我

18、们通过动手,动脑把自己脑中的思想转化为 Java 语言,同时又认识到团队的作用。我的 Java 学习的并不是十分理想,在这次设计过程当中我遇到了好多平时课本学习当中没有遇到的问题,是同学老师耐心的解答和帮助使得我的设计能够进行下去。这一次的程序设计让我认识到了自己的不足,在即将到来的寒假我决定参阅更多编程语言方面的书籍,对自己的编程思想,语言掌握进行进一步的提高和深化。程序设计能力的提高需要的是大量的实践,是这一次的课程设计让我明白了实践的重要性,激发了我编程的热情,我会进一步努力提高自己的各项能力。北京理工大学珠海学院课程设计11参考文献1.Java 程序设计实践教程 刘万军 梁清华 王松波 宋强 等编著 清华大学出版社北京理工大学珠海学院课程设计12教师评语及成绩评定表姓名: 成绩:指导教师评语:教师签名:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报