java套接字猜数游戏(用java写猜数字游戏)

http://www.itjxue.com  2023-03-01 13:04  来源:未知  点击次数: 

用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();

}

}

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

(责任编辑:IT教学网)

更多

推荐新手入门文章