溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python:CPU和人的21點對決

發(fā)布時間:2020-07-12 17:05:13 來源:網(wǎng)絡(luò) 閱讀:1591 作者:神仙也考試 欄目:建站服務器
# coding:utf-8
# __author__: 神仙也考試
# __author time__: 2017/8/8
import random
print """
需求:
    1、初始CPU和人各隨機擁有2張牌;
    2、各計算得出初始2張牌的總數(shù);
    3、當擁有的牌數(shù)小于16點則自動新增一張牌;
    4、新增的牌進入計算總和;
    5、人的計算中:當大于等16點時候進行選擇是否加牌;當加的牌大于等于22點,則自動停止;
    6、CPU的計算中:當小于16點則自動新增牌并計算;當大于16點則自動停止;
    7、最后得出的值進行比較
    8、比較規(guī)則:
    【1】都大于等于22點,則和局;
    【2】都小于22點時,若兩個數(shù)相等,則和局;
    【3】點數(shù)大者為贏,點數(shù)小者為輸。
"""
print "*************** 開始游戲 ***************"
# 初始化4個隨機1-10的整數(shù)
number1 = random.randint(1, 10)
number2 = random.randint(1, 10)
number3 = random.randint(1, 10)
number4 = random.randint(1, 10)
# 初始化CPU和人的隨機列表
man_numbers = [number1, number2]
cpu_numbers = [number3, number4]
# 初始化CPU和人的總數(shù)
man_count = 0
cpu_count = 0
# 初始化循環(huán)標識
flag_cpu = 1
flag_man = 1
# **************************************
# ############# 定義人行為 #############
# **************************************
# 計算初始人得到的總數(shù)
for i in man_numbers:
    man_count = man_count + i
print "你擁有的牌是 %s " % man_numbers
print "你的牌數(shù)總計點數(shù)是 %s" % man_count
if man_count < 16:  # 小于16則繼續(xù)自動添加牌到16點以上
    print "擁有的牌數(shù)小于16點,自動添加新牌到16點以上..."
    while flag_man == 1:
        man_random1 = random.randint(1, 10)     # 獲得隨機值,保證每次取到的都是一個新的隨機值
        man_numbers.append(man_random1)    # 把獲得的隨機值添加到列表中
        man_count = man_count + man_numbers[-1]   # 始終加上列表的最后一個值
        if man_count >= 16 and man_count <22:
            while flag_man == 1:
                print "你擁有的牌數(shù)點數(shù)大于16點,總數(shù)為 %s,是否需要繼續(xù)添加新牌?" % man_count
                print "任意鍵表示繼續(xù)要牌,輸入大寫Q或小寫q,表示退出!"
                get_key = raw_input("請輸入:\n")
                if get_key == 'Q' or get_key == 'q':
                    flag_man = 0
                else:
                    man_random2 = random.randint(1, 10)   # 獲得隨機值,保證每次取到的都是一個新的隨機值
                    man_numbers.append(man_random2)   # 把獲得的隨機值添加到列表中
                    man_count = man_count + man_numbers[-1]  # 始終加上列表的最后一個值
                    if man_count >= 22:
                        flag_man = 0
        if man_count >= 22:
            flag_man = 0
    print """******************************"""
    print "當前你的牌數(shù)總數(shù)是 %s" % man_count
    print "當前你擁有的牌是 %s" % man_numbers
else:
    while flag_man == 1:
        print "你擁有的牌數(shù)點數(shù)大于16點,總數(shù)為 %s,是否需要繼續(xù)添加新牌?" % man_count
        print "任意鍵表示繼續(xù)要牌,輸入大寫Q或小寫q,表示退出!"
        get_key = raw_input("請輸入:\n")
        if get_key == 'Q' or get_key == 'q':
            flag_man = 0
        else:
            man_random3 = random.randint(1, 10)  # 獲得隨機值,保證每次取到的都是一個新的隨機值
            man_numbers.append(man_random3)   # 把獲得的隨機值添加到列表中
            man_count = man_count + man_numbers[-1]  # 始終加上列表的最后一個值
            if man_count >= 22:
                flag_man = 0
    print """******************************"""
    print "當前你的牌數(shù)總數(shù)是 %s" % man_count
    print "當前你擁有的牌是 %s" % man_numbers
# **************************************
# ############# 定義CPU行為 ############
# **************************************
# 計算初始CPU得到的總數(shù)
for j in cpu_numbers:
    cpu_count = cpu_count + j
if cpu_count < 16:
    while flag_cpu == 1:
        # CPU獲取隨機值
        cpu_random1 = random.randint(1, 10)
        cpu_numbers.append(cpu_random1)
        cpu_count = cpu_count + cpu_numbers[-1]
        if cpu_count >= 16:
            flag_cpu = 0
    print """******************************"""
    print "CPU的總和是 %s" % cpu_count
    print "當前CPU擁有的牌是 %s" % cpu_numbers
else:
    print """******************************"""
    print "CPU的總和是 %s" % cpu_count
    print "當前CPU擁有的牌是 %s" % cpu_numbers
# **************************************
# ######### 比較CPU和人的值 ###########
# **************************************
print """******************************"""
if man_count >= 22 and cpu_count < 22:
    print "CPU贏了..."
    print "你的總數(shù)大于22,你輸了..."
elif man_count < 22 and cpu_count >= 22:
    print "你贏了..."
    print "CPU的總數(shù)大于22,CPU輸了..."
elif man_count <= 21 and cpu_count <= 21:
    if man_count > cpu_count:
        print "你贏了..."
        print "你的總數(shù)為:%s" % man_count
        print "CPU輸了..."
        print "CPU的總數(shù)為:%s" % cpu_count
    elif man_count < cpu_count:
        print "CPU贏了..."
        print "CPU的總數(shù)為:%s" % cpu_count
        print "你輸了..."
        print "你的總數(shù)為:%s" % man_count
    else:
        print "和局..."
        print "你和CPU的總數(shù)都為:%s" % man_count
else:
    print "和局..."
    print "你和CPU的總數(shù)都大于22..."
print "*************** 游戲結(jié)束 ***************"


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI