Python --- Simulador de reapertura de vida (versión simplificada)

Columna: python
Página de inicio personal: HaiFan.
Introducción de la columna: esta columna actualiza principalmente algunos conocimientos básicos de python y también implementa algunos juegos pequeños, libreta de direcciones, sistema de gestión del tiempo de clase, etc. Los amigos interesados ​​pueden prestarle atención.


mapas mentales

inserte la descripción de la imagen aquí

prefacio

Ya hemos aprendido el orden, la selección, la declaración de bucle y el uso de romper y continuar en python. A continuación, explicaremos un caso de código basado en estas declaraciones.


1. Establecer las propiedades iniciales

Creo que todos han jugado un pequeño juego como un simulador de reinicio de vida.
En el juego, generalmente hay cuatro atributos.

  1. Valor Yan (cara)
  2. constitución (fuerte)
  3. inteligencia
  4. trasfondo familiar

Aquí puede acordar el alcance de los atributos y cuánto no puede exceder la suma de los cuatro atributos.
Estamos de acuerdo en que el rango de atributos es 1-10, y la suma no debe exceder 20.

1. Título del juego

Aquí puedes imprimir el título del juego al principio

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

inserte la descripción de la imagen aquí

2. Inicialización de atributos

Estos cuatro atributos pueden ser ingresados ​​por el propio jugador, que utiliza la inputfunción mencionada anteriormente, ya través de esta función, se completa la inicialización de los atributos.

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

De esta manera, se completa la entrada de atributos, que no es perfecta. Hemos acordado antes que los atributos no deben exceder el número, y la suma no debe exceder el número. Por lo tanto, usaremos las if-elif-elseoraciones que hemos aprendido para juzgar la suma de estos cuatro atributos.

    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}")

Siempre que un determinado atributo sea inconsistente, imprima el motivo en la pantalla y vuelva a ingresar el valor del atributo, si cumple con el acuerdo, imprima los cuatro valores del atributo en la pantalla.


Cuando ocurre un error en un determinado juicio, el código finalizará directamente el programa sin permitir que el reproductor emita un bucle. Esto se debe a que falta un bucle, por lo que debemos establecer una función que pueda inicializar la propiedad pero no cumpla con los requisitos. acuerdo, y dejar que el jugador Habilidad para volver a introducir los valores de los atributos. es hora de usarlowhile循环

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}")

Cuando todos los juicios cumplen con el acuerdo, el ciclo ya no puede continuar. Para finalizar el programa, este tiempo breakes útil. Si se cumple el juicio, salte whiledirectamente del ciclo.

breakSimplemente agréguelo al final del código anterior 注意break的位置要缩进.

inserte la descripción de la imagen aquí

2. Establecer género

Establecer el género es un tema interesante. El género debe ser aleatorio. Para establecer números aleatorios, se usa una función random.randint. Esta función es un módulo incorporado en Python. Debe llamar a este módulo antes de import random
usarlo random.randint(1,6)para generar un número entero aleatorio del 1 al 6. .

  1. Si es singular: niño
  2. Si es un número par: niña

Niños y niñas se encontrarán con diferentes eventos.

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

inserte la descripción de la imagen aquí

3. Establecer el punto de nacimiento

En primer lugar, según los antecedentes familiares, el punto de nacimiento se puede dividir en 4 partes

  1. 10 es la primera parte, con los mejores antecedentes familiares y la bonificación más alta
  2. 7-9 la segunda parte, también tiene algunos bonus
  3. 4-6 tercera parte con menos bonificación
  4. 1-4 La cuarta parte descontará atributos

Por supuesto, cuando escribes solo, puedes escribir algunas partes más para que el juego esté lleno de más posibilidades.


Luego, genera números aleatorios entre 1-3, cada número representa una situación.

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. Genera automáticamente experiencias de vida para cada edad.

La vida se puede dividir en cuatro puntos de corte según la edad

  1. infancia
  2. juventud
  3. la flor de la vida
  4. anciano

Suceden cosas diferentes con cada truncamiento, y también puede haber algunas oportunidades.
Por ejemplo: el truncamiento de la infancia, la inteligencia, la apariencia, el físico, etc. cambiarán, y los eventos se pueden desarrollar aquí.
Aquí solo escriba la experiencia de la infancia:
debido a que es todos los años, se puede usar for循环展开para empalmar la experiencia de cada año con cadenas, bucle hasta el final y cadenas de salida Para la ocurrencia de eventos, se pueden usar números aleatorios, de acuerdo con Los eventos pueden ser generado por números, y los eventos también se pueden activar según el género, la apariencia, el físico, etc. Diferentes eventos tienen diferentes efectos. Si te enfermas y mueres, puedes sys.exit(0)salir directamente del programa usándolo time.sleep(1). Puede pausar el programa por uno segundo para una fácil observación.

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)

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

Resumen (con código)

Aquí, no escribo los cuatro truncamientos, sino solo una etapa de la infancia. Después de leer este artículo, creo que todos tienen la capacidad de realizar el contenido de seguimiento por sí mismos y hacer que el juego sea más completo.


Nota: No olvide llamar a import sys
import time cuando use sys.exit y time.sleep

"""
                人生重开模拟器
                花有重开日,人无在少年
"""
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)






Supongo que te gusta

Origin blog.csdn.net/weixin_73888239/article/details/128732979
Recomendado
Clasificación