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中规范定义命名空间的一些建议
Jun 04 Python
彻底搞懂Python字符编码
Jan 23 Python
python实现自动发送邮件
Jun 20 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
python+logging+yaml实现日志分割
Jul 22 Python
详解python中docx库的安装过程
Nov 08 Python
python画图常规设置方式
Mar 05 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
初识javascript 文档碎片
2010/07/13 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
php 修改密码实现代码
2017/05/24 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
python系列 文件操作的代码
2019/10/06 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
护士自我鉴定
2013/10/23 职场文书
给市场的环保建议书
2014/05/14 职场文书
单位推荐信范文
2015/03/27 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
Pygame Event事件模块的详细示例
2021/11/17 Python