求猜数字1——26游戏排列规则
展开全部
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();
}
}
另外补充,你给的程序是服务器端的代码,光这一个可玩不了猜数字游戏哦,还得要客户端的程序。
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();
}
}
另外补充,你给的程序是服务器端的代码,光这一个可玩不了猜数字游戏哦,还得要客户端的程序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询