简单猜数字界面版源码

上传人:仙*** 文档编号:35468564 上传时间:2021-10-27 格式:DOC 页数:9 大小:62.50KB
收藏 版权申诉 举报 下载
简单猜数字界面版源码_第1页
第1页 / 共9页
简单猜数字界面版源码_第2页
第2页 / 共9页
简单猜数字界面版源码_第3页
第3页 / 共9页
资源描述:

《简单猜数字界面版源码》由会员分享,可在线阅读,更多相关《简单猜数字界面版源码(9页珍藏版)》请在装配图网上搜索。

1、package com.game.caishuzi;import java.awt.Button;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import java.util.Scanner;import java.util.Timer;import java.util.TimerTask;import javax.swing.JFrame;import javax.swing.JLabel;import

2、javax.swing.JOptionPane;import javax.swing.JTextField;public class Window extends JFrame/* * */private static final long serialVersionUID = 1L;private static int num;private static String outtime;private static boolean waits = false;/false暂停 true继续public static void main(String args) JFrame jf = new

3、 JFrame();jf.setTitle(猜数字);jf.setLayout(null);setButtoms(jf);jf.setSize(400, 300);jf.setLocationRelativeTo(null);jf.setResizable(false);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void setLables(JFrame jf)JLabel jl = new JLabel(级别:);JLabel sumtime = new JLabel

4、(倒计时:);jl.setBounds(80, 70, 40, 30);sumtime.setBounds(20, 230, 55, 30);jf.add(jl);jf.add(sumtime);public static void setButtoms(final JFrame jf)Button bt0 = new Button(简单);Button bt1 = new Button(普通);Button bt2 = new Button(困难);Button bt3 = new Button(我猜);Button bt4 = new Button(答案);Button start = n

5、ew Button(开始);final Button stop = new Button(暂停);Button bt = new Button(退出);final JLabel jtf = new JLabel(普通);/级别显示final JLabel messages = new JLabel();/级别结果信息final JTextField shuru = new JTextField(请输入5个不重复的数字!);/输入框shuru.setEnabled(false);/没有点击开始前,不能输入,只读设置/秒表,倒计时final JLabel time = new JLabel(10:

6、00);bt0.setBackground(Color.gray);bt1.setBackground(Color.gray);bt2.setBackground(Color.gray);bt0.setBounds(80, 20, 50, 30);bt1.setBounds(170, 20, 50, 30);bt2.setBounds(260, 20, 50, 30);bt3.setBounds(230, 120, 50, 30);bt4.setBounds(300, 120, 50, 30);bt.setBounds(320, 220, 50, 30);start.setBounds(230

7、, 70, 50, 30);stop.setBounds(300, 70, 50, 30);jtf.setBounds(130, 70, 50, 30);shuru.setBounds(80, 120, 140, 30);messages.setBounds(10, 150, 280, 30);time.setBounds(70, 230, 150, 30);/按钮事件 start/1.选择难度bt0.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.set

8、Text(简单);shuru.setText(请输入3个不重复的数字!);time.setText(3:00);waits = false;shuru.setEnabled(false);num=null;);bt1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.setText(普通);shuru.setText(请输入5个不重复的数字!);time.setText(10:00);waits = false;shuru.setEnabled(false)

9、;num=null;);bt2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.setText(困难);shuru.setText(请输入8个不重复的数字!);time.setText(20:00);waits = false;shuru.setEnabled(false);num=null;);/开始/final TimerTask task = new TimerTask() /计时器的方式显示时间动态/Override/public void run

10、() /Window.run(outtime);/time.setText(outtime);/;/final Timer timer = new Timer(); final Thread t = new Thread(new Thread()/线程的方式实现时间动态Overridepublic void run() while(true)try Thread.sleep(10);/释放资源 catch (InterruptedException e1) e1.printStackTrace();while(waits)try Thread.sleep(1000); catch (Inter

11、ruptedException e) e.printStackTrace();Window.run(outtime);time.setText(outtime);if(猜数失败!.equals(outtime)shuru.setText(别灰心,下次在努力吧!);shuru.setEnabled(false);return;);start.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) int n;final String times;if(简单.equals(j

12、tf.getText()n = 3;times=3:00;else if(普通.equals(jtf.getText()n = 5;times=10:00;else if(困难.equals(jtf.getText()n = 8;times=20:00;elseJOptionPane.showMessageDialog(null,请选择级别!);return;lifearray(n);/根据级别获取随机数shuru.setEnabled(true);shuru.setText();messages.setText();outtime = times;/Timer timer = new Tim

13、er(); /timer.schedule(task, 0,1000);waits = true;/让时间处于运行状态if(t.isAlive()elset.start(););/暂停stop.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if(暂停.equals(stop.getLabel()waits = false;stop.setLabel(继续);elsewaits = true;stop.setLabel(暂停););/我猜bt3.addAction

14、Listener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if(null=num)JOptionPane.showMessageDialog(null,请先开始游戏!);return;if(.equals(shuru.getText()JOptionPane.showMessageDialog(null,请输入数字!);return;int n;if(简单.equals(jtf.getText()n = 1;else if(普通.equals(jtf.getText()n = 2;else

15、if(困难.equals(jtf.getText()n = 3;elseJOptionPane.showMessageDialog(null,请选择级别!);return;String message = init(n,shuru.getText();if(!.equals(message)/JOptionPane.showMessageDialog(null,message);messages.setText(message);if(恭喜你猜对了!.equals(message)shuru.setEnabled(false);/输入框只读waits = false;/倒计时停止num=nul

16、l;);/答案bt4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) String strs = ;for(int c: num)strs+=c;shuru.setText(strs);messages.setText(偷看答案不是好孩子哦!);waits = false;shuru.setEnabled(false);num=null;);/退出bt.addActionListener(new ActionListener() Overridepublic vo

17、id actionPerformed(ActionEvent e) jf.dispose(););/按钮事件endjf.add(jtf);jf.add(bt0);jf.add(bt1);jf.add(bt2);jf.add(bt3);jf.add(bt4);jf.add(bt);jf.add(start);jf.add(stop);jf.add(shuru);jf.add(messages);jf.add(time);setLables(jf);/生成随机数,不重复public static void lifearray(int s) num = new ints;/随机生成的数Random

18、r = new Random();int a;for(int i=0;is;i+)a= r.nextInt(9)+1;int b = 0;for(int k=0;knum.length;k+)if(a!=numk)b+;if(b=num.length)numi=a;elsei-;public static String init(int n,String str)String message = ;Scanner sc = new Scanner(System.in);int s;if(n = 1)s= 3;else if(n=2)s= 5;elses= 8;/int num = lifear

19、ray(s);/生成随机数/System.out.println(Arrays.toString(num);if(n=1)if(str.length()!=3)System.out.println(请输入3位数!);return 请输入3位数!;else if(n=2)if(str.length()!=5)System.out.println(请输入5位数!);return 请输入5位数;else if(n=3)if(str.length()!=8)System.out.println(请输入8位数!);return 请输入8位数!;/System.out.println(Arrays.toS

20、tring(num)+:+str);/开始猜数字int jishu = 0,sumjishu = 0;/统计有几个对的for(int i=0;is;i+)/位置数字都对的try if(Integer.parseInt(+str.charAt(i)= numi)jishu+; catch (Exception e) /System.out.println(请输入数字!);return 你输入的不全是数字,请输入数字!;for(int i=0;is;i+)/包含的数字对了个数for(int k=0;ks;k+)if(numi=Integer.parseInt(+str.charAt(k) )sum

21、jishu+;if(jishu=str.length()/System.out.println(恭喜你猜对了!);message = 恭喜你猜对了!;else/System.out.println(你共猜对了+sumjishu+个数字,位置对了+jishu+个,继续努力吧!);message = 你共猜对了+sumjishu+个数字,位置对了+jishu+个,继续努力吧!;return message;public static void run(String name)String str=name.split(:);int min = Integer.parseInt(str1);int hour = Integer.parseInt(str0);if(min!=0)min-;if(min=0&hour!=0)hour-;min=60;if(min=0&hour=0)outtime = 猜数失败!;elseouttime = hour+:+min;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!