帮我把这个JAVA的猜数字游戏加注释

2024-12-28 20:25:11
推荐回答(1个)
回答1:

  import java.io.BufferedReader;
  import java.io.DataInputStream;
  import java.io.DataOutputStream;
  import java.io.InputStreamReader;
  import java.net.ServerSocket;
  import java.net.Socket;
  import java.util.Random;
  // 一上来导入包不用说了吧

  public class Caishuzi {
  //服务器端口号8181
  static final int PORT = 8181;

  //声明一个服务器套接字
  ServerSocket serverSocket;

  //客户端套接字
  Socket socket;

  //数据输入流
  DataInputStream netIn;

  //数据输出流
  DataOutputStream netOut;

  //随机数的数组
  int randomNum[];

  //游戏等级
  int level = 0;

  public Caishuzi() { //猜数字的构造函数
  initRandomNum();
  waitConnect();
  }

  //
  private void initRandomNum() {//初始化随机数
  randomNum = new int[5];//数组初始化,大小为5
  Random ran = new Random();//随机数类
  for (int i = 0; i < 5; i++) {
  randomNum[i] = ran.nextInt(100);//生成5个随机数,范围0~99
  }
  }

  //
  private void waitConnect() {//等待客户端连接
  BufferedReader ansiIn = new BufferedReader(new InputStreamReader(
  System.in));
  System.out.println("服务器启动.");
  try {
  serverSocket = new ServerSocket(PORT);//服务器套接字
  System.out.println("等待客户端连接......");
  socket = serverSocket.accept();//侦听并接受到此套接字的连接,注意这句话会一直运行直到有客户端连上
  System.out.println(" " + socket);
  netIn = new DataInputStream(socket.getInputStream());
  netOut = new DataOutputStream(socket.getOutputStream());//分别得到客户端的输入输出流,这样就可以Client—Server间相互传递数据了
  } catch (Exception e) {
  e.printStackTrace();
  }
  }

  //
  private void processAnswer() {//应答客户端
  try {
  String clientMsg = netIn.readUTF();//取得客户端传过来的字符
  while (!clientMsg.equals("end")) {//不停循环,但如果客户端传过来的字符是"end",就结束了
  System.out.println("客户端:" + clientMsg);
  System.out.print("生成随机数为" + randomNum);
  int clientInputNum = Integer.parseInt(clientMsg);//把客户端猜的数字转成int型
  if (clientInputNum < 0 || clientInputNum > 100)//小于0或大于100不行哦
  System.out.print("输入超过范围,请输入0~100以内的数字");
  String serverMsg = " ";
  if (clientInputNum == randomNum[level]) {
  serverMsg = "恭喜你猜对了!";
  } else if (clientInputNum > randomNum[level]) {
  serverMsg = "您输入太大了!";
  } else if (clientInputNum < randomNum[level]) {
  serverMsg = "您输入太小了!";
  }
  //以上为猜的数字和服务器生成的随机数比,究竟是大于小于还是等于呢,把结果设到serverMsg变量
  netOut.writeUTF(serverMsg);//然后把信息传到客户端
  if (serverMsg.equals("end")) {
  return;
  }
  clientMsg = netIn.readUTF();//继续下一次猜数字
  }
  } catch (Exception e) {
  //
  System.out.print("连接关闭或数据处理错误");
  }
  }

  public static void main(String[] args) {
  Caishuzi s = new Caishuzi();
  }
  }

  另外补充,你给的程序是服务器端的代码,光这一个可玩不了猜数字游戏哦,还得要客户端的程序。