Java socket编程 猜数游戏--1--服务端

public class ServerApp {
static final int PORT = 9000;
private ServerSocket serverSocket;
private Socket socket;
private BufferedReader netIn;
private PrintWriter netOut;

public ServerApp() throws IOException {
   serverSocket = new ServerSocket(PORT);
   System.out.println("server start");
   while (true) {
    // 等待连接
    socket = serverSocket.accept();
    ServerThread st = new ServerThread(socket);
    new Thread(st).start();
   }
}

class ServerThread implements Runnable {
   private Socket socket;
   private int randomNumber;
   private int clientGuessNumber;

   public ServerThread(Socket s) throws IOException {
    socket = s;
    netIn = new BufferedReader(new InputStreamReader(socket
      .getInputStream()));
    netOut = new PrintWriter(socket.getOutputStream());
   }

   public void run() {
    System.out.println("client" + socket.getInetAddress()
      + " is connect");
    randomNumber = (int) (Math.random() * 100);
    System.out.println("random number is:" + randomNumber);
    try {
     clientGuessNumber = Integer.parseInt(netIn.readLine());
     System.out.println("client guess number is:"
       + clientGuessNumber);

     for (int i = 3; i > 0; i--) {
      if (clientGuessNumber == randomNumber) {
       netOut.println("OK,恭喜,猜对了");
       ClientApp.finished = true;
      } else if (clientGuessNumber < randomNumber) {
       netOut.println("您猜的数小了,您还有" + (i - 1) + "次机会");
       ClientApp.finished = false;
      } else if (clientGuessNumber > randomNumber) {
       netOut.println("您猜的数大了,您还有" + (i - 1) + "次机会");
       ClientApp.finished = false;
      }
      netOut.flush();
      if (!ClientApp.finished) {
       clientGuessNumber = Integer.parseInt(netIn.readLine());
      } else {
       break;
      }
     }
     if (!ClientApp.finished) {
      netOut.println("OK,您没有机会了,游戏结束");
     }
     ClientApp.finished = true;
    } catch (IOException e) {
    
    } finally {
     try {
      netOut.close();
      netIn.close();
      socket.close();
     } catch (IOException ee) {
     }
    }
   }
}

public static void main(String[] args) throws IOException {
   new ServerApp();
}
}

使用Java创建一个0-100的猜数游戏的步骤如下: 1. 首先,我们需要生成一个0到100之间的随机数作为待猜的数字。可以使用`java.util.Random`类来生成这个随机数。 2. 接下来,我们需要从用户那里获取输入,这可以通过`java.util.Scanner`类实现,它可以帮助我们读取用户的输入。 3. 然后,我们需要一个循环来不断让用户猜测数字,直到猜中为止。在每次猜测后,程序应该告诉用户猜测的数字是太高了、太低了还是正确的。 4. 当用户猜对数字时,输出一条消息表示恭喜,并结束游戏。 下面是一个简单的示例代码: ```java import java.util.Random; import java.util.Scanner; public class GuessNumberGame { public static void main(String[] args) { // 创建Random对象用于生成随机数 Random random = new Random(); // 创建Scanner对象用于获取用户输入 Scanner scanner = new Scanner(System.in); // 生成一个0到100之间的随机数 int numberToGuess = random.nextInt(101); int numberOfTries = 0; int guess; boolean win = false; System.out.println("猜数字游戏开始!请输入你的猜测(0-100):"); // 循环直到猜中数字 while (!win) { guess = scanner.nextInt(); // 获取用户输入的数字 numberOfTries++; // 猜测次数加一 if (guess == numberToGuess) { win = true; // 用户猜中了数字 } else if (guess < numberToGuess) { System.out.println("太低了,请再试一次:"); } else { System.out.println("太高了,请再试一次:"); } } // 用户猜中了数字,输出结果 System.out.println("恭喜你,猜对了!数字就是 " + numberToGuess + "。"); System.out.println("你总共猜了 " + numberOfTries + " 次。"); // 关闭Scanner对象 scanner.close(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值