python递归猜数,Python实现破解猜数游戏算法示例_python

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

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

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

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

#!/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'huhu, 'def find_middle(start, end):#print start, endreturn 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]breakif start == '' or end == '':print u'范围不正确'else:start = int(start)end= int(end)count = 1last_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!'breakelse:result=result.strip()if result == '1':start = last_guesslast_guess = find_middle(last_guess,end)elif result == '2':end = last_guesslast_guess = find_middle(start,last_guess)elif result == '=':print u'恭喜猜中, 共猜了%d次' % countprint u'#猜数[%d]' % last_guessbreakelse: #continuecount += 1

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

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

您可能感兴趣的文章:python实现的简单猜数字游戏python实现猜数字游戏python3.3使用tkinter开发猜数字游戏示例python实现猜数字游戏(无重复数字)示例分享python实现猜数字小游戏python简单猜数游戏实例Python版的文曲星猜数字游戏代码如何利用Python开发一个简单的猜数字游戏python3实现猜数字游戏pycharm实现猜数游戏
python递归函数求n的阶乘、次数 - 开发技术 - 亿速云Python中递归的最大次数 - wozijisun - 博客园 - cnblogs.compython递归函数求n的阶乘,优缺点及递归次数设置方式 - html ...Python递归函数,二分查找算法 - 云+社区 - 腾讯云 - TencentPython:用递归实现二分法 - 知乎专栏在 Python 中怎样让一个递归函数返回此函数的总递归次数 ...python---------------递归函数 - 海燕。 - 博客园 - cnblogs.comPython函数学习——递归 - 一只小小的寄居蟹 - 博客园 ...python: 递归打印一对多注释表 - 简书100 个 Python 小项目源码,总有一个用得到微课|中学生可以这样学Python(例11.4):tkinter版图片查看器python练习100题python 控制流详解1234无重复三位数python_06 一篇,学会python循环与分支Python基础 - 7.函数python经典程序练习题-这就是你需要的python99道练习题(附答案)两万多字诠释python最经典基础算法之100题【内含思路、程序和答案】【python初学者必备】python考试题目及答案-这就是你需要的python99道练习题(附答案)《中学生可以这样学Python》84节配套微课免费观看地址Python新手练习题python练手经典100例-Python入门练手100例C语言程序设计——“猜数游戏”《中学生可以这样学Python》84节微课免费观看地址python编程入门与案例详解-"Python小屋”免费资源汇总(截至2018年11月28日)...微课|中学生可以这样学Python(例8.25):二分法查找Python面试题,小测试python控制流_Python学习--控制流微课|中学生可以这样学Python(例8.21):选择法排序python零基础入门最简洁版微课|中学生可以这样学Python(例9.1):Excel导入SQLite(2)微课|中学生可以这样学Python(例9.1):Excel导入SQLite(1)Python算法测试题python埃及分数_趣学Python算法100例python编程一球从100米_假期怎么提升Python技能?100+编程题给你练~Python基础教程》第6章 抽象Python入门四(条件及循环语句)Python随笔:函数(经典案例18例)
王牌战争安卓苹果组队文明重启混服区电动三轮车闪光器怎么接电动三轮车线路图视频如何永久删除文件不能恢复用84去除玻璃杯茶垢阴阳师手游狸猫阴阳师御灵券获取途径汇总湖北省中山大学政务院带杰的成语商用洗碗机原理与维修商用洗碗机工作原理视频正在征集藏品的拍卖公司佳能653打印机硒鼓替身娘子第179章替身剧组混盒饭何其芳《回答》赏析开心的日记20字以上秀人要和妻子大石慧离婚了沈阳地铁10号线开通运营附最新沿线楼盘赎罪的影评1972赎罪主要讲什么