实现网页版猜数游戏,实现网页guess.jsp,中间是一个输入整数的文本输入框及一个猜数提交按钮,
其上是一行提示“请输入1-100之间的整数:”,其下是根据所猜数判断输出的“大了”、“小了”、
“猜中了”、“超过次数”的提示,最大猜测次数固定为5。
提示:
可以使用session保存生成的随机数,避免每次访问guess.jsp都生成新的随机数。
jsp猜数游戏,随机数生成
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 青春逝如流水 2016-10-09 16:00关注
懒得写servlet,用了两个jsp实现了,有点low
第一个jsp是guess.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>数字游戏</title> </head> <body style="background-color:#996699"> <div> <form action="EXC_09.jsp" method="get"> <table style="margin:10% auto"> <tr><td colspan="2">请输入1-100之间的整数:</td></tr> <tr> <td><input type="text" style="width:200px" name="input_num"/></td> <td><input type="submit" value="提交" /></td> </tr> <tr> <td id="message">${sessionScope.result }</td> </tr> </table> </form> </div> </body> </html>
还有一个jsp是EXC_09.jsp
里面可能有些乱,亲测效果还行<%@page import="java.io.PrintWriter"%> <%@page import="java.util.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <% String d = request.getParameter("input_num"); System.out.println(d); if(d == null){ return; }else{ String address = request.getRemoteAddr(); Map<String,Integer> map = (Map)session.getAttribute("map"); if(map == null){ map = new HashMap<String,Integer>(); session.setAttribute("map", map); } double a = 0; Object b = session.getAttribute("random_num"); if(b!=null){ a = (Double)b; }else{ while(a==0){ a = Math.floor(Math.random()*100); } session.setAttribute("random_num", a); } System.out.println(a); if(map.containsKey(address)){ map.put(address,map.get(address)+1); }else{ map.put(address,1); } StringBuffer stringBuffer = new StringBuffer(); try{ char[] str = d.toCharArray(); int len = str.length; for(int i=0;i<len;i++){ if(str[i]<48 || str[i]>57){ stringBuffer.append("骚年,请输入数字,ok?"); session.setAttribute("result", stringBuffer.toString()); response.sendRedirect("guess.jsp"); return; } } System.out.println(map.get(address)); stringBuffer.append("你输入的数是"+d+","); if(a == new Integer(d)){ stringBuffer.append("你竟然猜对了"); a = Math.floor(Math.random()*100); while(a==0){ a = Math.floor(Math.random()*100); } session.setAttribute("random_num", a); map.put(address,1); }else{ if(map.get(address)>=5){ a = Math.floor(Math.random()*100); while(a==0){ a = Math.floor(Math.random()*100); } session.setAttribute("random_num", a); map.put(address,0); stringBuffer.append("丫已经猜五次了,还没猜出来,换数!"); }else{ stringBuffer.append("不好意思,你猜错了"); } } //request.setAttribute("result", stringBuffer.toString()); System.out.println(stringBuffer.toString()); session.setAttribute("result", stringBuffer.toString()); }catch(Exception e){ e.printStackTrace(); }finally{ response.sendRedirect("guess.jsp"); } } %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>猜数游戏</title> </head> <body> </body> </html> `` 效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201610/09/1476028776_981435.png)
解决 2无用 1
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条