ab猜数字游戏
import random
# 随机生成一个4位不重复数
num = ''.join([ str(i) for i in random.sample(range(0, 10), 4)])
print('答案=', num)
# 初始化分数
rA, rB, pA, pB = 0, 0, 0, 0
# 计算猜测
def guessNum(num1, num2, marks):
global rA, rB, pA, pB
# 判断得A的
for i in range(len(num1)):
if num1[i] == num2[i]:
if marks == 'robot':
rA += 1
else:
pA += 1
# 判断得B的
for in1, val1 in enumerate(num1):
for in2, val2 in enumerate(num2):
if val1 == val2 and in1 != in2:
if marks == 'robot':
rB += 1
else:
pB += 1
def main():
# 玩家输入数字
pnum = 0
# 记录玩家输入历史
history = []
while pnum != num:
global rA, rB, pA, pB
# 初始化分数
rA, rB, pA, pB = 0, 0, 0, 0
# 玩家输入
pnum = input('\ninput num:')
history.append(pnum)
# 验证玩家输入
if len(set(pnum)) != 4 or len(pnum)!=4:
print('请输入4位不重复的数....')
continue
# 机器人输入
robot = ''.join([ str(i) for i in random.sample(range(0, 10), 4)])
# 如果电脑出的是玩家出过的则重新出
while robot in history:
robot = ''.join([ str(i) for i in random.sample(range(0, 10), 4)])
# 玩家猜
guessNum(num, pnum, 'person')
# 机器猜
guessNum(num, robot, 'robot')
# 显示结果
print('-'*50)
print('帅气的你猜的%s->%dA%dB' % (pnum, pA, pB))
print('傻机器猜的是%s->%dA%dB' % (robot, rA, rB))
print('-'*50)
else:
if pA == 4:
print('帅气的你取得了胜利666!')
elif rA == 4:
print('很遗憾机器人取得了胜利, 你输了!')
if __name__ == '__main__':
main()