说明
通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4 位数序列,不能让猜的人知道。猜的人就可以开始猜。每猜一次, 出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
如正确答案为5234, 而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。
CODE
#! -*- coding:utf-8 -*-
import random
def go_game():
num = random.randint(0000,9999) #随机出四位数字
while(True):
index_mate = 0 #下标正确数量
num_mate = 0 #数字正确数量
nums = input("请输入一个四位数字进行竞猜:") #输入竞猜数字
if nums == "admin":
print("1.重置数字 2.查看当前数字 3.修改当前数字 4.继续竞猜 5.退出")
command = input("请输入选项:")
if command == "1":
num = random.randint(0000,9999)
print("重置成功!")
continue
elif command == "2":
print(num)
continue
elif command == "3":
num = input("请输入四位数字")
print("设置成功,当前设置的数字为:"+num)
continue
elif command == "4":
continue
elif command == "5":
break
else:
print("指令输入错误!")
continue
for i in range(0,4):
list_num = list(str(num))
list_nums = list(str(nums))
if list_num[i] == list_nums[i]:
index_mate = index_mate + 1 #如果当前下标的数字相同,就+1
else:
for sb in range(0,len(list_nums)):
if list_num[i] == list_nums[sb]:
num_mate = num_mate + 1
if index_mate == 4 and num_mate == 0:
print("恭喜你,猜对了!")
break
else:
print(str(index_mate)+"A"+str(num_mate)+"B")
continue
go_game()
评论 (0)