iT邦幫忙

DAY 28
4

JSP 學習分享系列 第 28

JSP 猜數字範例

設定一個1到100的數字,讓人去猜測,
每次猜完後告訴他猜的值比較大還是比較小
並告訴他已經猜了幾次
設定一個1到100的數字,讓人去猜測,
每次猜完後告訴他猜的值比較大還是比較小
並告訴他已經猜了幾次

一樣使用一個bean去存相關資料
=== numguess.jsp ===

<%@ page import = "num.NumberGuessBean" %>

<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/>
<jsp:setProperty name="numguess" property="*"/>


<title>Number Guess</title>
<body bgcolor="white">
<font size=4>

<% if (numguess.getSuccess()) { %>
  Congratulations!  You got it.
  And after just <%= numguess.getNumGuesses() %> tries.<br>
  <% numguess.reset(); %>
  Care to <a href="numguess.jsp">try again</a>?
<% } else if (numguess.getNumGuesses() == 0) { %>
  Welcome to the Number Guess game.<br>
  I'm thinking of a number between 1 and 100.<br>
  <form method=get action="numguess.jsp">
  What's your guess? <input type=text name=guess>
  <input type=submit value="Submit">
  </form>
<% } else { %>
  Good guess, but nope.  Try <b><%= numguess.getHint() %></b>.
  You have made <%= numguess.getNumGuesses() %> guesses.<p>
  I'm thinking of a number between 1 and 100.<p>
  <form method=get >
  What's your guess? <input type=text name=guess>
  <input type=submit value="Submit">
  </form>
<% } %>
</font>

int answer 存正確答案
int numGuesses 存已猜了幾次
boolean success 存是否已猜中
String hint 存比較高,還是比較低
=== NumberGuessBean.java ===

package num;

import java.util.*;

public class NumberGuessBean {

  int answer;
  boolean success;
  String hint;
  int numGuesses;

  public NumberGuessBean() {
    reset();
  }

  public void setGuess(String guess) {
    numGuesses++;

    int g;
    try {
      g = Integer.parseInt(guess);
    }
    catch (NumberFormatException e) {
      g = -1;
    }

    if (g == answer) {
      success = true;
    }
    else if (g == -1) {
      hint = "a number next time";
    }
    else if (g < answer) {
      hint = "higher";
    }
    else if (g > answer) {
      hint = "lower";
    }
  }

  public boolean getSuccess() {
    return success;
  }

  public String getHint() {
    return "" + hint;
  }

  public int getNumGuesses() {
    return numGuesses;
  }

  public void reset() {
    answer = Math.abs(new Random().nextInt() % 100) + 1;
    success = false;
    numGuesses = 0;
  }
}

上一篇
JSP 購物車的範例
下一篇
JSP checkbox的使用範例
系列文
JSP 學習分享30

尚未有邦友留言

立即登入留言