java套接字猜数游戏(用java写猜数字游戏)
用Java编程实现一个猜数字的游戏:系统随机产生一个1~100的数字,然后让玩家猜测这个数字,如果玩家猜错,
1.int num = (int)(Math.random()*100+1);//随机得出一个1~100的数
2.用一个变量去接收玩家输入的数,例如int i;
3.用if语句,当玩家输入的数与随机数相等时(i==num),则输出语句(恭喜你猜对了).
4.用else写出猜错是的语句.
大致思路就是这样.建议你自己去写,只有自己写过才会懂.如有不懂的M我,本人也在学习中,大家可以相互讨论讨论.另外你可以把数字设置成1~10;这样的话比较容易出现猜对的情况,方便你验证程序是否正确,然后再改成1~100;
最后在说下Math.random(),这个方法得到是一个0~1之间的随机小数(不包括1但包括0),所以(0~1)*100=0~100(但是不包括100),然后+1就得出1~100了;因为Math.random()是个小数所以用int强转.

用java编写一个猜字游戏程序,答案不限
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int guessTime = 8;
boolean restart = true;
while (restart) {
System.out.println("请选择下列选项!");
System.out.println("1 ----开始猜数");
System.out.println("2 ----游戏参数设置");
System.out.println("9 ----退出");
boolean flag = true;
String choose = null;
Scanner in = null;
while (flag) {
in = new Scanner(System.in);
choose = in.next();
if (!choose.matches("[129]")) {
System.out.println("输入错误,请重新输入");
continue;
} else {
break;
}
}
if ("2".equals(choose)) {
boolean chooseLevel = false;
System.out.println("请选择游戏难度!");
System.out.println("1 ----难(4次)");
System.out.println("2 ----一般(6次)");
System.out.println("3 ----容易(8次)");
while (!chooseLevel) {
String s = in.next();
if (s.matches("[123]")) {
switch (Integer.parseInt(s)) {
case 1:
guessTime = 4;
chooseLevel = true;
break;
case 2:
guessTime = 6;
chooseLevel = true;
break;
case 3:
guessTime = 8;
chooseLevel = true;
break;
default:
System.out.println("你输入的选择不存在(请输入1、2、3)");
break;
}
} else {
System.out.println("你输入的选择不存在(请输入1、2、3)");
}
}
continue;
}
if ("9".equals(choose)) {
System.exit(0);
}
if ("1".equals(choose)) {
String number = String.valueOf(Math.round(Math.random() * 100) + 1);
System.out.println(number);
boolean getIt = false;
int count = 0;
while (!getIt ++count = guessTime) {
System.out.println("请输入你猜的值(1-100)");
String s = in.next();
if (s.matches("\\d+")) {
try {
if (Integer.parseInt(s) == Integer.parseInt(number)) {
getIt = true;
break;
} else if (Integer.parseInt(s) Integer.parseInt(number)) {
System.out.println("你输入的数字大了!");
} else {
System.out.println("你输入的数字小了!");
}
} catch (NumberFormatException e) {
System.out.println("你输入的数据超过Integer的最大范围!");
continue;
}
} else {
System.out.println("你输入的数据不合法!");
continue;
}
}
if (getIt) {
System.out.println("恭喜你猜对了,你的战斗力是" + Math.round((1 - count * 1.0 / guessTime) * 100) + "%");
} else {
System.out.println("超过次数,尚需努力");
}
in.nextLine();
in.nextLine();
}
}
}
}
帮我把这个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();
}
}
另外补充,你给的程序是服务器端的代码,光这一个可玩不了猜数字游戏哦,还得要客户端的程序。