您的当前位置:首页正文

棒打猪头JAVA完整代码

2022-03-12 来源:九壹网


棒打猪头

目录

第1章 需求分析.....................................................................................................................................2

1.1 研究背景.........................................................................................................................................2 1.2 研究方案.........................................................................................................................................2 1.2.1 课程设计目的...........................................................................................................................2

1.2.2 课程设计的实验环境...............................................................................................................2 1.2.3 课程设计的预备知识................................................................................................................3 1.2.4 课程设计要求...........................................................................................................................3

第2章 系统设计 .................................................................................................................................... 3

2.1游戏设计概述 ............................................................................................................................... 3

2.1.1概要设计................................................................................................................................3

2.2设计方案思路................................................................................................................................4

2.2.1制作要点 ................................................................................................................................... 4 2.2.1步骤详情....................................................................................................................................4 2.3实验的部分代码..............................................................................................................5 2.4测试分析 ....................................................................................................................................... 13

2.4.1程序运行情况 ......................................................................................................................... 13

第三章 设计总结......................................................................................................................................14

1

参考资料 ....................................................................................................................................................... 15

棒打猪头游戏的研究与设计

第一章、需求分析

1.1研究背景

在人们追求物质享受的同时,对于精神文明的需求也在快速上升。然而电子游戏作为当代社会产业中不可缺少的一部分,它的发张空间更是空前的强大。电子游戏自发明到现在,已经极大地改变了人类的生活环境和生活。它已不仅是一个产业,更发展成为一门专门的艺术。就象电影一样。我们所处的时代是一个电子科技横行的时代,游戏将更加深入地渗透到人们的生活中去,同时将会在人们的精神生活中起着相对主导的作用。

棒打猪头是一款简单的单机小型游戏,老少皆宜。在这款游戏运行时,界面上有“Press Enter Start”的字体,在界面的任意位置上点击,进入游戏。然后在游戏界面的九个暗格会随机弹出一头小猪,用鼠标控制的小锤点击。游戏会参照玩家打击小猪的速度和个数积分。

1.2研究方案

1.2.1 课程设计目的

《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

2

1.2.2 课程设计的实验环境

硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.2.3 课程设计的预备知识

熟悉JAVA语言及ECLIPSE开发工具。

1.2.4 课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第二章、系统设计

2.1游戏设计概述

我设计的是棒打猪头小游戏,这是一款闯关的小游戏。在棒打猪头这个游戏当中,除了Java文件中所给出的类以外,还需要Calulatordemo、Demo16_1、 HitPigHead等。在这款游戏启动时,游戏界面窗口中会出小一头小猪在窗口来回跑动。在界面上有“Press Enter Start”的字体,在界面的任意位置上点击,进入游戏。在进入游戏后,游戏界面窗口便会出现九个能够随机出现小猪的暗格,小猪会在游戏启动后,随机出现,鼠标也会在游戏启动时自动变成一把小锤作为玩家的控制端,当小猪出现时,用小锤打击。游戏会随着玩家打击小锤的速度和个数来积分。当第一关游戏结束时就会接着出现第二关,第三关、、、游戏中的小猪会随着关数的增加,出现的频率也会增加。若不能在规定的时间里完成游戏进度,游戏会弹出闯关失败的提示。在游戏中玩家也可以随机的停止游戏和启动,也可以重

3

新开始。

2.1.1概要设计

主要要实现的功能有: 重新启动、重新载入、停止、保存、启动、复制、标记、信息、编辑、字符编码、打印、属性、关闭、退出,如下图

2.2设计方案思路

2.2.1制作要点:

1.抽象类Abstract class的应用及抽象类的继承。 2.Applet类的应用。 3.多线程的应用。

2.2.2步骤详情:

1.定义抽象类Abstract class。 Abstract class SuperSprite 2.抽象类的继承。

class HammefSprite extends SuperSprite 3.嵌入applet的html掠码。

4.图形输出。

g.drawlmage(Frame,X,Y*Oame); if(sbowPig— true)

4

g.drawlmage(Sprltelmage,X + 12,Y + 18,Game); 5.鼠标监听来控制击打。 addMouseListener(this);

addMouseMotonLiatener(this);

if《this.X + P_Widrh >= x) && (this.Y + (P啦m , 2)>= Y) &&

(x十 (I-LWidth , 2)>= this.X) && (Y + (H_Height / 2》= this.Y) && showPig)

2.3实验的部分代码

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

public class Calulatordemo extends JFrame implements ActionListener { private JButton[] j=new JButton[16]; private JTextField t=new JTextField(20); JPanel p=new JPanel();//放置文本框 JPanel p1=new JPanel();//放置按钮 double first,second;//输入两个操作数 String s=\"\"; boolean is=false;//判断输入的第一个还是第二个操作数 String operator=\"\";//运算符号 double result=0;//运算结果 boolean is1=false; public Calulatordemo() { setSize(250,250); setResizable(false); t.setHorizontalAlignment(JTextField.RIGHT); for(int i=0;i<10;i++) { j[i]=new JButton(\"\"+i);//给数组元素赋值 } j[10]=new JButton(\"+\"); j[11]=new JButton(\"-\"); j[12]=new JButton(\"*\"); j[13]=new JButton(\"/\"); j[14]=new JButton(\"C\"); j[15]=new JButton(\"=\"); p.add(t); BorderLayout b1=new BorderLayout(); this.add(p,BorderLayout.NORTH); GridLayout f1=new GridLayout(4,4);

5

p1.setLayout(f1); for(int i=0;ipublic static void main(String args[]) { new Calulatordemo(); }

public void input(String s1)//输入操作数 { int f1=Integer.parseInt(s1); if(!is) { first=f1;//第一个操作数 is=true; }else { t.setText(\"\"); second=f1;//第二个操作数 } }

public void doClear()//清除操作 { t.setText(\"\");//文本框清空 s=\"\"; is=false; is1=false; }

public void doOperator(String op1) { if(op1.equals(\"+\")) result=first+second; if(op1.equals(\"-\")) result=first-second; if(op1.equals(\"*\")) result=first*second; if(op1.equals(\"/\")) result=first/second; //*******将结果显示在文本框中**************

6

t.setText(Double.toString(result));//Double.toString将浮点型转换为字符型 } public void actionPerformed(ActionEvent e) { /*************************************/ for(int i=0;i<10;i++)//对数字按钮的处理方式 { if(e.getSource()==j[i]) { s=s+j[i].getText(); t.setText(s);//将按钮的数据设置在文本字段中 } } /*************************************/ if(e.getSource()==j[14])//清除按钮 { doClear(); } /*************************************/ if(!s.equals(\"\"))//如果没有数据,就不可以执行加减乘除=号的操作 { if(!is1)//保证输入多次运算符号也不会出错 { for(int i=10;i<14;i++)//运算符号 { if(e.getSource()==j[i]) { input(s);//传递第一个数 s=\"\"; operator=j[i].getText();//运算符 is1=true; break; } } } /*************************************/ if(e.getSource()==j[15])//等于号 { input(s);//传递第二个数 if(second==0&&operator.equals(\"/\")) { t.setText(\"除数不能为零\");

7

s=\"\"; is=false; is1=false; }else { doOperator(operator); } } } } }

********************************************************** import java.io.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*; import java.text.*; import java.util.*;

public class Demo16_1 extends JFrame implements ActionListener { JTextField jt1; JButton js;//浏览 JButton jshow;//显示 JTextArea jta;//内容显示 JButton jnew; JButton jdel;//删除文件 String dname; File fl; String strTemp; public Demo16_1() { jt1=new JTextField(20); js=new JButton(\"浏览\"); jshow=new JButton(\"显示\"); jnew=new JButton(\"新建\"); jdel=new JButton(\"删除\"); jta=new JTextArea(); jt1.setEditable(false); JScrollPane jsc=new JScrollPane(jta); JPanel jp1=new JPanel(); jp1.add(jt1); jp1.add(js);

8

jp1.add(jshow); jp1.add(jnew); jp1.add(jdel); jdel.addActionListener(this); js.addActionListener(this); jshow.addActionListener(this); jnew.addActionListener(this); this.add(jp1,BorderLayout.NORTH); this.add(jsc,BorderLayout.CENTER); this.setSize(1024,768); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String s[]) { new Demo16_1(); } public String showMessage(String path){ path=jt1.getText(); fl=new File(path); if(fl.exists()){ File[] list=fl.listFiles(); Object[] data = new Object[8]; StringBuffer sb=new StringBuffer(); for(int i=0;i9

else sb.append(data[1]+strTemp+\"\\"+strTemp+\"名\"+data[0]+\"\文件\"+data[2]+\"\\"+data[3]+\"\\"+data[4]+\"\最后修改日期\"+data[5]+\"\\\"+data[6]+\"\\"+data[7]+\"\\n\"); } return sb.toString(); } else return \"文件或路径不存在\"; } public void actionPerformed(ActionEvent e) { // TODO 自动生成方法存根 if(e.getSource()==jshow){ if(!jt1.getText().equals(\"\")){ jta.setText(showMessage(jt1.getText())); } else{ JOptionPane.showMessageDialog(null,\"目录为空\"); } } if(e.getSource()==js){ JFileChooser js=new JFileChooser(); js.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int num=js.showOpenDialog(this); if(num==JFileChooser.APPROVE_OPTION){ jt1.setText(js.getCurrentDirectory().getAbsolutePath()); } else{ } } if(e.getSource()==jnew){ String path=JOptionPane.showInputDialog(null,\"1、文件 2、目录\"); try { if(!path.equals(\"\") ){ newFileordirectory(path); } }catch(Exception i){ JOptionPane.showMessageDialog(null,\"请输入选项\"); } } if(e.getSource()==jdel){ try{ JFileChooser jfile=new JFileChooser();

10

长度

jfile.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int r1=jfile.showDialog(null,\"选择要删除的文件\"); String path=\"\"; if(r1==JFileChooser.APPROVE_OPTION) { path=jfile.getSelectedFile().getAbsolutePath(); File newfile=new File(path); if(newfile.exists()){ if(newfile.delete()){ JOptionPane.showMessageDialog(null,\"成功删除\"); }else{ JOptionPane.showMessageDialog(null,\"删除出错\"); } } } } catch(Exception m) { JOptionPane.showMessageDialog(null,\"路径出错\"); } } } public void newFileordirectory(String num){ try { String name=\"\"; JFileChooser jfile=new JFileChooser(); jfile.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int r1=jfile.showOpenDialog(this); String path=\"\"; if(r1==JFileChooser.APPROVE_OPTION) { path=jfile.getSelectedFile().getAbsolutePath(); } File newfile=new File(path); boolean re1=true; if(num.equals(\"1\")) { re1=newfile.createNewFile(); name=\"文件\"; }else if(num.equals(\"2\")) {

11

re1=newfile.mkdir(); name=\"目录\"; } try { if(re1) { JOptionPane.showMessageDialog(null,name+\"已建立\"); }else { JOptionPane.showMessageDialog(null,name+\"已存在\"); } }catch(Exception d) { JOptionPane.showMessageDialog(this,\"路径出错\"); } }catch(Exception e) { JOptionPane.showMessageDialog(this,\"路径出错\"); } } public String getTypeName(String s){ if(s.indexOf(\".\")==-1) return \"\"; else{ String s1=s.substring(s.indexOf(\".\")+1,s.length()); return s1; } } }

12

2.4测试分析

2.4.1程序运行情况

图2.4.1-1 棒打猪头主界面

图2.4.1-2游戏运行时界面

13

第3章 课程设计总结

通过着为期两周的时间,我学到了很多,自然在这期间遇到的困难数不胜数,开始最让我没辙的是题目不知道该订什么好,想过很多个题目但往往跟其他同学重复了,为了避免做出来的东西雷同了,只能继续想其他方面的,想过去做些复杂的,但实在是能力有限,呵呵,最后终于决定做这个棒打猪头的小游戏.

这个棒打猪头的游戏就是在原有的程序基础上加以调试,所以说理论上应该很简单,不会太难,但当我真正着手做起来得时候才发现,原来自己还是太嫩,刚开始什么都不懂,于是我就去图书馆参阅了大量的资料,也不停的向同学们请教,终于渐渐的让我从刚开始连如何运行程序,甚至类的作用等一些罪基本的东西都不清楚到最后通过努力终于把这个程序成功搞定.自然这期间除了辛苦也让我明白了很多,有些小问题也是不容忽视的.经过编写这个棒打猪头的游戏,我认识到应该注意细节问题,虽然是很小的问题,但可以提高自己编程的能力,而且还可以培养自己编程的严谨性,同时还可以为以后的编程积累经验。除此之外让我对java变成语言又有了更深一步的了解,曾经对于一些类名的似是而非,现在通过编写这个程序让我逐渐变得明朗一些了,至少可以分清父类子类,以及一些类和方法的用途,总之通过这次课程设计真的让我学到了很多.

14

参考资料

1. 耿祥义 JAVA大学实用教程 电子工业出版社 2005-03 2. 耿祥义 JAVA大学实用教程实验指导 电子工业出版社 2005-03 3.郝玉龙 J2EE编程技术 北方交大出版 2003-02 4. 朱喜福 Java程序设计 人民邮电出版 2003-04 5. 王路群 Java高级程序设计 中国水利水电出版社 2009-8 6. 王碧波 JBuilder 10入门与提高 清华大学出版 2004-11 7. 吴其庆 Java程序设计实例教程 冶金工业出版社 2007-11 8. 柳西玲 Java语言应用开发基础 清华大学出版社 2008-2 9. 朱战立 Java程序设计实用教程 人民邮电出版 2004-03 10. 宛延闿等 实用Java程序设计教程 机械工业出版社 2008-1

15

因篇幅问题不能全部显示,请点此查看更多更全内容