小动物大比拼程序设计论文.docx

上传人:b****8 文档编号:11295765 上传时间:2023-02-26 格式:DOCX 页数:16 大小:124.10KB
下载 相关 举报
小动物大比拼程序设计论文.docx_第1页
第1页 / 共16页
小动物大比拼程序设计论文.docx_第2页
第2页 / 共16页
小动物大比拼程序设计论文.docx_第3页
第3页 / 共16页
小动物大比拼程序设计论文.docx_第4页
第4页 / 共16页
小动物大比拼程序设计论文.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

小动物大比拼程序设计论文.docx

《小动物大比拼程序设计论文.docx》由会员分享,可在线阅读,更多相关《小动物大比拼程序设计论文.docx(16页珍藏版)》请在冰豆网上搜索。

小动物大比拼程序设计论文.docx

小动物大比拼程序设计论文

 

北方民族大学大作业报告

(游戏程序设计)

 

系(部、中心)计算机科学与工程学院

姓名xxx学号2011xxxxx 

专业计算机科学与技术 

班级2011级2班

课程名称Java语言程序设计

作业题目名称《小动物大比拼游戏程序设计》

起止时间2013年4月17日——2010年5月18日

成绩 

指导教师签名 

 

 

小动物大比拼游戏程序设计

 

一、游戏的基本规则

玩家选择动物,电脑随机选择,每一次选择后,都会显示玩家选择的动物,和电脑选择的动物以及结果。

每一次选择系统都会计算出玩家赢的次数,输的次数,和平的次数以及分数。

如果想结束游戏关闭窗口即可。

二、主要实现思想和算法

1、本游戏根据动物之间的相互限制设计的,大象控制老虎和狐狸,老虎控制狐狸和老鼠,狐狸控制老鼠,老鼠控制大象,由于电脑是随机选择的,所以游戏总体来说是公平的。

Swing图形用户界面程序设计JFrame、JLable、JButton、JComboBox、JTextArea、JPanel、BoderLayout等

三、游戏软件系统的简介:

给出程序的功能模块,一般需要有功能模块图

综述程序结构,由几个类构成,每个类的功能是什么。

这部分一般还需给出类之间的关系图。

构造方法Game()创建类对象的初始化,设置窗口

ChoiceString[]box

JTextArea显示纯文本区域

JButton帮助

JButton清除

JButton选择加监听

成员方法initial()JOptionPane关闭窗口消息

(定义类的功能、JPanelchoicePanel=newJPanel()定义面板

初始化界面)(将Choice及三个按钮添加到面板)

JScrollPaneresultPanel=newJScrollPane(ta)

(把文本域添加到一个科滚动面板里)布局

JPaneltotalPanel=newJPanel()定义面板

Game类(把显示分数的lable添加到面板)

getBoxPeop(Stringstr)定义用户方法

方法getResult()调用

(获得结果的方法)

getBoxComp()电脑随机取数

Win

check(intboxPeop,intboxComp)equal

(主要比较方法)lost

getTotal()(显示得分)调用getPoint()

Main方法Gamegame=newGame();

 

四、程序的执行流程

String[]box(四选一)

调用getResult()

JTextArea作用(显示结果)

Ta.setText("");win=0;

loss=0;equal=0;lb.setText(getTotal())

JOptionPane.showMessageDialog

JOptionPane.showMessageDialog

 

六、游戏软件的主要界面截图

主要的功能界面截图要加文字描述。

1、初始化界面

2、确定选择动物及结果表示

3、帮助界面

4、清除界面

5、退出界面

六、程序代码:

这部分的要求附完整的程序代码,并且代码中必须加必要的注释。

importjava.util.Random;

importjavax.swing.*;

importjava.awt.*;//导入窗体工具

importjava.awt.event.*;//导入awt事件中所有的类

publicclassGameextendsJFrame//Game继承父类JFrame

{

privateRandomr;//创建一个新的随机数生成器

privatefinalString[]box={"大象","老虎","狐狸","老鼠"};//string数组

privateJComboBoxchoice;//将按钮或可编辑字段与下拉列表组合

privateJTextAreata;//JTextArea是一个显示纯文本的多行区域

privateJLabellb;//用于短文本字符串或图像或二者的显示区

privateintwin=0;

privateintloss=0;

privateintequal=0;

publicGame()//构造方法是用来构造类的对象

{

super("小动物大比拼");//super是关键字表示直接父类的方法实现对类game构造方法的调用

initial();//调用initial方法,就是下面定义的那个.该方法主要是初始界面

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,200);//设置窗体大小

setLocation(530,260);//显示在桌面的位置

setVisible(true);//窗体可见

}

publicvoidinitial()//通过类的实例(某个对象)调用的方法

{

r=newRandom();

choice=newJComboBox();//初始化choice这个下拉框

for(inti=0;i

{

choice.addItem(box[i]);//向滚动列表的末尾添加指定的项

choice.setBackground(Color.pink);

}

ta=newJTextArea(7,9);//初始化文本域7行9列

ta.setEditable(false);//让用户不能编辑文本域即不能在里面写东西

JButtonhelpbut=newJButton("帮助");//帮助按钮的创建于监听及消息窗口内容

helpbut.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

JOptionPane.showMessageDialog(null,"选择一个动物与电脑选择的动物进行比拼,大象控制老虎和狐狸,老虎控制狐狸和老鼠,狐狸控制老鼠,老鼠控制大象");

}

});

JButtonokBut=newJButton("选择");//新建一个选择的按钮

okBut.addActionListener(newActionListener()//给出选择按钮加个监听.如果点击就执行下面这个方法

{

publicvoidactionPerformed(ActionEvente)

{

ta.setText(getResult());//给文本域赋值.就是显示结果

lb.setText(getTotal());//给分数label赋值.就是显示分数

}

});

JButtonclearBut=newJButton("清除");//新建一个清除分数的按钮

clearBut.addActionListener(newActionListener()//加监听

{

publicvoidactionPerformed(ActionEvente)//用户点击了就执行这个方法

{

ta.setText("");//给文本域赋值为,就是清除他的内容

win=0;//win赋值为0

loss=0;

equal=0;

lb.setText(getTotal());//给显示分数那个文本赋值.因为前面已经都赋值为0了.所以这句就是让显示分数那都为0

}

});

addWindowListener(newWindowAdapter(){//关闭窗口弹出对话框及内容

publicvoidwindowClosing(WindowEvente){

JOptionPane.showMessageDialog(null,"倩雪:

好开心啊!

我会在这里等你回来!

");//设置对话框并为对话框设置内容showMessageDialog告知用户某事已发生。

}

});

lb=newJLabel(getTotal());//初始化显示分数

JPanelchoicePanel=newJPanel();//定义一个面板

choicePanel.add(choice);//把下拉框加到面板里

choicePanel.add(okBut);//把选择按钮加到面板里

choicePanel.add(clearBut);//把清除分数按钮加到面板里

choicePanel.add(helpbut);//把帮助按钮加到面板里

JScrollPaneresultPanel=newJScrollPane(ta);//把文本域加到一个可滚动的面板里面.JScrollPane就是可滚动的面板.

JPaneltotalPanel=newJPanel();//再定义个面板.用来显示分数

totalPanel.add(lb);//把那个显示分数的label加到里面去

Containerc=getContentPane();//下面就是布局了

c.setLayout(newBorderLayout());

c.add(choicePanel,BorderLayout.NORTH);

c.add(resultPanel,BorderLayout.CENTER);

c.add(totalPanel,BorderLayout.SOUTH);

}

publicStringgetResult()//获得结果的方法返回值是一个String..这个返回值会用来显示在文本域里面

{

Stringtmp="";

intboxPeop=choice.getSelectedIndex();//获得你选择的的索引.从0开始的.没有就返回-1

intboxComp=getBoxComp();//获得电脑出的索引.

tmp+="倩雪选择:

\t"+box[boxComp];

tmp+="\n你选择:

\t"+box[boxPeop];

tmp+="\n结果:

\t"+check(boxPeop,boxComp);

returntmp;

}

publicintgetBoxPeop(Stringstr)

{

returnchoice.getSelectedIndex();

}

publicintgetBoxComp()//就是产生一个0-3的随机数

{

returnr.nextInt(4);//Random的nextInt(inti)方法就是产生一个[0-i)的随机整数}

publicStringcheck(intboxPeop,intboxComp)

{

Stringresult="";

if(boxPeop==boxComp)

{

result="真有默契,一样了!

";

equal++;

}

elseif(boxPeop==0&&boxComp==1||boxPeop==0&&boxComp==2||boxPeop==1&&boxComp==2||boxPeop==1&&boxComp==3||boxPeop==2&&boxComp==3||boxPeop==3&&boxComp==0)

{

result="恭喜你,你赢了!

";

win++;

}

elseif(boxPeop==0&&boxComp==3||boxPeop==1&&boxComp==0||boxPeop==2&&boxComp==0||boxPeop==2&&boxComp==1||boxPeop==3&&boxComp==1||boxPeop==3&&boxComp==2)

{

result="很遗憾,你输了!

";

loss++;

}

returnresult;

}

publicintgetPoint(){

return(win-loss)*10;

}

publicStringgetTotal()

{

return"赢:

"+win+"平:

"+equal+"输:

"+loss+"得分:

"+getPoint();

}

publicstaticvoidmain(String[]args)

{

Gamegame=newGame();

}

}

7、总结

通过此游戏让我了解了以前没有用过的知识,在制作游戏时虽然问题多多。

但是通过查帮助文档以及询问别人,问题都差不多解决了,虽然没有做出来自己心中所想,但相对自己来说,这是一种进步,以下是制作游戏过程中注意到的

showConfirmDialog询问一个确认问题,如yes/no/cancel。

showMessageDialog告知用户某事已发生

showXxxDialog方法返回整数时,可能的值为:

YES_OPTIONNO_OPTIONCANCEL_OPTIONOK_OPTIONCLOSED_OPTION

getDefaultCloseOperation返回用户在此窗体上发起"close"时执行的操作。

JComboBox将按钮或可编辑字段与下拉列表组合

JTextAreaJTextArea是一个显示纯文本的多行区域

JLabel用于短文本字符串或图像或二者的显示区

构造方法:

构造方法是用来构造类的对象的,方法名和类名相同没有返回值。

一般用new构造方法名()来创建该类的对象。

在不写构造方法的情况下会有一个默认的无参构造方法。

成员方法:

简单地说就是可以通过类的实例(某个对象)调用的方法,也就是我们正常情况下使用的方法。

addItem向滚动列表的末尾添加指定的项。

JButtonclearBut=newJButton("清除");新建一个清除分数的按钮

clearBut.addActionListener(newActionListener()添加监听

布局Containerc=getContentPane();

c.setLayout(newBorderLayout());

c.add(choicePanel,BorderLayout.NORTH);

Container添加到容器中的组件放在一个列表中。

列表的顺序将定义组件在容器内的正向堆栈顺序。

如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。

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

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1