Python---生活再開シミュレーター(簡易版)

コラム: python
個人ホームページ: HaiFan.
コラムの紹介: このコラムは、主に python の基本的な知識を更新し、いくつかの小さなゲーム、アドレス帳、授業時間管理システムなどを実装しています. 興味のある友人は注意を払うことができます.


マインドマッピング

ここに画像の説明を挿入

序文

Python の order 文、selection 文、loop 文、break と continue の使用については既に学習しましたが、次に、これらの文に基づいたコード ケースについて説明します。


1. 初期プロパティを設定する

誰もが人生再スタートシミュレーターのような小さなゲームをプレイしたことがあると思います。
ゲームでは、一般的に4つの属性があります

  1. ヤン値(顔)
  2. 体質(強い)
  3. 知性 (Iq)
  4. 家族の背景

ここで、属性の範囲と、4 つの属性の合計がどれだけ超えてはならないかについて合意できます。
属性の範囲は 1 ~ 10 で、合計が 20 を超えてはならないことに同意します。

1.ゲームタイトル

ここでは、最初にゲームのタイトルを印刷できます

print("******************************************")
print("                                          ")
print("            人生重开模拟器                   ")
print("                                          ")
print("         花有重开日 人无在少年                ")
print("                                          ")
print("******************************************")

ここに画像の説明を挿入

2. 属性の初期化

この 4 つの属性は、前述の関数を使用してプレイヤー自身が入力することができ、inputこの関数によって属性の初期化が完了します。

 print("请设置初始属性(可用属性值:20)")
 face = int(input("设定颜值(1-10)"))
 iq = int(input("设定智力(1-10)")) 
 strong = int(input("设定体质(1-10)"))   
 home = int(input("设定家境(1-10)"))

これで属性の入力は完了ですが、これは完全ではありません. 属性が数を超えてはならず、合計が数を超えてはならないということは以前に同意しました. したがって、if-elif-else学習した文を使用して判断します.これらの 4 つの属性の合計。

    if face < 1 or face > 10:
        print("颜值设置错误")
        continue
    elif iq < 1 or iq > 10:
        print("智力设置错误")
        continue
    elif strong < 1 or strong > 10:
        print("体质设置错误")
        continue
    elif home < 1 or home > 10:
        print("家境设置错误")
        continue
    elif face + iq + strong + home > 20:
        print("总属性超过20")
        continue
    print("初始属性设置完毕")
    print(f"颜值:{
      
      face},体质:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")

特定の属性が矛盾している場合は常に、画面に理由を出力して属性値を再入力し、一致する場合は画面に 4 つの属性値を出力します。


ある判定でエラーが発生した場合、プレイヤーに出力させずにそのままプログラムを終了させるコードですが、これはループが抜けているためで、プロパティを初期化できるが仕様を満たさない関数を設定する必要があります。同意し、プレイヤーが属性値を再入力できるようにします。それを使う時が来ましたwhile循环

while True:
    print("请设置初始属性(可用属性值:20)")
    face = int(input("设定颜值(1-10)"))
    iq = int(input("设定智力(1-10)"))
    strong = int(input("设定体质(1-10)"))
    home = int(input("设定家境(1-10)"))

    if face < 1 or face > 10:
        print("颜值设置错误")
        continue
    elif iq < 1 or iq > 10:
        print("智力设置错误")
        continue
    elif strong < 1 or strong > 10:
        print("体质设置错误")
        continue
    elif home < 1 or home > 10:
        print("家境设置错误")
        continue
    elif face + iq + strong + home > 20:
        print("总属性超过20")
        continue
    print("初始属性设置完毕")
    print(f"颜值:{
      
      face},体质:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")

すべての判定が一致したら、ループを継続できなくなりますので、プログラムを終了するには、この時間が便利です。判定が満たされた場合は、ループから直接break飛び出します。while

上記のコードの最後に追加breakするだけです注意break的位置要缩进

ここに画像の説明を挿入

2.性別を設定する

性別の設定は興味深いトピックです. 性別はランダムでなければなりません. 乱数を設定するには, 関数が使用されrandom.randintます. この関数は Python の組み込みモジュールです. 1-6 のランダムな整数を生成するためにimport random
使用する前に, このモジュールを呼び出す必要があります. random.randint(1,6).

  1. 単数の場合: 男の子
  2. 偶数の場合:女の子

男の子と女の子は、さまざまな出来事に遭遇します。

point = random.randint(1,6)
# print(f'随机数为:{point}')
if point % 2 == 1:
    gender = "boy"
    print("你是个男孩.")
else:
    gender = "girl"
    print("你是个女孩.")

ここに画像の説明を挿入

3. 誕生点を設定する

まず、家系の背景から出生地は4つに分けられます

  1. 10は最初の部分で、最高の家族背景と最高のボーナスがあります
  2. 7-9 後編、一部おまけあり
  3. ボーナスが少ない4-6の第3部
  4. 1-4 4番目の部分は属性を差し引きます

もちろん、自分で書くときは、さらにいくつかの部分を書いて、ゲームをより多くの可能性に満ちたものにすることができます.


次に、1 ~ 3 の乱数を生成します。各数字は状況を表します。

point = random.randint(1,3)
if home == 10:
    #第一部分
    print("你出生在帝都,父母是世界首富.")
    home += 1
    face += 1
    iq += 1
elif home >= 7 and home <=9:
    #第二部分
    if point == 1:
        print("你出生在一线城市,父母是医生.")
        face += 2
    elif point == 2:
        print("你出生在一线城市,父母是资深程序员.")
        iq += 2
    else:
        print("你出生在一线城市,父母是健身教练.")
        strong += 3
        face += 1
        iq -= 1
elif home >= 4 and home <= 6:
    #第三部分
    if point == 1:
        print("你出生在三线城市,父母是企业管理.")
        iq += 1
    elif point == 2:
        print("你出生在三线城市,父母是小学老师.")
        iq += 1
    else:
        print("你出生在三线城市,父母是自己开店做生意.")
        home += 1

else:
    #第四部分
   if point == 1:
       print("你出生在农村,父母是农民.")
       strong += 2
       face -= 1
   elif point == 2:
       print("你出生在山里,父母是猎人.")
       strong += 2
       home -= 1
       face -= 1
   else:
       print("你出生在小镇上,父母是镇长.")
       face += 1
       home += 1

print(f"颜值:{
      
      face},体量:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")

4. 年齢ごとの人生経験を自動生成

人生は年齢によって4つの切り口に分けられる

  1. 子供時代
  2. 若者
  3. 人生の最盛期
  4. お年寄り

切り捨てごとに異なることが起こり、いくつかの機会もあるかもしれません。
たとえば、子供時代の切り捨て、知性、外見、体格などが変化し、ここでイベントが繰り広げられます。
ここでは子供の頃の経験のみを書きます:
毎年のことなので、毎年for循环展开の経験を文字列で接合し、最後までループし、文字列を出力するために使用できます. イベントの発生には、イベントに応じて乱数を使用できます数によって生成され、性別、外見、体格などに応じてイベントをトリガーすることもできます. さまざまなイベントにはさまざまな効果があります. 病気で死亡した場合は、それsys.exit(0)を使用してプログラムを直接終了できtime.sleep(1)ます. プログラムを一時停止できます.観察しやすいように 2 番目。

for age in range(1,11):
    #把一整年的打印都整理到一个字符串中,在这一年的结尾统一打印
    info = f'你今年{
      
      age}岁'
    #生成一个一到三的随机整数
    point = random.randint(1,3)
    #接下来编写各种事件的代码
    #性别触发的事件
    if gender == 'girl' and home <= 3 and point == 1:
        info += '你的家里人重男轻女思想非常严重,把你丢弃了.'
        print("游戏结束.")
        sys.exit(0)
    #体质触发事件
    elif strong < 6 and point < 3:
        info += '你生了一场病.'
        if home >= 5:
            info += '在父母的照顾下,你康复了.'
            strong += 1
            home -= 1
        else:
            info += '父母没时间管你,你的情况更糟糕了.'
            strong -= 1
    # 颜值触发事件
    elif face <= 4 and age >= 7:
        info += '你长的太丑了,别的小朋友不和你一起玩.'
        if iq > 5:
            info += '你决定用学习填充自己.'
            iq += 1
        else:
            if gender == 'boy':
                info += '你和别的小朋友打架.'
                strong += 1
                iq -= 1
            else:
                info += '你经常被别的小朋友欺负.'
                strong -= 1
    #智商触发的事件
    elif iq < 5:
        info += '你看起来傻乎乎的.'
        if home >= 8 and age >= 6:
            info += '你的父母把你送到更好的学校学习.'
            iq += 1
        elif 4 <= home <= 7:
            if gender == 'boy':
                info += '你的父母鼓励你多运动,争取成为运动健将.'
                strong += 1
            else:
                info += '你的古父母鼓励你多打扮自己.'
                face += 1
        else:
            info += '你的父母经常为此吵架.'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    #健康成长
    else:
        info += '你健康成长.'
        if point == 1:
            info += '你看起来更结实了.'
            strong += 1
        elif point == 2:
            info += '你看起来更好看了.'
            face += 1
        else:
            pass
    #打印这一年发生的事情
    print(info)
    print(f"颜值:{
      
      face},体质:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")
    print("---------------------------------------------------------------")
    time.sleep(1)

ここに画像の説明を挿入

ここに画像の説明を挿入

まとめ(コード付き)

ここでは、4 つすべての切り捨てを書きませんが、1 つの初期段階だけを書きます。この記事を読んで、誰もが自分でフォローアップコンテンツを実現し、ゲームをより完成させる力を持っていると信じています.

注: sys.exit と time.sleep を使用する場合は、
import sys
import timeを呼び出すことを忘れないでください。

"""
                人生重开模拟器
                花有重开日,人无在少年
"""
import random
import sys
import time

print("******************************************")
print("                                          ")
print("            人生重开模拟器                   ")
print("                                          ")
print("         花有重开日 人无在少年                ")
print("                                          ")
print("******************************************")


while True:
    print("请设置初始属性(可用属性值:20)")
    face = int(input("设定颜值(1-10)"))
    iq = int(input("设定智力(1-10)"))
    strong = int(input("设定体质(1-10)"))
    home = int(input("设定家境(1-10)"))

    if face < 1 or face > 10:
        print("颜值设置错误")
        continue
    elif iq < 1 or iq > 10:
        print("智力设置错误")
        continue
    elif strong < 1 or strong > 10:
        print("体质设置错误")
        continue
    elif home < 1 or home > 10:
        print("家境设置错误")
        continue
    elif face + iq + strong + home > 20:
        print("总属性超过20")
        continue
    print("初始属性设置完毕")
    print(f"颜值:{
      
      face},体质:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")
    break



point = random.randint(1,6)

if point % 2 == 1:
    gender = "boy"
    print("你是个男孩.")
else:
    gender = "girl"
    print("你是个女孩.")

point = random.randint(1,3)
if home == 10:
    
    print("你出生在帝都,父母是世界首富.")
    home += 1
    face += 1
    iq += 1
elif home >= 7 and home <=9:
    
    if point == 1:
        print("你出生在一线城市,父母是医生.")
        face += 2
    elif point == 2:
        print("你出生在一线城市,父母是资深程序员.")
        iq += 2
    else:
        print("你出生在一线城市,父母是健身教练.")
        strong += 3
        face += 1
        iq -= 1
elif home >= 4 and home <= 6:
   
    if point == 1:
        print("你出生在三线城市,父母是企业管理.")
        iq += 1
    elif point == 2:
        print("你出生在三线城市,父母是小学老师.")
        iq += 1
    else:
        print("你出生在三线城市,父母是自己开店做生意.")
        home += 1

else:
   
   if point == 1:
       print("你出生在农村,父母是农民.")
       strong += 2
       face -= 1
   elif point == 2:
       print("你出生在山里,父母是猎人.")
       strong += 2
       home -= 1
       face -= 1
   else:
       print("你出生在小镇上,父母是镇长.")
       face += 1
       home += 1

print(f"颜值:{
      
      face},体量:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")


for age in range(1,11):
    
    info = f'你今年{
      
      age}岁'
    
    point = random.randint(1,3)
    
    if gender == 'girl' and home <= 3 and point == 1:
        info += '你的家里人重男轻女思想非常严重,把你丢弃了.'
        print("游戏结束.")
        sys.exit(0)
    
    elif strong < 6 and point < 3:
        info += '你生了一场病.'
        if home >= 5:
            info += '在父母的照顾下,你康复了.'
            strong += 1
            home -= 1
        else:
            info += '父母没时间管你,你的情况更糟糕了.'
            strong -= 1
    
    elif face <= 4 and age >= 7:
        info += '你长的太丑了,别的小朋友不和你一起玩.'
        if iq > 5:
            info += '你决定用学习填充自己.'
            iq += 1
        else:
            if gender == 'boy':
                info += '你和别的小朋友打架.'
                strong += 1
                iq -= 1
            else:
                info += '你经常被别的小朋友欺负.'
                strong -= 1
   
    elif iq < 5:
        info += '你看起来傻乎乎的.'
        if home >= 8 and age >= 6:
            info += '你的父母把你送到更好的学校学习.'
            iq += 1
        elif 4 <= home <= 7:
            if gender == 'boy':
                info += '你的父母鼓励你多运动,争取成为运动健将.'
                strong += 1
            else:
                info += '你的古父母鼓励你多打扮自己.'
                face += 1
        else:
            info += '你的父母经常为此吵架.'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    
    else:
        info += '你健康成长.'
        if point == 1:
            info += '你看起来更结实了.'
            strong += 1
        elif point == 2:
            info += '你看起来更好看了.'
            face += 1
        else:
            pass

    print(info)
    print(f"颜值:{
      
      face},体质:{
      
      strong},智力:{
      
      iq},家境:{
      
      home}")
    print("---------------------------------------------------------------")
    time.sleep(1)






おすすめ

転載: blog.csdn.net/weixin_73888239/article/details/128732979