Python實(shí)現(xiàn)破解猜數(shù)游戲算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)破解猜數(shù)游戲算法。分享給大家供大家參考,具體如下:
QQ群里的聊天機(jī)器人會(huì)發(fā)起猜數(shù)小游戲. 玩法如下:
1. 用戶發(fā) #猜數(shù) 到群里
2. 機(jī)器人響應(yīng): 猜數(shù)已經(jīng)開始, 范圍是1-10000之間的某個(gè)數(shù)
3. 你發(fā)送 #猜數(shù)[123] 到群里
4. 機(jī)器人響應(yīng): 大了或者小了, 或者恭喜你猜中了
5. 你根據(jù)剛才猜的123, 和返回, 猜一個(gè)更小或更大的數(shù), 發(fā)送 #猜數(shù)[111] , 即返回第2步
那么最好的猜測(cè)方法肯定是找居中的數(shù)了, 由于心算耗時(shí), 所以直接上python腳本破解這個(gè):
#!/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"> 輸入猜數(shù)的范圍(如: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"放棄猜測(cè)直接回車, 等于輸入=, 小了輸入1, 大了請(qǐng)輸入2\n>>> #猜數(shù)[%d] ,對(duì)嗎?> " % 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'#猜數(shù)[%d]' % last_guess break else: # continue count += 1
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python實(shí)現(xiàn)的簡(jiǎn)單猜數(shù)字游戲
- python實(shí)現(xiàn)猜數(shù)字游戲
- python3.3使用tkinter開發(fā)猜數(shù)字游戲示例
- python實(shí)現(xiàn)猜數(shù)字游戲(無重復(fù)數(shù)字)示例分享
- python實(shí)現(xiàn)猜數(shù)字小游戲
- python簡(jiǎn)單猜數(shù)游戲?qū)嵗?/a>
- Python版的文曲星猜數(shù)字游戲代碼
- 如何利用Python開發(fā)一個(gè)簡(jiǎn)單的猜數(shù)字游戲
- python3實(shí)現(xiàn)猜數(shù)字游戲
- pycharm實(shí)現(xiàn)猜數(shù)游戲
相關(guān)文章
Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用
這篇文章主要介紹了Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python3爬蟲使用Fidder實(shí)現(xiàn)APP爬取示例
這篇文章主要介紹了Python3爬蟲使用Fidder實(shí)現(xiàn)APP爬取示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11使用python查找替換PowerPoint演示文稿中的文本
演示文稿已成為商務(wù)會(huì)議、學(xué)術(shù)報(bào)告和教育培訓(xùn)中不可或缺的一部分,而PowerPoint演示文稿作為行業(yè)標(biāo)準(zhǔn)工具,更是承載著無數(shù)創(chuàng)意與信息的載體,本文將介紹如何使用Python來精確查找并替換PowerPoint演示文稿中的文本,需要的朋友可以參考下2024-07-07python dataframe向下向上填充,fillna和ffill的方法
今天小編就為大家分享一篇python dataframe向下向上填充,fillna和ffill的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python ARP掃描與欺騙實(shí)現(xiàn)全程詳解
這篇文章主要介紹了Python 實(shí)現(xiàn)ARP掃描與欺騙,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10Python新手如何進(jìn)行閉包時(shí)綁定變量操作
在本篇文章里小編給大家分享的是關(guān)于Python新閉包時(shí)綁定變量實(shí)例,有興趣的朋友們可以參考下。2020-05-05python中not not x 與bool(x) 的區(qū)別
這篇文章主要介紹了python中not not x 與 bool(x) 的區(qū)別,我們就來做一個(gè)選擇,就是 not not x 和 bool(x) 用哪個(gè)比較好?下面一起進(jìn)入文章看看吧2021-12-12Python基本數(shù)據(jù)結(jié)構(gòu)與用法詳解【列表、元組、集合、字典】
這篇文章主要介紹了Python基本數(shù)據(jù)結(jié)構(gòu)與用法,結(jié)合實(shí)例形式分析了Python基本數(shù)據(jù)結(jié)構(gòu)中的列表、元組、集合、字典相關(guān)概念、使用方法及推導(dǎo)式、遍歷等相關(guān)使用技巧,需要的朋友可以參考下2019-03-03