该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那个数字我没有多加以考虑,试试这个吧!可以猜中的!
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
{
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();
}
}