分享无聊写的Python猜数字游戏

分享无聊写的Python猜数字游戏

kain
2020-07-20 / 0 评论 / 744 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年07月20日,已超过1399天没有更新,文章所提及的内容可能已过时失效,所以请自行测试验证。

说明

通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的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

评论 (0)

取消