Python实现破解猜数游戏算法示例


Posted in Python onSeptember 25, 2017

本文实例讲述了Python实现破解猜数游戏算法。分享给大家供大家参考,具体如下:

QQ群里的聊天机器人会发起猜数小游戏. 玩法如下:

1. 用户发 #猜数    到群里
2. 机器人响应: 猜数已经开始, 范围是1-10000之间的某个数
3. 你发送 #猜数[123] 到群里
4. 机器人响应: 大了或者小了, 或者恭喜你猜中了
5. 你根据刚才猜的123, 和返回, 猜一个更小或更大的数, 发送 #猜数[111] , 即返回第2步

那么最好的猜测方法肯定是找居中的数了, 由于心算耗时, 所以直接上python脚本破解这个:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'huhu, <huyoo353@126.com>'
def find_middle(start, end):
  #print start, end
  return round((start+end)/2.0)
if __name__ == '__main__':
  start, end = '',''
  text = raw_input(u"> 输入猜数的范围(如:421-499 或者421 499 或者421,499):").decode('gb18030')
  spliters = '-, '
  for c in spliters:
    if text.find(c) != -1:
      num_list = text.split(c)
      if ''.join(num_list).isdigit():
        start, end = num_list[0],num_list[1]
        break
  if start == '' or end == '':
    print u'范围不正确'
  else:
    start = int(start)
    end  = int(end)
    count = 1
    last_guess = find_middle(start,end)
    while 1:
      result = raw_input(u"放弃猜测直接回车, 等于输入=, 小了输入1, 大了请输入2\n>>> #猜数[%d] ,对吗?> " % last_guess ).decode('gb18030')
      #print type(text)
      if result in ['q','e','exit','quit','bye',u'退出']:
        print 'Bye!'
        break
      else:
        result=result.strip()
        if result == '1':
          start = last_guess
          last_guess = find_middle(last_guess,end)
        elif result == '2':
          end = last_guess
          last_guess = find_middle(start,last_guess)
        elif result == '=':
          print u'恭喜猜中, 共猜了%d次' % count
          print u'#猜数[%d]' % last_guess
          break
        else: #
          continue
        count += 1

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python操作列表的函数使用代码详解
Dec 28 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
Python二叉搜索树与双向链表转换算法示例
Mar 02 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
用python实现一个简单的验证码
Dec 09 Python
用Python 执行cmd命令
Dec 18 Python
python​格式化字符串
Apr 20 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 #Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 #Python
python中通过预先编译正则表达式提高效率
Sep 25 #Python
python之Character string(实例讲解)
Sep 25 #Python
python利用正则表达式搜索单词示例代码
Sep 24 #Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 #Python
Django如何实现内容缓存示例详解
Sep 24 #Python
You might like
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
智能钱包:Ekster
2019/11/21 全球购物
高中生毕业自我鉴定范文
2013/12/22 职场文书
在校学生职业规划范文
2014/01/08 职场文书
中学教师管理制度
2014/01/14 职场文书
林肯就职演讲稿
2014/05/19 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
离婚答辩状范文
2015/05/22 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python