一、作业要求:
p107,猜字母小游戏(根据例题4_18猜数字改编,注释掉的是原书内容)
二、源码分析
2.1 ex4_18.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>猜英文字母</title>
</head>
<body>
<%--随机分给了你一个1-100之间的数,猜猜!--%>
随机分给了你一个a-z之间的数,猜猜!
<%
// int num =(int)(Math.random()*100)+1;
char a[]=new char[26];
int m=0;
for(char i='a';i<='z';i++){
a[m]=i;
m++;
}
int randomIndex=(int)(Math.random()*a.length);
char ch=a[randomIndex];
session.setAttribute("count",new Integer(0));
// session.setAttribute("save",new Integer(num));
session.setAttribute("save",new Character(ch));
%>
<br><a href="guess.jsp">去猜测这个数</a>
</body>
</html>
2.2 guess.jsp
<%--
Created by IntelliJ IDEA.
User: corrine
Date: 2019/4/7
Time: 16:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="guessNumber"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String str=request.getParameter("guessNumber");
if(str==null) str="*";
if(str.length()==0) str="*";
%>
<guessNumber:Guess number="<%=str%>"></guessNumber:Guess>
当前猜测结果为:<%=message%><br>
<%
if(message.toString().startsWith("你猜对了")){%>
<br><a href="ex4_18.jsp">重新获得随机数</a>
<%}
else {%>
<br>输入你的猜测:
<form action="" method="get" name="form">
<input type="text" name="guessNumber">
<input type="submit" value="送出" name="submit">
</form>
<%}
%>
</body>
</html>
2.3 Guess.tag
<%@ tag pageEncoding="GB2312" %>
<%@ attribute name="number" required="true" %>
<%@ variable name-given="message" scope="AT_END" %>
<% String mess="";
// Integer integer=(Integer)session.getAttribute("save");
// int realnumber=integer.intValue();
Character integer=(Character)session.getAttribute("save");
Character realnumber=integer.charValue();
// int guessNumber=0;
Character guessNumber='a';
boolean boo=true;
try{
// guessNumber=Integer.parseInt(number);
guessNumber=number.charAt(0);
}
catch(Exception exp){
boo=false;
}
if(boo){
if(guessNumber==realnumber) {
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜对了,这是第"+n+"次猜测";//+realnumber+":"+guessNumber
}else if(guessNumber>realnumber){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜大了,这是第"+n+"次猜测";
}
else if(guessNumber<realnumber){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜小了,这是第"+n+"次猜测";
}else if(number.equals("你还没开始猜测")){
mess="你还没开始猜测";
}
jspContext.setAttribute("message",mess); //将对象message返回给JSP页面
}else{
jspContext.setAttribute("message","请输入您的猜测");
}
%>
三、结果图