Python猜数字小游戏 您所在的位置:网站首页 3f585 Python猜数字小游戏

Python猜数字小游戏

2023-01-11 04:14| 来源: 网络整理| 查看: 265

#猜数字程序  #其中und为用户输入的数字,rnd为预设的“正确答案” #返回值为xAyB的形式 #如果数字正确且位置正确,A的值加1 #如果数字正确,位置不对,B的值加1 #其中,如果某个数字A加1,说明猜对一个数字,这个位置不再参与判断 #例如:用户输入8585,正确答案3585,后面3个数组585是对的 #则后面的3个位置不再参与对比,正确的数字应该是3,用户输入的是8,B的值加1 #结果应该是3A0B,而不是3A1B

import random

s = [] ans = [] text = []      #存储输入的多行,换行符间隔 und = '' #存储单行输入 d1 = {'A':0,'B':0}

# 下面方法用于生成长度为4的随机数 def gen_rnd():     for i in range(0,4):         x = random.randint(0,9)         ans.append(str(x))     print("正确答案(你看不见我):"+"".join(ans))     return ans

#随机生成一个4位随机数列表,作为答案 rnd = list(gen_rnd()) print(rnd)

def guess_num(und,rnd):     #初始化字典和列表,以便存储当前处理的值     d1 = {'A':0,'B':0}     s = []     rnd2 = rnd.copy()     und2 = und.copy()     for i in range(0,len(und)):         if und2[i] == rnd[i]:             d1['A'] += 1             rnd2[i] = None             und2[i] = None          for j in range(0,len(und2)):         if (und2[j] is not None) and (und2[j] in rnd2):               d1['B'] += 1                  for k,v in d1.items():         t= str(v)+k         s.append(t)     show_time = "".join(s)         return show_time

#开始猜数字 print("") print("开始猜数字:") while True:     und = list(input())     if und == '':         break     #print(und)     rt = guess_num(und,rnd)     print(rt)      print("下一个数字,回车退出:")     

---------------------------------------------------------------------------------------------------

测试输出:

正确答案(你看不见我):6390 ['6', '3', '9', '0'] 开始猜数字: 3685 0A2B 下一个数字,回车退出:


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有