>  기사  >  백엔드 개발  >  Python을 사용한 추측 게임 크래킹의 예에 대한 자세한 설명

Python을 사용한 추측 게임 크래킹의 예에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-09-26 10:38:003977검색

이 글은 주로 추측 게임 크래킹 알고리즘을 구현하기 위한 Python을 소개하고, 추측 게임의 원리를 간략하게 설명하며, 추측 게임 크래킹을 위한 Python의 관련 구현 기술을 구체적인 예의 형태로 분석합니다. 도움이 필요한 친구들은 참고할 수 있습니다. 이 기사에

이 예는 추측 게임 알고리즘을 해독하기 위한 Python 구현을 알려줍니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

QQ 그룹의 채팅 로봇이 추측 게임을 시작합니다. 게임 플레이는 다음과 같습니다.

1. 사용자가 그룹에 #guessing을 보냅니다.
2. 로봇이 응답합니다: 추측이 시작되었습니다. 범위는 1-10000입니다.
3. 그룹에 #guess[123]를 보냅니다.
4. 로봇이 응답합니다: 크거나 작거나 추측한 것을 축하합니다
5. 방금 추측한 내용을 바탕으로 123을 추측하고 반환하여 더 작거나 큰 숫자를 추측하고 #guess[111]를 보냅니다. 즉, 2단계로 돌아갑니다

그러면 가장 좋은 추측 방법은 확실히 중간 숫자를 찾는 것입니다. 왜냐하면 암산 계산은 시간이 많이 걸리므로 Python 스크립트를 직접 사용하여 이를 해독하세요.


#!/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

위 내용은 Python을 사용한 추측 게임 크래킹의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.