session(会话)实现浏览器猜数游戏

创建一个Dynamic Web Project, 命名为GuessNumber,在GuessNumber下的scr文件夹中创建一个servlet,命名为gn1。

在doget方法中写如下代码:

HttpSession s1=request.getSession();                                     //创建会话,不用解释了吧
  PrintWriter out=response.getWriter();
  response.setContentType("text/html;charset=GBK");             //注意编码,不过这个程序没问题,因为都是英文的
  if(s1.getAttribute("guessNumber")==null){                                            //判断程序开始
   s1.setAttribute("guessNumber",(int)(Math.random()*99+1) );              //系统取随机数
  
   s1.setAttribute("message", "hey
,i have a number,can you guess it?");         //创建消息对象
  }
  
  
  out.println("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=gbk\"></head><body>");
  out.println(s1.getAttribute("message"));
  out.println("<form method=\"post\" action=\"gn2\">");                     //post方法提交到gn2

  out.println("<input type=\"text\" size=4 name=\"value\">");
  out.println("<input type=\"submit\" value=\"submit\">"+s1.getAttribute("guessNumber"));

//显示随机到的数字。调试用的,可以去掉...
  out.println("</form></body></html>");

再创建一个servlet,命名为gn2,dopost方法中写代码如下:

HttpSession s2=request.getSession();
  int num1=(int)s2.getAttribute("guessNumber");     //取gn1的随机数,下面比较的时候用
  s2.getAttribute("message");                                   //取gn1的message,这句好像没用...不用也可以
  String num2=request.getParameter("value");        //取客户端输入的值
  int num=Integer.parseInt(num2);                           //字符串转换成数字
  if(num>num1){                                                       //下面是比较
   
   s2.setAttribute("message", "big");
   response.sendRedirect("gn1");
  }else if(num<num1){
   s2.setAttribute("message", "small");
   response.sendRedirect("gn1");
  }else if(num==num1){
   response.sendRedirect("success.html");
   s2.removeAttribute("guessNumber");

在Web Content文件夹下创建一个html文件,命名为success.html。

编辑代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <p>恭喜你猜对了!</p>
 <a href="http://localhost:8088/GuessNumber/gn1">play again</a>                //注意端口,酌情选择

</body>
</html>

就这样!

打开浏览器,输入地址http://localhost:8088/GuessNumber/gn1                         回车,就ok了。

上面的端口为什么是8088,我在“简单的helloworld”中有解释。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的猜数游戏的示例代码,使用Python的GUI库tkinter实现: ```python import random import tkinter as tk class GuessNumberGame: def __init__(self, master): self.master = master master.title("猜数游戏") self.guess_count = 0 self.secret_number = random.randint(1, 100) self.label = tk.Label(master, text="猜数游戏一下我心里想的数是多少(1-100):") self.label.pack() self.guess_entry = tk.Entry(master) self.guess_entry.pack() self.guess_button = tk.Button(master, text="一下", command=self.check_guess) self.guess_button.pack() self.result_label = tk.Label(master, text="") self.result_label.pack() def check_guess(self): self.guess_count += 1 guess = int(self.guess_entry.get()) if guess == self.secret_number: self.result_label.config(text=f"恭喜你,对了!你了{self.guess_count}次。") self.guess_button.config(state=tk.DISABLED) elif guess < self.secret_number: self.result_label.config(text="你的数太小了,请再试一次。") else: self.result_label.config(text="你的数太大了,请再试一次。") # 创建tkinter应用程序实例 root = tk.Tk() # 创建猜数游戏实例 game = GuessNumberGame(root) # 运行应用程序 root.mainloop() ``` 运行上述代码后,将会弹出一个GUI窗口,用户可以在窗口中输入数字并点击“一下”按钮进行数。程序会根据用户的测,给出相应的提示,直到对为止。同时,程序还会记录用户测的次数,并在对后禁用“一下”按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值