Java 数字猜谜游戏每次猜中都会生成不同的数字

Java 数字猜谜游戏每次猜中都会生成不同的数字,java,jsp,random,Java,Jsp,Random,我有一个Java服务器页面,允许用户从1-1000中选择一个数字。然后,页面使用输入的数字,并找出该数字是否与生成的数字匹配。-如果“^”不清楚,请参见下面的图片。目前,每当用户猜测一个数字时,程序都会生成一个不同的数字——不管它是否正确。如何使程序只在用户刷新页面或正确猜测时生成一个数字 JSP代码: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"

我有一个Java服务器页面,允许用户从1-1000中选择一个数字。然后,页面使用输入的数字,并找出该数字是否与生成的数字匹配。-如果“^”不清楚,请参见下面的图片。目前,每当用户猜测一个数字时,程序都会生成一个不同的数字——不管它是否正确。如何使程序只在用户刷新页面或正确猜测时生成一个数字

JSP代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "Chapter12.RandomGuess" %>
<jsp:useBean id = "randomGuessId" class = "Chapter12.RandomGuess" scope = "page" >
</jsp:useBean>
<jsp:setProperty name = "randomGuessId" property = "*" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guess Random Number</title>
</head>
<body>
<h3>Guess a number from 1 to 1000</h3>
<form method = "post">
    Enter guess: <input name = "guess" /><br /><br />
    <input type = "submit" name = "Submit" value = "Take Guess" />
    <input type = "reset" value = "Reset" /><br /><br />
    Your guess of <jsp:getProperty name = "randomGuessId" property="guess" />
    is <%= RandomGuess.guess(randomGuessId.getAnswer()) %>
    </form>
</body>
</html>

猜测随机数
猜一个从1到1000的数字
输入猜测:



你的猜测 是
Java代码:

import java.util.Random;

public class RandomGuess {
private int guess;
Random r = new Random();
private int low = 1;
private int high = 1000;
int R = r.nextInt(high-low) + low;

public int getGuess() {
    return guess;
}

public void setGuess(int newValue) {
    guess = newValue;
}

public String getAnswer() {
    String tooLow = "too low.";
    String tooHigh = "too high.";
    String correct = "correct!";
    if(guess == R) 
        return correct;
    else if(guess < R) 
        return tooLow;
    else
        return tooHigh;
}   
public static String guess(String s) {
    return s;
}
}
import java.util.Random;
公共类随机猜测{
私人智力测验;
随机r=新随机();
私人int低=1;
私家车整数高=1000;
int R=R.nextInt(高-低)+低;
公共int getGuess(){
返回猜测;
}
公共void setGuess(int newValue){
猜测=新值;
}
公共字符串getAnswer(){
字符串tooLow=“太低。”;
String tooHigh=“过高。”;
String correct=“correct!”;
如果(猜测==R)
返回正确;
else if(猜测

图片:

每次页面刷新时,都会创建一个新的bean实例,并带有一个新的编号

要在调用之间保留数字,请在类中使用静态字段



更好的是,使用JavaScript

您可以将用户编号作为查询参数传回


我猜您对MVC模式或Spring不太熟悉,但是有很多资源可以帮助您快速启动和运行。如果我记得的话,我稍后会尝试制作一个脱衣演示。

在这里找到完整的程序:

您好,朋友们这是一个简单的程序创建一个数字猜测在JSP

Number.jsp:

<html>
<head><title>Number Guesser</title></head>
<body>
<%              int num=(int)(Math.random()*100);        %>
<h2>Welcome To Number Guesser</h2>
<br><h3>Want To Check Your Guessing Power.....GIVE IT A TRY?????</h3>
<form name="guess" action="try.jsp?c=0" method="post">
<input type="text" name="val" value="<%=num %>" hidden>
<input type="submit" value="GO">
</form>
</body>
</html>
<html>
<head><title>Number Guesser</title></head>
<body>
<%    String str=request.getParameter("val");
      boolean flag=true;      
      int num=Integer.parseInt(str);
      int c=Integer.parseInt(request.getParameter("c"));
      if(c!=0)
      {
                  int guess=Integer.parseInt(request.getParameter("guess"));
                  if(num==guess){
                              flag=false;
      %>
                  <h3>Congratulation...You Successes After <%=c%> attempts</h3>
                  <b>Want to Improve...<a href="Number.jsp">try again</a></b>
      <%       }else if(num>guess) { %>
                  <h3>You Guessed Lower...Try Bigger Number</h3>
      <%       }else{ %>       
                  <h3>You Guessed Higher...Try Smaller Number</h3>
      <%       }
      }
      if (flag) { c++; %>     
      <h3>I Guessed a Number between 1 to 100. Try To Guess..</h3>
      <form name="guess" action="try.jsp?c=<%= c%>" method="post">
      <input type="text" value="<%=num %>" name="val" hidden>
      Make Your Guess : <input type="text" name="guess" size=10 maxlength=3>
      <input type="submit" value="GO">
      </form>
      <% } %>

</body> 
</html>

数字猜测者
欢迎来到数字猜谜

想检查一下你的猜测能力…试试看?????
try.jsp:

<html>
<head><title>Number Guesser</title></head>
<body>
<%              int num=(int)(Math.random()*100);        %>
<h2>Welcome To Number Guesser</h2>
<br><h3>Want To Check Your Guessing Power.....GIVE IT A TRY?????</h3>
<form name="guess" action="try.jsp?c=0" method="post">
<input type="text" name="val" value="<%=num %>" hidden>
<input type="submit" value="GO">
</form>
</body>
</html>
<html>
<head><title>Number Guesser</title></head>
<body>
<%    String str=request.getParameter("val");
      boolean flag=true;      
      int num=Integer.parseInt(str);
      int c=Integer.parseInt(request.getParameter("c"));
      if(c!=0)
      {
                  int guess=Integer.parseInt(request.getParameter("guess"));
                  if(num==guess){
                              flag=false;
      %>
                  <h3>Congratulation...You Successes After <%=c%> attempts</h3>
                  <b>Want to Improve...<a href="Number.jsp">try again</a></b>
      <%       }else if(num>guess) { %>
                  <h3>You Guessed Lower...Try Bigger Number</h3>
      <%       }else{ %>       
                  <h3>You Guessed Higher...Try Smaller Number</h3>
      <%       }
      }
      if (flag) { c++; %>     
      <h3>I Guessed a Number between 1 to 100. Try To Guess..</h3>
      <form name="guess" action="try.jsp?c=<%= c%>" method="post">
      <input type="text" value="<%=num %>" name="val" hidden>
      Make Your Guess : <input type="text" name="guess" size=10 maxlength=3>
      <input type="submit" value="GO">
      </form>
      <% } %>

</body> 
</html>

数字猜测者
祝贺…你在尝试之后取得了成功
想要改善。。。
猜测){%>
你猜的更低…试试更大的数字
你猜得更高…试试更小的数字
我猜到一个介于1到100之间的数字。试着猜。。
猜猜看:

它可能会在每次猜测时生成一个新的
RandomGuess
实例化?