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

本站消息

站长简介/公众号

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

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

python 猜数字小游戏

发布于2020-03-17 12:06     阅读(1781)     评论(0)     点赞(14)     收藏(4)


  1. import random as rd
  2. import time
  3. print("根据提示在有限次数内猜测出一串0-9组成有特定位置的数字")
  4. print("提示方式:")
  5. print("A 数字存在并且位置正确的个数")
  6. print("B 数字存在的个数")
  7. scale = 50
  8. print("游戏加载".center(scale,"-"))#居中放置游戏加载
  9. start = time.perf_counter()#返回性能计数器的值
  10. for i in range(scale+1):#给i赋值0—start
  11. a = '*' * i
  12. b = '.' * (scale-i)
  13. c = (i/scale)*100#进度
  14. dur = time.perf_counter() - start#测试代码时间,调用两次,做差值
  15. print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')#百分号中间对齐间隔为3,format规定输出顺序
  16. time.sleep(0.1)# 推迟执行0.1秒
  17. print("\n"+"开始游戏".center(scale,'-'))
  18. #进度条
  19. print("这时由0-9组成的有特定位置4位数字,你有10次机会去猜对它")
  20. isContinue="是"#游戏是否继续,默认是继续
  21. while isContinue=="是":
  22. n=set()#一个集合
  23. while len(n)<4:#循环生成不重复的4个数字,直到集合元素数为4个
  24. n.add(rd.randint(0,9))#生成0-9的随机数,并将随机数放到集合中
  25. l=list(n)#集合转换为列表
  26. s=str(l[0])+str(l[1])+str(l[2])+str(l[3])#列表的元素组成字符串
  27. print(s)
  28. for i in range(1,11):
  29. m=input("第"+str(i)+"次尝试:\n")#输入一个四个字符的数字字符串
  30. print(m)
  31. if len(set(m))!=4:#如果输入数目不是4,或者存在数字重复现象,则视为非法输入
  32. print("输入非法,请重新输入!")
  33. continue
  34. info={"A":0,"B":0}#初始化一个词典,用来统计A、B
  35. if m == s:#如果输入的字符串与随机生成的字符串相等
  36. print("恭喜你!猜对啦!")
  37. isContinue=input("是否再玩一次呢?(是/否)")
  38. break
  39. else:
  40. for i in range(0,4):#字符串逐个字符对比
  41. if m[i]==s[i]:#如果数值存在,且位置相等则A+1
  42. info["A"]=info["A"]+1
  43. elif m[i] in s:#如果对应位置的数值不等,但这个数字存在,则B+1
  44. info["B"]=info["B"]+1
  45. print(info)
  46. isContinue=input("机会已经用完!是否再玩一次呢?(是/否)")

 



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

作者:恋爱后女盆友的变化

链接:https://www.pythonheidong.com/blog/article/262850/5d6e30b00119a521003e/

来源:python黑洞网

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

14 0
收藏该文
已收藏

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