Ausführliche Erläuterung von Beispielen zum Knacken von Ratespielen mit Python

巴扎黑
Freigeben: 2017-09-26 10:38:00
Original
3977 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich der Algorithmus zum Knacken des Ratespiels in Python vorgestellt, das Prinzip des Ratespiels kurz beschrieben und die relevanten Implementierungstechniken von Python zum Knacken des Ratespiels anhand konkreter Beispiele analysiert

Das Beispiel in diesem Artikel beschreibt die Implementierung von Python, um den Ratespielalgorithmus zu knacken. Teilen Sie es als Referenz mit allen:

Der Chat-Roboter in der QQ-Gruppe startet ein Ratespiel:

Der Benutzer sendet #erraten Sie die Zahl an die Gruppe
2. Das Erraten hat begonnen, der Bereich liegt zwischen 1 und 10000
3 Sie senden #guess[123] an die Gruppe
4 : Zu groß oder zu klein Ja, oder herzlichen Glückwunsch zu Ihrer Schätzung
5 Sie erraten eine kleinere oder größere Zahl basierend auf der 123, die Sie gerade erraten haben, und senden zurück, senden Sie #guess[111], d. h. kehren Sie zu Schritt 2 zurück

Dann ist es definitiv die beste Ratemethode, die mittlere Zahl zu finden. Da Kopfrechnen zeitaufwändig ist, verwende ich direkt das Python-Skript, um dies zu knacken:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = &#39;huhu, <huyoo353@126.com>&#39;
def find_middle(start, end):
  #print start, end
  return round((start+end)/2.0)
if __name__ == &#39;__main__&#39;:
  start, end = &#39;&#39;,&#39;&#39;
  text = raw_input(u"> 输入猜数的范围(如:421-499 或者421 499 或者421,499):").decode(&#39;gb18030&#39;)
  spliters = &#39;-, &#39;
  for c in spliters:
    if text.find(c) != -1:
      num_list = text.split(c)
      if &#39;&#39;.join(num_list).isdigit():
        start, end = num_list[0],num_list[1]
        break
  if start == &#39;&#39; or end == &#39;&#39;:
    print u&#39;范围不正确&#39;
  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(&#39;gb18030&#39;)
      #print type(text)
      if result in [&#39;q&#39;,&#39;e&#39;,&#39;exit&#39;,&#39;quit&#39;,&#39;bye&#39;,u&#39;退出&#39;]:
        print &#39;Bye!&#39;
        break
      else:
        result=result.strip()
        if result == &#39;1&#39;:
          start = last_guess
          last_guess = find_middle(last_guess,end)
        elif result == &#39;2&#39;:
          end = last_guess
          last_guess = find_middle(start,last_guess)
        elif result == &#39;=&#39;:
          print u&#39;恭喜猜中, 共猜了%d次&#39; % count
          print u&#39;#猜数[%d]&#39; % last_guess
          break
        else: #
          continue
        count += 1
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen zum Knacken von Ratespielen mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage