第十五周java作业 -猜数字

来源:互联网 发布:[网络剧]老炮儿 编辑:程序博客网 时间:2024/06/16 08:43
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
恭喜,你猜对了
我成功了
“`

原创粉丝点击