全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了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实现的简单猜数字游戏  # python实现猜数字游戏  # python3.3使用tkinter开发猜数字游戏示例  # python实现猜数字游戏(无重复数字)示例分享  # python实现猜数字小游戏  # python简单猜数游戏实例  # Python版的文曲星猜数字游戏代码  # 如何利用Python开发一个简单的猜数字游戏  # python3实现猜数字游戏  # pycharm实现猜数游戏  # 群里  # 大了  # 进阶  # 操作技巧  # 相关内容  # 最好的  # 更大  # 数据结构  # 给大家  # 请输入  # 中了  # 已经开始  # 人会  # 更多关于  # 不正确  # 所述  # 程序设计  # 使用技巧  # 你猜  # 更小 


相关文章: XML的“混合内容”是什么 怎么用DTD或XSD定义  Android自定义listview布局实现上拉加载下拉刷新功能  建站OpenVZ教程与优化策略:配置指南与性能提升  想学网站制作怎么学,建立一个网站要花费多少?  建站之星代理平台如何选择最佳方案?  如何在IIS中配置站点IP、端口及主机头?  如何快速选择适合个人网站的云服务器配置?  郑州企业网站制作公司,郑州招聘网站有哪些?  建站为何优先选择香港服务器?  如何选择域名并搭建高效网站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何快速登录WAP自助建站平台?  建站主机如何选?高性价比方案全解析  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站之星官网登录失败?如何快速解决?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  中山网站制作网页,中山新生登记系统登记流程?  一键网站制作软件,义乌购一件代发流程?  建站之星免费版是否永久可用?  建站主机选哪种环境更利于SEO优化?  建站之星下载版如何获取与安装?  如何通过.red域名打造高辨识度品牌网站?  SQL查询语句优化的实用方法总结  家庭建站与云服务器建站,如何选择更优?  如何快速搭建高效简练网站?  如何在新浪SAE免费搭建个人博客?  创业网站制作流程,创业网站可靠吗?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  建站之星如何开启自定义404页面避免用户流失?  建站与域名管理如何高效结合?  IOS倒计时设置UIButton标题title的抖动问题  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何有效防御Web建站篡改攻击?  如何用已有域名快速搭建网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  自助网站制作软件,个人如何自助建网站?  如何使用Golang table-driven基准测试_多组数据测量函数效率  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何快速生成高效建站系统源代码?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何通过NAT技术实现内网高效建站?  个人网站制作流程图片大全,个人网站如何注销?  无锡营销型网站制作公司,无锡网选车牌流程?  如何快速完成中国万网建站详细流程?  如何快速生成专业多端适配建站电话?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何快速上传自定义模板至建站之星? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。