Simulador de reapertura de vida (implementación de Python)

Descripción de Simulador de Reapertura de Vida

Life Reopen Simulator es un juego web simple basado en texto subido a GitHub por VickScarlet.

inserte la descripción de la imagen aquí

Después de que el jugador haga clic en "Reiniciar ahora" y establezca los atributos iniciales del personaje, el programa generará aleatoriamente la experiencia de vida correspondiente para el jugador.

inserte la descripción de la imagen aquí

Código

A continuación, implementamos una versión simplificada del simulador de reinicio de vida, el objetivo principal es familiarizarse con la sintaxis de Python.

imprimir interfaz inicial

La interfaz inicial se puede jugar libremente, aquí el blogger simplemente la imprime.

el código se muestra a continuación:

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

establecer propiedades iniciales

El primer paso después de ingresar al juego es establecer las propiedades iniciales, aquí se establecen las siguientes cuatro propiedades:

  • Valor nominal.
  • sistema (fuerte).
  • Inteligencia (iq).
  • hogar.

Estipulamos que el rango de cada atributo es 1 - 10, y la suma de estos cuatro atributos no puede exceder 20. Si el atributo inicial ingresado por el jugador no es razonable, se le pedirá al jugador que ingrese un error y se le pedirá que vuelva a ingresar. ingresar. Se refleja en el código que después de que el jugador ingresa el atributo, la declaración if se usa para juzgar si el atributo de entrada es legal y, si no lo es, el jugador debe volver a ingresar la entrada a través de la declaración while.

el código se muestra a continuación:

# 设置初始属性
# 颜值、体质、智力、家境(总和不能超过20,每一项取值在1-10之间)
while True:
    print('请设置初始属性(可用点数总数为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('颜值设置有误!')
        continue
    if strong < 1 or strong > 10:
        print('体制设置有误!')
        continue
    if iq < 1 or iq > 10:
        print('智力设置有误!')
        continue
    if home < 1 or home > 10:
        print('家境设置有误!')
        continue
    if face + strong + iq + home > 20:
        print('属性总和超过了20,设置有误!')
        continue

    print('初始属性输入完毕!')
    print(f'颜值: {
      
      face}, 体制: {
      
      strong}, 智力: {
      
      iq}, 家境: {
      
      home}')
    break

Establecer el género del personaje

En cuanto al género del personaje, podemos generar aleatoriamente un número entero del 1 al 6, similar a tirar un dado.

  • Si es singular, el género se establece en niño.
  • Si es un número par, el género se establece en niña.

Después de establecer el género, se necesita una variable para guardar el género del personaje, porque los niños y niñas subsiguientes pueden desencadenar diferentes eventos.

el código se muestra a continuación:

# 设置角色性别
point = random.randint(1, 6)
if point % 2 == 1:
    gender = 'boy'
    print('你是个男孩')
else:
    gender = 'girl'
    print('你是个女孩')

Explique:

  • El randint utilizado en el código es una función en el módulo aleatorio que random.randint(begin, end)genera un número entero aleatorio entre comienzo y fin.
  • En Python, si desea importar otros módulos, debe import 模块名importar los módulos correspondientes de 模块名.xxxla misma manera y luego puede usar las funciones o variables en el módulo de esta manera.

Establecer punto de generación de personajes

Al establecer el punto de nacimiento del personaje, se puede dividir en cuatro grados según los antecedentes familiares del personaje:

  • 10 es la primera marcha, con la bonificación más alta.
  • 7 - 9 es la segunda marcha con algunas bonificaciones.
  • 4 - 6 es la tercera marcha con menos bonificación.
  • 1 - 3 es la cuarta marcha, que descontará atributos.

Además de dividir el punto de nacimiento del personaje en cuatro grados según los antecedentes familiares, también puede generar un número aleatorio, subdividir el interior de cada grado nuevamente y finalmente obtener el punto de nacimiento del personaje, que está involucrado aquí. para el juicio.

el código se muestra a continuación:

# 设置角色出生点
point = random.randint(1, 3)
if home == 10:
    # 第一档
    print('你出生在帝都, 你的父母是高官政要')
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print('你出生在大城市,父母是公务员')
        face += 2
    elif point == 2:
        print('你出生在大城市,父母是企业高管')
        home += 2
    else:
        print('你出生在大城市,父母是大学教授')
        iq += 2
elif 4 <= home <= 6:
    # 第三档
    if point == 1:
        print('你出生在三线城市,你的父母是医生')
        strong += 1
    elif point == 2:
        print('你出生在镇上,你的父母是老师')
        iq += 1
    else:
        print('你出生在镇上,你的父母是个体户')
        home += 1
else:
    # 第四档
    if point == 1:
        print('你出生在农村,父母是辛苦劳作的农民')
        strong += 1
        face -= 2
    elif point == 2:
        print('你出生在穷乡僻壤,你的父母是无业游民')
        home -= 1
    else:
        print('你出生在镇上,你的父母感情不和')
        strong -= 1
print(f'颜值: {
      
      face}, 体制: {
      
      strong}, 智力: {
      
      iq}, 家境: {
      
      home}')

Explique:

  • El punto de nacimiento de un personaje no se puede determinar solo por los antecedentes familiares. El propósito de introducir números aleatorios al establecer el punto de nacimiento del personaje es aumentar el factor aleatorio. Después de todo, la vida está llena de aleatoriedad.
  • El código aquí es solo para un propósito esquemático, por lo que el rango de números aleatorios es solo de 1 a 3. Si lo desea, también puede generar un rango más grande de números aleatorios y dividir el interior de cada archivo en una división más fina. , para que pueda tener una mayor garantía de que cada vez que ejecute el programa, obtendrá un punto de generación diferente.

Generar experiencias de vida para cada edad

Las cuatro etapas de la vida.

Después de establecer el género y el punto de nacimiento del personaje, puedes generar la experiencia de vida correspondiente para cada edad.Aquí dividimos la experiencia de vida en las siguientes cuatro etapas según la edad:

  • 1 - 10 años: Etapa infantil.
  • 11-20 años: Etapa juvenil.
  • 21 - 50 años: el escenario principal.
  • Después de los 50 años: vejez.

Diferentes experiencias y eventos tienen lugar en cada etapa de la vida:

  • Infancia: plasticidad fuerte, cambios rápidos en el sistema, apariencia e inteligencia.
  • Etapa juvenil: principalmente para estudiar, y al mismo tiempo, habrá cambios obvios en la generación de los padres, y habrá cambios obvios en la inteligencia y los antecedentes familiares.
  • Etapa adulta: relativamente estable, con pocos cambios en los atributos, principalmente debido a algunos eventos aleatorios que afectan los atributos.
  • Vejez: la aptitud física, la apariencia y la inteligencia se degradarán significativamente y, con la edad, el riesgo de enfermedad y muerte aumentará gradualmente.

Ahí es cuando podemos usar nuestra imaginación, escribir algunas experiencias de vida razonables y desencadenar estos eventos en las condiciones adecuadas.

generación de experiencia de vida

Aquí tomamos la infancia como ejemplo para demostrar brevemente la lógica de procesamiento:

  • Use un ciclo for para realizar un ciclo del 1 al 10 según la edad, y cada ciclo genera experiencias de vida correspondientes a la edad.
  • Antes de generar la experiencia de vida de cada año, se genera un número aleatorio (que actúa como un factor aleatorio en la vida), y se desencadenan diferentes eventos según el número aleatorio obtenido, así como el género, la edad y diversos atributos del personaje.
  • Después de que se activen diferentes eventos, puede tener un impacto positivo o negativo en los atributos del personaje, por lo que cada atributo del personaje cambiará continuamente con la activación del evento.
  • Al final del año se imprimen los eventos desencadenados, para mayor comodidad de observación también se pueden imprimir los atributos de los caracteres posteriores al año.

el código se muestra a continuació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(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 >= 7 and age >= 6:
            info += '你的父母把你送到更好的学校学习'
            iq += 1
        elif 4 <= home <= 6:
            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:
            info += '这一年没有特别的事情发生'
    # 打印这一年发生的事情
    print(info)
    print(f'颜值: {
      
      face}, 体制: {
      
      strong}, 智力: {
      
      iq}, 家境: {
      
      home}')
    print('---------------------------------------------')
    # 为了方便观察, 加一个sleep
    time.sleep(2)

Explique:

  • La salida utilizada en el código es una función en el módulo sys. Si el personaje muere debido a la activación de ciertos eventos, sys.exit(退出码)se puede salir del programa directamente de la misma manera.
  • El sueño utilizado en el código es una función en el módulo de tiempo.Para facilitar la observación de la experiencia de vida generada, time.sleep(秒数)el programa se puede pausar durante unos segundos de alguna manera.

Mostrar resultados

inserte la descripción de la imagen aquí
Explique:

  • Dado que la experiencia de vida escrita en el código actual todavía es relativamente pequeña y el número aleatorio es solo 1-3, la aleatoriedad de la experiencia de vida generada es relativamente pobre y solo hay unos pocos eventos generados. experiencia de vida generada Si la experiencia es más aleatoria y más rica, es necesario aumentar el rango de generación de números aleatorios y escribir más experiencias de vida para desencadenar.
  • Además, la generación de experiencias de vida en la juventud, la madurez y la vejez es la misma que en la infancia, por lo que no se implementará aquí. Los bloggers con mucha imaginación pueden escribir las suyas propias, pero los bloggers piensan que el propósito aquí es familiarizarse. con la gramática de Python, tiene poco sentido seguir escribiendo otras etapas de la experiencia de vida.

Supongo que te gusta

Origin blog.csdn.net/chenlong_cxy/article/details/127487860
Recomendado
Clasificación