Estoy tratando de crear un juego de texto simple en Python 3. No hay módulos especiales ni nada, soy totalmente nuevo en python. Es un juego de aventuras donde las elecciones que haces impactan la historia.

Necesito ayuda con mi "medidor de karma" y cómo podría hacerlo. Estoy pensando que la forma más fácil de hacerlo es tener una variable que es en este caso para los personajes principales amada esposa, llamada "belovedMeter". Y en base a la respuesta dada, los amantes de la barra de 50 a quizás 30 o algo así.

Entonces, el ejemplo es que la respuesta 3 daría menos 20 puntos al metro. La pregunta es ¿cómo puedo lograr eso? Cuando uso input, registra mi respuesta como una "cadena" y no sé si eso importa o no.

Necesito algunos consejos sobre cómo hacer esto de manera eficiente. Voy a repetir esto muchas veces en mi código.

Soy bastante nuevo en programación, así que ya sabes. Aquí está mi primer "pensamiento" sobre el código en sí:

while answer1 != "1" and answer1 != "2" and answer1 != "3": #Check if a valid answer is given.
print("1: yo")
print("2: hey")
print("3: Stfu!!")
answer1 = input("Please choose an answer (pick 1-3)")

belovedMeter = 50
-1
Filip 28 feb. 2018 a las 15:09

3 respuestas

La mejor respuesta

Aquí hay una versión funcional de su código:

answer1 = "" # You need to set your variable first

while answer1 not in ["1","2","3"]: # Shortened version of your if-statement 
    print("1: yo")
    print("2: hey")
    print("3: Stfu!!")
    answer1 = input("Please choose an answer (pick 1-3)")

# An easy method to find the point(s) without if-statement:
points = {"1": 50, "2": 30, "3": -20} 

belovedMeter = 50 + points[answer1]

print("Your current belovedMeter:", belovedMeter)

Salida:

1: yo
2: hey
3: Stfu!!
Please choose an answer (pick 1-3)1
Your belovedMeter: 100

Espero que esto ayude. :)

1
zeet 28 feb. 2018 a las 12:31

Puedes hacer algo como esto:

belovedMeter = 50

while answer1 != "1" and answer1 != "2" and answer1 != "3": #Check if a valid answer is given.
    print("1: yo")
    print("2: hey")
    print("3: Stfu!!")
    answer1 = input("Please choose an answer (pick 1-3)")
if answer1 == "1":
    belovedMeter = belovedMeter + 10    # Add 10 to the belovedMeter
if answer1 == "2":
    belovedMeter = belovedMeter + 20    # Add 20 to the belovedMeter
if answer1 == "3":
    belovedMeter = belovedMeter - 20    # Remove 20 from the belovedMeter

El hecho de que la respuesta se guarde como una cadena realmente no importa. Simplemente significa que es una cadena de personajes. Sin embargo, si desea guardarlo como un número, puede hacer esto:

answer1 = int(input("Please choose an answer (pick 1-3)"))

La función int transforma una cadena en un número (si se puede transformar) Además, observe la sangría después de while y if. La sangría es necesaria para que la computadora entienda qué parte del código está en qué sección (por ejemplo, las 4 líneas después de while se consideran DENTRO del tiempo y todo lo demás, FUERA de while)

Luego, las declaraciones if se usan para verificar si algo es Verdadero o Falso. Si es Verdadero, las líneas sangradas debajo se ejecutarán en el programa. Y si es False, las líneas sangradas no se ejecutarán. Y en lo que respecta al medidor amado, para cambiar su valor, solo tiene que hacer esto:

belovedMeter = belovedMeter + x

O

belovedMeter += x    # Same thing as above.

Donde x es y entero que desea agregar o restar al medidor amado

0
Saauan 28 feb. 2018 a las 12:29

Busque declaraciones if / else. Son un poco cruciales para la programación.

answer = int(input(""))
belovedMeter=50
if answer == 3:
    belovedMeter=-20
0
v0rtex 28 feb. 2018 a las 12:14