qq_36346385 2016-10-09 10:31 采纳率: 0%
浏览 4070
已结题

jsp猜数游戏,随机数生成

实现网页版猜数游戏,实现网页guess.jsp,中间是一个输入整数的文本输入框及一个猜数提交按钮,
其上是一行提示“请输入1-100之间的整数:”,其下是根据所猜数判断输出的“大了”、“小了”、
“猜中了”、“超过次数”的提示,最大猜测次数固定为5。
提示:
可以使用session保存生成的随机数,避免每次访问guess.jsp都生成新的随机数。

  • 写回答

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)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条