程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python小游戏之“读心术”

发布于2020-02-25 00:39     阅读(1069)     评论(0)     点赞(0)     收藏(1)


 读心术:猜数字游戏 〉 一款经典的猜数字AI:用户先随机在 0-1000之间随意写一个数字,AI开 始猜,如果猜的数大了,用户就说大 了,反之,则说小了。

算法:二分查找

〉 从中间的数开始,如果猜中则结束

〉 如结果大于或者小于中间的数,则在 剩下大于或小于中间的数的那一半中 查找

〉 每一次比较都使搜索范围缩小一半

 

  1. import random
  2. import sys
  3. def human_guess():
  4. #从0-1000中,产生一个随机数
  5. num = random.randint(0,1000)
  6. i = 0
  7. while 1 :
  8. #异常处理-输入非int型数据的时候
  9. try:
  10. #guess接收-从键盘输入数字的值
  11. guess = int(input('‘请输入数字0~1000:'))
  12. except ValueError:
  13. print("请输入正确的数字0~1000")
  14. continue
  15. i += 1
  16. #如果输入猜测的数字,比随机产生的数num要大
  17. if guess > num :
  18. #提示猜测大了
  19. print("猜大了:",guess)
  20. elif guess < num :
  21. #提示猜小了
  22. print("猜小了:",guess)
  23. else:
  24. print("你猜对了!共猜了",i,"次")
  25. sys.exit(0)
  26. def computer_guess():
  27. print('请在心里想一个0~1000范围内的数字')
  28. small = 0
  29. big = 1000
  30. guess = 500
  31. i = 0
  32. while 1:
  33. guess = int((big+small)/2)
  34. i += 1
  35. print('是这个数吗:'+ str(guess) + 'B:大了,S:小了,C:正确')
  36. char = input()
  37. if char == 'B':
  38. big = guess
  39. elif char == 'S':
  40. small = guess
  41. elif char == 'C':
  42. print("共猜了{0}次,得到正确结果{1}".format(i,guess))
  43. sys.exit(0)
  44. else:
  45. print('请正确输入回答:(B:大了,S:小了,C:正确)')
  46. def main():
  47. who_guess = input('请决定谁来猜数(C:电脑,H:玩家):')
  48. if who_guess in 'Hh':
  49. human_guess()
  50. elif who_guess in 'Cc':
  51. computer_guess()
  52. if __name__ == '__main__':
  53. try:
  54. main()
  55. except KeyboardInterrupt:
  56. print('程序异常')
  57. sys.exit(1)

 

 

发布了17 篇原创文章 · 获赞 9 · 访问量 1万+


所属网站分类: 技术文章 > 博客

作者:232hdsjdh

链接:https://www.pythonheidong.com/blog/article/232955/6814b437c89f939e6aee/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)