您的位置:首页 > 编程语言 > Java开发

第十五周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

恭喜,你猜对了

我成功了

“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: