java吧 关注:1,303,752贴子:12,860,942
  • 1回复贴,共1
import java.io.*;
import java.lang.Math;
class JThread implements Runnable
{
PipedInputStream pin=new PipedInputStream();
PipedOutputStream pot=new PipedOutputStream();
DataInputStream din=new DataInputStream(pin);
DataOutputStream dot=new DataOutputStream(pot);


public void run()

try

     
int Real=(int)(Math.random()*100+1);
dot.writeUTF("给你一个1-100的数字,你猜猜看");
while(true)
{

   int Guessnum=din.readInt();

if(Guessnum<Real)
{
System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
dot.writeUTF("你猜小了呀!");

}
else if(Guessnum==Real)
{
System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
dot.writeUTF("恭喜,答对!");

}
else
{
System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
dot.writeUTF("你猜大了呀!");

}

}
}
catch(Exception x)
{
x.printStackTrace();
}
}
}
class SThread implements Runnable
{
PipedInputStream pin2=new PipedInputStream();
PipedOutputStream pot2=new PipedOutputStream();
DataInputStream din2=new DataInputStream(pin2);
DataOutputStream dot2=new DataOutputStream(pot2);
static boolean isclose=false;
public void run() 
{
try
{

int Guess=(int)(Math.random()*100+1);
int min=1;
int max=101;
    while(true)
{
String message=din2.readUTF();
System.out.println(message);
if(message.equals("给你一个1-100的数字,你猜猜看"))
{
dot2.writeInt(Guess);
System.out.println("我猜为"+Guess);
}
else if(message.equals("你猜小了呀!"))
{
Guess=(Guess+max)/2;
dot2.writeInt(Guess);
System.out.println("我猜为"+Guess);
}
else if(message.equals("你猜大了呀!"))
{
Guess=(Guess+min)/2;
dot2.writeInt(Guess);
System.out.println("我猜为"+Guess);
}
else 
{
System.out.println("haha");

}
}
}

catch(Exception e)
{
e.printStackTrace();
}
}
}
public class GuessGame
{
public static void main(String args[]) throws Exception
{
JThread jt=new JThread();
SThread st=new SThread();
jt.pin.connect(st.pot2);
st.pin2.connect(jt.pot);
new Thread(jt).start();
new Thread(st).start();
}
}


1楼2008-03-25 21:19回复
    那个数字我没有多加以考虑,试试这个吧!可以猜中的!
    import java.io.*;
    import java.lang.Math;
    class JThread implements Runnable
    {
    PipedInputStream pin=new PipedInputStream();
    PipedOutputStream pot=new PipedOutputStream();
    DataInputStream din=new DataInputStream(pin);
    DataOutputStream dot=new DataOutputStream(pot);


    public void run()

    try

     
    int Real=(int)(Math.random()*100+1);
    dot.writeUTF("给你一个1-100的数字,你猜猜看");
    while(true)
    {

     int Guessnum=din.readInt();

    if(Guessnum<Real)
    {
    System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
    dot.writeUTF("你猜小了呀!");

    }
    else if(Guessnum==Real)
    {
    System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
    dot.writeUTF("恭喜,答对!");

    }
    else
    {
    System.out.println("你猜的数字为"+Guessnum+"\n服务器判断为:");
    dot.writeUTF("你猜大了呀!");

    }

    }
    }
    catch(Exception x)
    {
    x.printStackTrace();
    }
    }
    }
    class SThread implements Runnable
    {
    PipedInputStream pin2=new PipedInputStream();
    PipedOutputStream pot2=new PipedOutputStream();
    DataInputStream din2=new DataInputStream(pin2);
    DataOutputStream dot2=new DataOutputStream(pot2);
    static boolean isclose=false;
    public void run() 
    {
    try
    {

    int Guess=(int)(Math.random()*100+1);
    int min=1;
    int max=101;
     while(true)
    {
    String message=din2.readUTF();
    System.out.println(message);
    if(message.equals("给你一个1-100的数字,你猜猜看"))
    {
    dot2.writeInt(Guess);
    System.out.println("我猜为"+Guess);
    }
    else if(message.equals("你猜小了呀!"))
    {
    min=Guess;
    Guess=(Guess+max)/2;
    dot2.writeInt(Guess);
    System.out.println("我猜为"+Guess);
    }
    else if(message.equals("你猜大了呀!"))

     max=Guess;
    Guess=(Guess+min)/2;
    dot2.writeInt(Guess);
    System.out.println("我猜为"+Guess);
    }
    else 
    {
    System.out.println("haha");
    isclose=true;
    Thread.sleep(1000);
    din2.close();
    dot2.close();
    break;
    }
    }
    }

    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    }
    public class GuessGame
    {
    public static void main(String args[]) throws Exception
    {
    JThread jt=new JThread();
    SThread st=new SThread();
    jt.pin.connect(st.pot2);
    st.pin2.connect(jt.pot);
    new Thread(jt).start();
    new Thread(st).start();
    }
    }


    3楼2008-03-26 12:44
    回复