
正文
java猜数字代码和批注 java猜数字游戏代码及其解释过程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
帮我把这个JAVA的猜数字游戏加注释
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();
}
}
另外补充,你给的程序是服务器端的代码,光这一个可玩不了猜数字游戏哦,还得要客户端的程序。
相关问答
Q1: 简单的java猜数字代码
public static void main(String [] args){
int[] num_list={1,3,5,7,9};
java.util.Scanner str=new java.util.Scanner(System.in);
int num = str.nextInt();
for(int i=0;inum_list.length;i++){
if(num!=nullnum.equals("")){
if(num_list[i]==num){
System.out.println("恭喜你java猜数字代码和批注,猜对java猜数字代码和批注了!");
}else{
System.out.println("抱歉java猜数字代码和批注,你猜错java猜数字代码和批注了!");
}
}
}
}
Q2: 猜数字游戏java,要用到GUI图形界面,且运行要有次数限制
测试效果如图
参考java代码和注释如下
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class GuessNumFrame extends JFrame {
private JPanel contentPane;
private int num;
private final JTextField jtfInput;
private final JLabel label;
static final int MAX_TIMES = 5; // 最多可以尝试5次
private int times = 0;// 记录尝试次数
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GuessNumFrame frame = new GuessNumFrame();
frame.setVisible(true);// 窗口可见
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public GuessNumFrame() {
setTitle("猜数字");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(360, 160);// 窗口大小
setLocationRelativeTo(null);// 居中
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.CENTER);
panel_1.setLayout(new GridLayout(3, 1, 0, 0));
JPanel panel = new JPanel();
panel_1.add(panel);
JButton jbNum = new JButton("得到一个随机数");
panel.add(jbNum);
JPanel panel_2 = new JPanel();
panel_1.add(panel_2);
label = new JLabel("");
label.setOpaque(true);
label.setBackground(Color.CYAN);
panel_2.add(label);
JPanel panel_3 = new JPanel();
panel_1.add(panel_3);
jtfInput = new JTextField();
panel_3.add(jtfInput);
jtfInput.setColumns(10);
JButton jbOk = new JButton("确定");
jbOk.setEnabled(false);
panel_3.add(jbOk);
jbNum.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num = (int) (Math.random() * 10);// 生成随即数
times = 0; // 猜测次数归零
label.setText("随机数已经生成范围0~9");
jtfInput.setText(null);// 输入框清空
jbOk.setEnabled(true);// 按钮恢复可用
System.out.println(num);
}
});
jbOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x;
try {
x = Integer.parseInt(jtfInput.getText());// 取得输入框的数字 进行比较
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "输入格式错误!请输入数字", "提示", JOptionPane.WARNING_MESSAGE);
return;//输入字母等非整数,直接返回
}
if (x == num) {
JOptionPane.showMessageDialog(null, "厉害,猜对了~!");
jbOk.setEnabled(false);//按钮设置为不可用
return;//猜对了也返回
} else if (x num) {
JOptionPane.showMessageDialog(null, "你猜小了", "提示", JOptionPane.WARNING_MESSAGE);
} else if (x num) {
JOptionPane.showMessageDialog(null, "你猜大了", "提示", JOptionPane.WARNING_MESSAGE);
}
times++;
if (times = MAX_TIMES) {
JOptionPane.showMessageDialog(null, "尝试次数过多失败", "提示", JOptionPane.WARNING_MESSAGE);
jbOk.setEnabled(false);//按钮设置为不可用
return;// 猜错次数太多也返回
}
}
});
}
}
关于java猜数字代码和批注和java猜数字游戏代码及其解释过程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






