第十五周java作业 -猜数字
2017-12-08 19:54
162 查看
public class example { /* 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数, 第二个线程负责猜出这个数。要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对了”。猜数之前 ,要求第二个线程要等待第一个线程设置好要猜测的数。第一个线程设置好猜测数之后, 两个线程还要相互等待,其原则是:第二个线程给出自己的猜测后,等待第一个线程给出的提示;第一个线程给出提示后,等待给第二个线程给出猜测 ,如此进行,直到第二个线程给出正确的猜测后,两个线程进入死亡状态。*/ public static void main(String args[]) { Number number = new Number(); number.Thread1.start(); number.Thread2.start(); } } class Number implements Runnable { int num; int Number1,Number2,min = 0,max = 100,message; Thread Thread1,Thread2; Number() { Thread1 = new Thread(this); Thread2 = new Thread(this);} public int getNum() { return num; } public void setNum(int num) { this.num = num; } public void run() { for (int count = 1; true; count++) { if (Thread.currentThread() == Thread1) { if (count == 1) { Number1=getNum(); System.out.println("随机给你一个数为"+Number1+",猜猜是多少"); } else { if (Number1 > Number2) { System.out.println("你猜小了"); } else if (Number1 <Number2) { System.out.println("你猜大了"); } else { System.out.println("恭喜,你猜对了"); return; } } try { Thread.sleep(1500); } catch (Exception e) { } } if (Thread.currentThread() == Thread2) { if (count == 1) { Number2 = (min + max) / 2; System.out.println("我第" + count + "次猜这个数:" + Number2); } else { if (Number1 > Number2) { min = Number2; Number2 = (min + max) / 2; System.out.println("我第" + count + "次猜这个数是" + Number2); } else if (Number1 < Number2) { max = Number2; Number2 = (min + max) / 2; System.out.println("我第" + count + "次猜这个数是" + Number2); } else { System.out.println("我成功了"); return; } } try { Thread.sleep(1500); } catch (Exception e) { } } } } } ``
结果
随机给你一个数为0,猜猜是多少
我第1次猜这个数:50
你猜大了
我第2次猜这个数是25
你猜大了
我第3次猜这个数是12
你猜大了
我第4次猜这个数是6
你猜大了
我第5次猜这个数是3
你猜大了
我第6次猜这个数是1
你猜大了
我第7次猜这个数是0
恭喜,你猜对了
我成功了
“`
相关文章推荐
- 大三学长带我学习JAVA.作业8。。1 有1、2、3、4这几个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- java基础作业之猜数字游戏;
- java作业:使一串数字循环输出
- JAVA第三周编程作业 奇偶个数 数字特征值
- Java作业-猜数字(多线程)
- Java作业:输入一个数字判断他是奇数还是偶数
- java作业:两个数字的最大公约数和最小公倍数
- 作业:用JAVA写一个简单的关于数字相加的小程序
- 浙大Java进阶mooc第二周作业---------有秒针计时的数字时钟
- 第十五周Java作业--线程
- 第十五周Java作业
- 12.6第十五周JAVA作业
- 第十五周Java作业-1线程同步机制
- java高精度数字
- 2017-2018-1 JAVA实验站 第八周作业
- IT十八掌作业_java基础第十天_集合
- java安全架构____多种数字证书简介(X509,cer,pem,pfx,keystore)
- java经典算法_033随机生成不重复的数字
- java基础五 [数字与静态](阅读Head First Java记录)