欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實現(xiàn)復(fù)刻人生重開模擬器

 更新時間:2022年10月25日 14:51:45   作者:2021dragon  
人生重開模擬器是由VickScarlet上傳至GitHub的一款簡單的文字網(wǎng)頁游戲。本文將用Python復(fù)刻一下這個游戲,感興趣的小伙伴可以嘗試一下

人生重開模擬器介紹

人生重開模擬器是由VickScarlet上傳至GitHub的一款簡單的文字網(wǎng)頁游戲。

玩家點擊“立即重開”并設(shè)置角色的初始屬性后,程序就會隨機為玩家生成對應(yīng)的人生經(jīng)歷。

代碼實現(xiàn)

下面我們實現(xiàn)一個簡化版的人生重開模擬器,主要目的在于熟悉Python的語法。

打印初始界面

初始界面可以自由發(fā)揮,這里博主就隨便打印一下。

代碼如下:

# 打印初始界面
print('+-------------------------------------------+')
print('|                                           |')
print('|              >>人生重開模擬器<<              |')
print('|                                           |')
print('|            這垃圾人生一秒也不想待了            |')
print('|                                           |')
print('+-------------------------------------------+')

設(shè)置初始屬性

進入游戲后第一步就是設(shè)置初始屬性,此處設(shè)定以下四個屬性:

  • 顏值(face)。
  • 體制(strong)。
  • 智力(iq)。
  • 家境(home)。

我們規(guī)定每個屬性的范圍為1 - 10,并且這四個屬性的總和不能超過20,如果玩家輸入的初始屬性不合理,則提示玩家輸入有誤并要求重新輸入。體現(xiàn)在代碼中就是,玩家輸入屬性后通過if語句判斷輸入的屬性是否合法,如果不合法則通過while語句要求玩家重新進行輸入。

代碼如下:

# 設(shè)置初始屬性
# 顏值、體質(zhì)、智力、家境(總和不能超過20,每一項取值在1-10之間)
while True:
    print('請設(shè)置初始屬性(可用點數(shù)總數(shù)為20)')
    face = int(input('請輸入顏值(1-10): '))
    strong = int(input('請輸入體制(1-10): '))
    iq = int(input('請輸入智力(1-10): '))
    home = int(input('請輸入家境(1-10): '))

    if face < 1 or face > 10:
        print('顏值設(shè)置有誤!')
        continue
    if strong < 1 or strong > 10:
        print('體制設(shè)置有誤!')
        continue
    if iq < 1 or iq > 10:
        print('智力設(shè)置有誤!')
        continue
    if home < 1 or home > 10:
        print('家境設(shè)置有誤!')
        continue
    if face + strong + iq + home > 20:
        print('屬性總和超過了20,設(shè)置有誤!')
        continue

    print('初始屬性輸入完畢!')
    print(f'顏值: {face}, 體制: {strong}, 智力: {iq}, 家境: {home}')
    break

設(shè)置角色性別

關(guān)于角色的性別,我們可以隨機生成一個1 - 6的整數(shù),類似于擲色子。

如果是單數(shù),則性別設(shè)為男孩。

如果是雙數(shù),則性別設(shè)為女孩。

性別設(shè)置后需要借助一個變量將角色的性別保存起來,因為后續(xù)男孩和女孩可能會觸發(fā)不同的事件。

代碼如下:

# 設(shè)置角色性別
point = random.randint(1, 6)
if point % 2 == 1:
    gender = 'boy'
    print('你是個男孩')
else:
    gender = 'girl'
    print('你是個女孩')

說明一下:

  • 代碼中使用的randint是random模塊中的一個函數(shù),random.randint(begin, end)可以生成一個begin - end之間的隨機整數(shù)。
  • 在Python中,如果想引入其他模塊,需要以import 模塊名的方式將對應(yīng)的模塊導(dǎo)入進來,導(dǎo)入模塊后以模塊名.xxx的方式就能使用該模塊中的函數(shù)或變量。

設(shè)置角色出生點

設(shè)置角色的出生點時,可以根據(jù)角色的家境分為四個檔位:

  • 10是第一檔,加成最高。
  • 7 - 9是第二檔,有一些加成。
  • 4 - 6是第三檔,加成較少。
  • 1 - 3是第四檔,會扣掉屬性。

除了將角色的出生點按照家境分為四個檔位之外,還可以再生成一個隨機數(shù),對每一檔的內(nèi)部再進行一次細分,最終得到角色的出生點,此處涉及的也就是一些if條件判斷而已。

代碼如下:

# 設(shè)置角色出生點
point = random.randint(1, 3)
if home == 10:
    # 第一檔
    print('你出生在帝都, 你的父母是高官政要')
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    # 第二檔
    if point == 1:
        print('你出生在大城市,父母是公務(wù)員')
        face += 2
    elif point == 2:
        print('你出生在大城市,父母是企業(yè)高管')
        home += 2
    else:
        print('你出生在大城市,父母是大學(xué)教授')
        iq += 2
elif 4 <= home <= 6:
    # 第三檔
    if point == 1:
        print('你出生在三線城市,你的父母是醫(yī)生')
        strong += 1
    elif point == 2:
        print('你出生在鎮(zhèn)上,你的父母是老師')
        iq += 1
    else:
        print('你出生在鎮(zhèn)上,你的父母是個體戶')
        home += 1
else:
    # 第四檔
    if point == 1:
        print('你出生在農(nóng)村,父母是辛苦勞作的農(nóng)民')
        strong += 1
        face -= 2
    elif point == 2:
        print('你出生在窮鄉(xiāng)僻壤,你的父母是無業(yè)游民')
        home -= 1
    else:
        print('你出生在鎮(zhèn)上,你的父母感情不和')
        strong -= 1
print(f'顏值: {face}, 體制: {strong}, 智力: {iq}, 家境: {home}')

說明一下:

  • 角色的出生點不能僅由家境決定,此處在設(shè)置角色出生點時引入隨機數(shù)的目的就是為了增加隨機的因素,畢竟人生本來就充滿了很多的隨機性。
  • 這里的代碼只是起一個示意的作用,因此生成隨機數(shù)的范圍只是1 - 3,如果你愿意也可以生成更大范圍的隨機數(shù),將每一檔的內(nèi)部進行更細粒度的劃分,這樣就能更大的保證每次運行程序后得到的出生點都是不一樣的。

針對每一歲,生成人生經(jīng)歷

人生經(jīng)歷的四個階段

設(shè)置完角色的性別和出生點后,就可以針對每一歲生成對應(yīng)的人生經(jīng)歷了,這里我們按照年齡將人生經(jīng)歷分為以下四個階段:

  • 1 - 10歲:幼年階段。
  • 11 - 20歲:青年階段。
  • 21 - 50歲:壯年階段。
  • 50歲以后:老年階段。

在人生的每個階段都會有不同的經(jīng)歷和事件發(fā)生:

  • 幼年階段:可塑性強,體制、顏值、智力都會有較快的變化。
  • 青年階段:主要是求學(xué),同時父母一輩會有明顯變化,智力和家境會有明顯變化。
  • 壯年階段:相對平穩(wěn),屬性變化不大,主要是一些隨機事件影響到屬性。
  • 老年階段:體質(zhì)、顏值、智力都會顯著退化,并且隨著年齡的上升,疾病和死亡的風(fēng)險逐漸升高。

這時就可以發(fā)揮我們的想象力,編寫一些合理的人生經(jīng)歷,并在合適的條件下觸發(fā)這些事件即可。

人生經(jīng)歷生成

這里我們以幼年為例,簡單演示一下處理邏輯:

  • 使用for循環(huán),按照年齡從1循環(huán)到10,每次循環(huán)生成對應(yīng)年齡的人生經(jīng)歷。
  • 在生成每一年的人生經(jīng)歷之前,先生成一個隨機數(shù)(充當人生中的隨機因素),根據(jù)得到的隨機數(shù)以及角色的性別、年齡和各種屬性來觸發(fā)不同的事件。
  • 不同的事件被觸發(fā)后,可能會對角色的屬性有正面或負面的影響,因此角色的各個屬性會隨著事件的觸發(fā)而不斷發(fā)生變化。
  • 在這一年的最后打印出所觸發(fā)的事件,為了方便觀察,也可以將這一年后角色的各個屬性進行打印。

代碼如下:

# 幼年階段
for age in range(1, 11):
    info = f'你今年{age}歲, '
    point = random.randint(1, 3)
    # 性別觸發(fā)的事件
    if gender == 'girl' and home <= 3 and point == 1:
        info += '你的家里人重男輕女思想非常嚴重, 你被遺棄了!'
        print(info)
        print('游戲結(jié)束!')
        sys.exit(0)
    # 體制觸發(fā)的事件
    elif strong < 6 and point < 3:
        info += '你生了一場病, '
        if home >= 5:
            info += '在父母的細心照料下, 你康復(fù)了'
            strong += 1
            home -= 1
        else:
            info += '你的父母沒精力管你, 你的身體狀況更遭了'
            strong -= 1
    # 顏值觸發(fā)的事件
    elif face <= 4 and age >= 7:
        info += '你長得太丑了, 別的小朋友不喜歡你, '
        if iq > 5:
            info += '你決定用學(xué)習(xí)填充自己!'
            iq += 1
        else:
            if gender == 'boy':
                info += '你和別的小朋友經(jīng)常打架!'
                strong += 1
                iq -= 1
            else:
                info += '你經(jīng)常被別的小朋友欺負'
                strong -= 1
    # 智力觸發(fā)的事件
    elif iq < 5:
        info += '你看起來傻傻的, '
        if home >= 7 and age >= 6:
            info += '你的父母把你送到更好的學(xué)校學(xué)習(xí)'
            iq += 1
        elif 4 <= home <= 6:
            if gender == 'boy':
                info += '你的父母鼓勵你多運動, 爭取成為運動員'
                strong += 1
            else:
                info += '你的父母鼓勵你多打扮自己'
                face += 1
        else:
            info += '你的父母為此經(jīng)常吵架'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    # 健康成長事件
    else:
        info += '你健康成長, '
        if point == 1:
            info += '你看起來更結(jié)實了'
            strong += 1
        elif point == 2:
            info += '你看起來更好看了'
            face += 1
        else:
            info += '這一年沒有特別的事情發(fā)生'
    # 打印這一年發(fā)生的事情
    print(info)
    print(f'顏值: {face}, 體制: {strong}, 智力: {iq}, 家境: {home}')
    print('---------------------------------------------')
    # 為了方便觀察, 加一個sleep
    time.sleep(2)

說明一下:

  • 代碼中使用的exit是sys模塊中的一個函數(shù),如果角色因為觸發(fā)某些事件而夭折,那么就可以以sys.exit(退出碼)的方式讓程序直接退出。
  • 代碼中使用的sleep是time模塊中的一個函數(shù),為了方便觀察生成的人生經(jīng)歷,可以以time.sleep(秒數(shù))的方式讓程序暫停若干秒。

效果展示

說明一下:

  • 由于當前代碼中編寫的人生經(jīng)歷還是比較少的,并且隨機數(shù)也只是1 - 3,因此生成的人生經(jīng)歷的隨機性比較差,并且生成的事件也就那么幾個,如果想要讓生成的人生經(jīng)歷更加隨機更加豐富,就需要將生成隨機數(shù)的范圍調(diào)大,并且編寫更多的人生經(jīng)歷用于觸發(fā)。
  • 此外,青年階段、壯年階段和老年階段的人生經(jīng)歷生成方式與幼年階段相同,這里就不再進行實現(xiàn)了,想象力比較豐富的博友可以自行編寫,但博主認為這里的目的是為了熟悉Python的語法,繼續(xù)編寫其他階段的人生經(jīng)歷的意義不大。

到此這篇關(guān)于基于Python實現(xiàn)復(fù)刻人生重開模擬器的文章就介紹到這了,更多相關(guān)Python人生重開模擬器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論