石头剪刀布游戏
Posted 被褐怀玉888988
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了石头剪刀布游戏相关的知识,希望对你有一定的参考价值。
2.1【问题描述】
用 JAVA 语言设计如下界面的石头剪刀布游戏。游戏的一方点击界面上石头、剪刀、布按钮,游戏的
另一方计算机随机选择,然后给出游戏结果。
2.2【基本要求】
按照下面给出的步骤设计石头剪刀布游戏,并完成以下工作:
- 在“//”后给出必要的注释;
- 为程序添加菜单;至少 2 个菜单:结果显示方式和关于游戏;结果显示方式菜单有 3 个菜单项:文本
显示、图形显示、结束游戏;实现菜单中的功能,自行搜索能体现石头、剪刀、布的图形或图片,用
这些图形或图片显示游戏结果。
import javax.swing.*; //引用图形可视包
import java.awt.*; //引入抽象窗口工具类包
import java.awt.event.*; //提供处理由awt组件所激发的各类事件的接口和类
//定义一个窗口类,该类实现ActionListener接口
public class work11 extends JFrame implements ActionListener {
int i;
JButton jiandao,shitou,bu,clear; //定义JButton对象
JPanel pane12,panel1; //定义JPanel对象
JLabel label; //定义JLabel对象
JMenuBar bar; //定义JMenubar对象
JMenu menu1; //定义JMenu对象
JMenu menu2;
JMenuItem item1; //定义JMenuitem对象
JMenuItem item2;
JMenuItem item3;
public work11() {
setTitle("石头剪刀布游戏"); //设置窗体标题
setLocation(250,250); //设置窗体左上顶点坐标
setSize(350,350); //设置窗体大小
//创建对象
bar = new JMenuBar();
menu1 = new JMenu("结果显示方式");
menu2 = new JMenu("关于游戏");
item1 = new JMenuItem("文本显示");
item2 = new JMenuItem("图形显示");
item3 = new JMenuItem("结束游戏");
//把菜单项加到菜单中
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
//把菜单加到菜单条中
bar.add(menu1);
bar.add(menu2);
this.setJMenuBar(bar);
panel1 =new JPanel();
panel1.setBackground(Color.yellow); //给窗体panel1设置背景颜色
shitou = new JButton("石头");
jiandao =new JButton("剪刀");
bu = new JButton("布");
clear = new JButton("清空");
pane12 = new JPanel();
pane12.setBackground(Color.green); //给窗体panel2设置背景颜色
label =new JLabel("请做出您的选择以开始游戏");//运行窗口以后显示的标签
//下面的四行是事件监听器,监听用户的输入
shitou.addActionListener(this);//给shitou添加事件监听器
bu.addActionListener(this);//给bu添加事件监听器
jiandao.addActionListener(this);//给jiandao添加事件监听器
clear.addActionListener(this);//给clear添加事件监听器
item1.addActionListener(this);//给item1添加事件监听器
item2.addActionListener(this);//给item2添加事件监听器
item3.addActionListener(this);//给item3添加事件监听器
//把组件放进窗体中
panel1.add(shitou);//把shitou放进panel1窗体中
panel1.add(jiandao);//把jiandao放进panel1窗体中
panel1.add(bu);//把bu放进panel1窗体中
panel1.add(clear);//把clear放进panel1窗体中
pane12.add(label); //把label放进panel2窗体中
add(panel1,BorderLayout.NORTH);//将panel1放在窗体上方
add(pane12,BorderLayout.CENTER);//将panel2放在窗体中央
}
//事件响应器
public void actionPerformed(ActionEvent e){
if(e.getSource()==item1){
i=0;
}
else if(e.getSource()==item2){
i=1;
}else if(e.getSource()==item3){
i=2;
}
if(i==0){
label.setIcon(null);//清除图片
if(e.getSource()==shitou){
int i=((int)(Math.random()*10))%3;//给电脑随机分配结果
switch(i){
case 0 :label.setText("你出石头,电脑出石头,平局!");break;
case 1 :label.setText("你出石头,电脑出剪子,恭喜你赢了!");break;
case 2 :label.setText("你出石头,电脑出布,很遗憾你输了!");break;
}
}
else if(e.getSource()==bu){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setText("你出布,电脑出布,平局!");break;
case 1 :label.setText("你出布,电脑出石头,恭喜你赢了!");break;
case 2 :label.setText("你出布,电脑出剪刀,很遗憾你输了!");break;
}
}
else if(e.getSource()==jiandao){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setText("你出剪刀,电脑出剪刀,平局!");break;
case 1 :label.setText("你出剪刀,电脑出布,恭喜你赢了!");break;
case 2 :label.setText("你出剪刀,电脑出石头,很遗憾你输了!");break;
}
}
else if(e.getSource()==clear){
label.setText("选择剪刀、石头、布开始游戏");
}
}else if(i==1){
label.setText(null);//清除文本
if(e.getSource()==shitou){
int i=((int)(Math.random()*10))%3;//给电脑随机分配结果
switch(i){
case 0 :label.setIcon(new ImageIcon("图片\\\\" + "0_0.jpeg"));break;
case 1 :label.setIcon(new ImageIcon("图片\\\\" + "0_1.jpeg"));break;
case 2 :label.setIcon(new ImageIcon("图片\\\\" + "0_2.jpeg"));break;
}
}
else if(e.getSource()==bu){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setIcon(new ImageIcon("图片\\\\" + "2_2.jpeg"));break;
case 1 :label.setIcon(new ImageIcon("图片\\\\" + "2_0.jpeg"));break;
case 2 :label.setIcon(new ImageIcon("图片\\\\" + "2_1.jpeg"));break;
}
}
else if(e.getSource()==jiandao){
int i=((int)(Math.random()*10))%3;
switch(i){
case 0 :label.setIcon(new ImageIcon("图片\\\\" + "1_1.jpeg"));break;
case 1 :label.setIcon(new ImageIcon("图片\\\\" + "1_2.jpeg"));break;
case 2 :label.setIcon(new ImageIcon("图片\\\\" + "1_0.jpeg"));break;
}
}
else if(e.getSource()==clear){
label.setIcon(null);
label.setText("选择剪刀、石头、布开始游戏");
}
}else if(i==2){
System.exit(-1);
}
}
//主函数
public static void main(String[] args) {
work11 frame = new work11();//初始化窗体对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭按钮
frame.setVisible(true);//使窗体可见
}
}
以上是关于石头剪刀布游戏的主要内容,如果未能解决你的问题,请参考以下文章