小动物大比拼程序设计论文Word文档格式.docx
《小动物大比拼程序设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《小动物大比拼程序设计论文Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
![小动物大比拼程序设计论文Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/a79fa977-848f-400e-af4b-f6c77eef3261/a79fa977-848f-400e-af4b-f6c77eef32611.gif)
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
六、游戏软件的主要界面截图
主要的功能界面截图要加文字描述。
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<
box.length;
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
equal=0;
//给显示分数那个文本赋值.因为前面已经都赋值为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];
\n你选择:
+box[boxPeop];
\n结果:
+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==3||boxPeop==2&
boxComp==3||boxPeop==3&
boxComp==0)
result="
恭喜你,你赢了!
win++;
boxComp==3||boxPeop==1&
boxComp==0||boxPeop==2&
boxComp==1||boxPeop==3&
boxComp==2)
很遗憾,你输了!
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.add(choicePanel,BorderLayout.NORTH);
Container添加到容器中的组件放在一个列表中。
列表的顺序将定义组件在容器内的正向堆栈顺序。
如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。