python写出1A2B游戏

要求:

1A2B 猜数游
1. 戏规则
1. 随机 生成一个四位数 首位可以是 0 ,每 位的数字 不相同 ), 以下称
2. 户给 出一个猜 的四位数
3. 当用 的数字 四位 存在于 答案 但 位置不正 确 时,则记为 A
4. 当用 的数字 四位 存在于 答案 且 位置正 确 时,则记为 B
5. 程序返回 A 数和 B 格式 为: XAXB
2. 示例
3. 需求
于用 的非法 入有一定抗性 (检查 位数 是否都是数字 是否包含空
当用 户输 save 时, 保存当前游 态( 在本地生成 记录 文件 推荐
json 格式 ), 选择 退出游 继续
当用 户输 exit 时, 退出游
局游 戏开 时,检查 本地是否有保存的游 戏, 如果有 选择继续
始新游
 代码:
# -*- codeing = utf-8 -*-
# @Time : 2022/1/16 11:35
# @Author : B20041409
# @File : 1A2BFUB.py
# @Software : PyCharm
import random
import os
if os.path.exists("D:\\new.txt")==False:        #检测文件是否存在
    file = open('D:\\' + 'new' + '.txt','w')    #若不存在则立即创建
    file.close()
temp=1 #控制是否继续
for i in range(1000):
 a = int(random.randint(1000, 9999))
 aa = [int(a / 1000), int((a / 100) % 10), int((a / 10) % 10), int(a % 10)]
 if any([aa[0] == aa[1], aa[0] == aa[2], aa[0] == aa[3], aa[1] == aa[2], aa[1] == aa[3], aa[2] == aa[3]]):
     pass
 else:
     break
print("已随机生成一个各位不相同的4位数字")
while temp ==1 :
    file = open('D:\甘露\python\pythonProject1\ new.txt', 'w')
    b = input("请输入一个各位不相同的4位数字,来猜猜这个数:")
    if b.isdigit():
     b = int(b)
     if b<9999 and b>999:
       bb = [int(b / 1000), int((b / 100) % 10), int((b / 10) % 10), int(b % 10)]
       (i, j) = (0, 0)
       for y in range(0, 4):
          if aa[y] == bb[y]:
              i += 1
          else:
             if any([aa[y] == bb[0], aa[y] == bb[1], aa[y] == bb[2], aa[y] == bb[3]]):
                 j += 1
       print("%dA%dB" % (i, j))
       file.write("'%d'的结果是 '%dA%dB'"%(b,i,j))
       string=input("继续请输入y:")
       file.close()
       if string !="y":
          temp=0
     continue
这个代码,输入一些数据,会判断是否符合要求,如果不符合要求就会让你重新输入,每次后都会有一个是否继续,写入y就可以进行,写入其他的字符就会退出

你可能感兴趣的:(python,游戏,开发语言)