JAVA实现剪刀石头布小游戏.docx
JAVA实现剪刀石头布小游戏JAVA实现“剪刀石头布”小游戏 import java.util.Random; import javax.swing.*; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.*; public class SmallGame extends JFrame private Random r; private String box = "剪刀", "石头", "布" ; private JComboBox choice; private JTextArea ta; private JLabel lb; private int win = 0; private int loss = 0; private int equal = 0; public SmallGame initial;/调用initial方法,就是下面定义的那个.该方法主要是初始界面. pack; setTitle("游戏主界面"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(400, 300); setVisible(true); public static void main(String args) new SmallGame; public void initial r = new Random; / 生成随机数 choice = new JComboBox;/初始化choice这个下拉框.也就是你选择出剪子还是石头什么的那个下拉框. for (int i = 0; i < box.length; i+) /为那个下拉框赋值.用前面定义的private String box = "剪刀", "石头", "布" ;附值.这样下拉框就有三个选项了. choice.addItem(boxi); ta = new JTextArea(3, 15);/初始化那个文本域3行15列 ta.setEditable(false);/让用户不能编辑那个文本域即不能在里面写东西 JButton okBut = new JButton("出招");/新建一个出招的按钮 okBut.addActionListener(new ActionListener /给出招按钮加个监听.意思就是监听着这个按钮看用户有没有点击它.如果点击就执行下面这个方法 public void actionPerformed(ActionEvent e) /就是这个方法 ta.setText(getResult);/给那个文本域赋值.就是显示结果 赋值的是通过getResult这个方法得到的返回值 getResult这个方法下面会讲 lb.setText(getTotal);/给分数那个LABEL赋值.就是显示分数.赋值的是通过getTotal这个方法得到的返回值 ); JButton clearBut = new JButton("清除分数");/新建一个清楚分数的按钮 clearBut.addActionListener(new ActionListener /同上给他加个监听 public void actionPerformed(ActionEvent e) /如果用户点击了就执行这个方法 ta.setText("");/给文本域赋值为"".其实就是清楚他的内容 win = 0;/win赋值为0 loss = 0;/同上 equal = 0;/同上 lb.setText(getTotal);/给显示分数那个赋值.因为前面已经都赋值为0了.所以这句就是让显示分数那都为0 ); lb = new JLabel(getTotal);/初始化那个显示分数的东西 JPanel choicePanel = new JPanel;/定义一个面板.面板就相当于一个画图用的东西.可以在上面加按钮啊文本域什么的. choicePanel.add(choice);/把下拉框加到面板里 choicePanel.add(okBut);/把出招按钮加到面板里 choicePanel.add(clearBut);/把清楚分数按钮加到面板里 JScrollPane resultPanel = new JScrollPane(ta);/把文本域加到一个可滚动的面板里面.JScrollPane就是可滚动的面板.这样如果那个文本域内容太多就会出现滚动条.而不是变大 JPanel totalPanel = new JPanel;/再定义个面板.用来显示分数的. totalPanel.add(lb);/把那个显示分数的label加到里面去 Container contentPane = getContentPane;/下面就是布局了. contentPane.setLayout(new BorderLayout); contentPane.add(choicePanel, BorderLayout.NORTH); contentPane.add(resultPanel, BorderLayout.CENTER); contentPane.add(totalPanel, BorderLayout.SOUTH); public String getResult /获得结果的方法 返回值是一个String.这个返回值会用来显示在文本域里面 String tmp = "" int boxPeop = choice.getSelectedIndex;/获得你选择的那个的索引.从0开始的. int boxComp = getBoxComp;/获得电脑出的索引.就是随机的0-2的数 tmp += "你出:t" + boxboxPeop;/下面你应该明白了. tmp += "n电脑出:t" + boxboxComp; tmp += "n结果:t" + check(boxPeop, boxComp); return tmp; public int getBoxComp /就是产生一个0-2的随机数. return r.nextInt(3);/Random的nextInt(int i)方法就是产生一个0-i)的随机整数 所以nextInt(3)就是0-2的随机数 public String check(int boxPeop, int boxComp) /这个就是判断你选择的和电脑选择的比较结果.是输是赢还是平.boxPeop就是你选择的.boxComp就是电脑选择的. String result = "" if (boxPeop = (boxComp + 1) % 3) /(boxComp + 1) % 3 电脑选择的加上1加除以3取余.也就是如果电脑选0这个就为1.这个判断的意思就是如果电脑选0并且你选1.那么就是电脑选了 /private String box = "剪刀", "石头", "布" ;这里面下标为0的.你选了下标为1的.就是电脑选剪刀你选石头.所以你赢了.如果电脑选1.(boxComp + 1) % 3就为2.意思就是 /电脑选了石头你选了布.所以你赢了.另外一种情况你明白了撒.只有三种情况你赢.所以这里都包含了.也只包含了那三种. result = "你赢了!" win+;/赢了就让记你赢的次数的那个变量加1 else if (boxPeop = boxComp) /相等当然平手了 result = "平" equal+;/同上了 else /除了赢和平当然就是输了. result = "你输了!" loss+;/同上 return result; public int getPoint return (win - loss) * 10; public String getTotal return "赢:" + win + " 平:" + equal + " 输:" + loss + " 得分:" + getPoint; 更多JAVA小游戏