import random
import argparse
import re
total='0123456789'#全部数值
parser = argparse.ArgumentParser(description='Set Answer')
parser.add_argument('--mysetguess', dest='mysetguess', type=str, help= "游戏者自己设定的答案", required=False,choices=set(4))
args = parser.parse_args()
print(args.mysetguess)
print("/*******************************猜数字游戏***********************************/")
print("游戏规则:系统随机给出0-9的4位数字,您可以输入您猜测的4位数字,系统会比较并给予反馈,A表示数字对,且位置对,B表示数字对位置不对,如1A2B表示有1位您猜对了数字和位置,有2位您猜对数字,但位置不对。您总共有6次机会,加油哦!")

if args.mysetguess==None:
   answer = random.sample(total, 4)# total中随机获取4个不重复数
else:
   answer = args.mysetguess

for guessTimes in range(6):#循环6
   guess = ""
   for inputErros in range(3):#循环3
      guess=input("请输入4位0-9的不重复数字:")
      if guess.isdigit()==True and len(guess)==4:#isdigit() 方法检测字符串是否只由数字组成且长度为4
         guessSet=set(guess)#set() 函数创建一个无序不重复元素集
         if len(guessSet)==4:##长度个数为4 and guessSet.isdisjoint(set()):#内容不与其他某个设置的值要不相交,相交false
             break
   else:
      print("您没有理解游戏规则,错误次数3次,游戏结束。")
      break
   A=0
   B=0
   for j in range(4):
      if guess[j]==answer[j]:
         A+=1
      else:
         #for k in range(4):
            #if guess[j]==answer[k]:
            if guess[j] in answer:
               B+=1
   if A<4:
      if guessTimes<5:
         print("%dA%dB,您还有%d次机会。" %(A,B,5-guessTimes))
      else:
         print("很遗憾您没有猜对,答案是%s,再玩一局吧。" %(answer))
   else:
      print("恭喜您猜对了!")
      break