jsp猜数字游戏,如何实现带猜的次数

        老师布置了一个作业,写一个猜数字的小游戏,小白的用了四个jsp,代码如下:

第一个jsp,生成随机数(因为要用session,并且猜对以后还要有一个再来一次的功能,所以生成随机数单独用了一个jsp)


<body>
	<!-- 生成随机数 -->
	<%
		//随机数
		Random ran = new Random();
		int ranNum = ran.nextInt(10) + 1;
		//次数
		//int count = 1;
		//数放在session对象中
		session.setAttribute("ranNum", ranNum);
		session.setAttribute("count", 1);
		//out.print("随机数是" + ranNum);
		//生成随机数后跳转到猜界面
		request.getRequestDispatcher("/Guess.jsp").forward(request, response);
	%>
</body>

第二个jsp,用户输入界面:

<body>

	<%-- <%
		int ranNum = (int) session.getAttribute("ranNum");
		int count = (int) session.getAttribute("count");
		count++;
		out.print("次数是" + count);
	%> --%>
	<p>1-10,猜数字</p>
	<form method="get" action="Result.jsp">
		<input type="text" name="num"> <input type="submit" value="确定">
	</form>
	
	<!-- 接收result界面的返回值 -->
	<p style="color: red; font-size: 20px">
		<%
			String bigger = (String) request.getAttribute("bigger");
			if (bigger == null) {
				bigger = "";
			}
			out.print(bigger);

			String little = (String) request.getAttribute("little");
			if (little == null) {
				little = "";
			}
			out.print(little);

			String nullErr = (String) request.getAttribute("nullErr");
			if (nullErr == null) {
				nullErr = "";
			}
			out.print(nullErr);
		%>
	</p>
</body>

第三个jsp,计算结果(逻辑判断的,不显示任何数据):

<body>
	<!-- 接收用户输入的值 -->
	<%
		//获得用户猜测的数字
		String num = request.getParameter("num");
		//判断用户输入是否为空
		if(num==null || num.equals("")){
			request.setAttribute("nullErr", "输入不能为空");
			request.getRequestDispatcher("/Guess.jsp").forward(request, response);
			return;
		}
		int guessNumber = Integer.parseInt(num);
		
		//从session中获取系统生成的随机数和次数
		int ranNum = (int) session.getAttribute("ranNum");
		int count = (int) session.getAttribute("count");
		count++;
		//判断大小
		if (ranNum > guessNumber) {
			request.setAttribute("little", "往大了猜");
			//跳转到次数界面
			//request.getRequestDispatcher("/Count.jsp").forward(request, response);
		} else if (ranNum < guessNumber) {
			request.setAttribute("bigger", "再小点");
			//跳转到次数界面
			//request.getRequestDispatcher("/Count.jsp").forward(request, response);
		} else {
			request.setAttribute("count", count);
			//跳转到成功界面
			request.getRequestDispatcher("/Success.jsp").forward(request, response);
			return;
		}
		request.getRequestDispatcher("/Guess.jsp").forward(request, response);
	%>

</body>

第四个jsp,猜数成功界面(登录失败信息会返回猜数字界面所以只有一个登录成功界面):

<body>
	<p>恭喜你猜对了</p>
	<!-- 接收猜的次数 -->
	<%
		int count = (int)request.getAttribute("count");
	%>
	<p>您一共猜了<%=count %>次</p>
	<p><a href="RanNum.jsp"> 再来一次</a></p>
</body>

        效果如下( 结果不正确或者空输入会有提示信息):

 

 

 这是老师要求的效果图,但是,小白这个猜数字次数的功能是废的,有哪位大佬能指点一二啊,救命~~~

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 JSP 猜数字游戏,限制了次数为5次: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>猜数字游戏</title> </head> <body> <h1>猜数字游戏</h1> <% // 生成一个1~100之间的随机数作为答案 int answer = (int) (Math.random() * 100) + 1; // 初始化次数为0 int times = 0; // 初始化提示信息为空字符串 String message = ""; if (request.getMethod().equals("POST")) { // 获取用户输入的测数字 int guess = Integer.parseInt(request.getParameter("guess")); times++; if (guess == answer) { // 对了,显示提示信息并结束游戏 message = "恭喜你对了!"; } else if (guess < answer) { // 小了,更新提示信息 message = "小了,再试一次!"; } else { // 大了,更新提示信息 message = "大了,再试一次!"; } } if (times >= 5) { // 次数用完了,显示正确答案并结束游戏 message = "很遗憾,次数用完了,正确答案是" + answer + "。"; } %> <p><%= message %></p> <% if (times < 5) { %> <form method="post"> <label for="guess">请输入1~100之间的整数:</label> <input type="number" name="guess" id="guess" required> <button type="submit">!</button> </form> <% } %> </body> </html> ``` 在上面的代码中,我们使用了 JSP 内置对象 `request` 来获取用户提交的表单数据。如果请求方法是 POST,说明用户提交了表单,我们就获取用户输入的测数字,并判断它与答案的大小关系,更新提示信息。同时,次数加1。 如果次数已经达到了5次,我们就显示正确答案并结束游戏。 如果次数还没有达到5次,我们就显示一个表单,让用户输入测数字。 注意到在 JSP 中,我们可以使用 `<% %>` 标签来插入 Java 代码。在上面的代码中,我们使用了 `<%=` 标签来输出提示信息。这个标签会自动转义输出的内容,防止 XSS 攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值