Python实现破解猜数游戏算法示例
本文实例讲述了Python实现破解猜数游戏算法。分享给大家供大家参考,具体如下:
QQ群里的聊天机器人会发起猜数小游戏.玩法如下:
1.用户发#猜数 到群里
2.机器人响应:猜数已经开始,范围是1-10000之间的某个数
3.你发送#猜数[123]到群里
4.机器人响应:大了或者小了,或者恭喜你猜中了
5.你根据刚才猜的123,和返回,猜一个更小或更大的数,发送#猜数[111],即返回第2步
那么最好的猜测方法肯定是找居中的数了,由于心算耗时,所以直接上python脚本破解这个:
#!/usr/bin/envpython #-*-coding:utf-8-*- __author__='huhu,' deffind_middle(start,end): #printstart,end returnround((start+end)/2.0) if__name__=='__main__': start,end='','' text=raw_input(u">输入猜数的范围(如:421-499或者421499或者421,499):").decode('gb18030') spliters='-,' forcinspliters: iftext.find(c)!=-1: num_list=text.split(c) if''.join(num_list).isdigit(): start,end=num_list[0],num_list[1] break ifstart==''orend=='': printu'范围不正确' else: start=int(start) end=int(end) count=1 last_guess=find_middle(start,end) while1: result=raw_input(u"放弃猜测直接回车,等于输入=,小了输入1,大了请输入2\n>>>#猜数[%d],对吗?>"%last_guess).decode('gb18030') #printtype(text) ifresultin['q','e','exit','quit','bye',u'退出']: print'Bye!' break else: result=result.strip() ifresult=='1': start=last_guess last_guess=find_middle(last_guess,end) elifresult=='2': end=last_guess last_guess=find_middle(start,last_guess) elifresult=='=': printu'恭喜猜中,共猜了%d次'%count printu'#猜数[%d]'%last_guess break else:# continue count+=1
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。