Cómo hacer un juego de preguntas en Python (con imágenes)

Tabla de contenido:

Cómo hacer un juego de preguntas en Python (con imágenes)
Cómo hacer un juego de preguntas en Python (con imágenes)

Video: Cómo hacer un juego de preguntas en Python (con imágenes)

Video: Cómo hacer un juego de preguntas en Python (con imágenes)
Video: 🐍🐍Como CREAR una CUENTA REGRESIVA en 🐍🐍PYTHON🐍🐍 con CICLO FOR 2024, Abril
Anonim

Si desea aprender Python, es bueno comenzar con algunos juegos simples basados en texto. Este artículo le mostrará cómo hacer un juego de preguntas.

Pasos

947361 1
947361 1

Paso 1. Instale Python si aún no lo ha hecho

Hay dos versiones principales de Python: Python 2 y Python 3. No son intercambiables y el soporte para Python 2 finalizará en 2020, por lo que este artículo asumirá que instalas Python 3.

947361 2
947361 2

Paso 2. Abra un nuevo archivo en un editor de texto o en su IDE de Python

Déle un nombre descriptivo que termine en.py.

947361 3
947361 3

Paso 3. Importe la biblioteca aleatoria

Lo necesitará para organizar aleatoriamente las posibles respuestas.

947361 4
947361 4

Paso 4. Defina una clase "QA"

Un "QA" consistirá en una pregunta y una respuesta correcta, y una lista de posibles otras respuestas. La función _init _ () se llamará siempre que cree un nuevo objeto QA con la función QA (), y sus argumentos se pasarán al atributo correspondiente. Escribe:

class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = pregunta self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Paso 5. Cree una lista de controles de calidad

Piense en algunas preguntas con una respuesta correcta y otras incorrectas. Cree objetos de control de calidad a partir de cada uno y colóquelos en una lista. Dado que la lista será bastante larga, puede dividirla en varias líneas para una mejor legibilidad. Todo esto se hace con el siguiente código (su texto podría ser diferente):

qaList = [QA ("¿Dónde está Minsk?", "en Bielorrusia", ["en Rusia", "una ciudad así no existe"]), QA ("¿Cuál es la capital de Australia?", "Canberra", ["Sydney", "Nueva York", "Australia no existe"]), QA ("¿Cuál de los siguientes no está en la Tierra?", "Mar de la Tranquilidad", ["Mar Mediterráneo", "Mar Báltico "," Mar del Norte "]), QA (" ¿Cuál de los siguientes no es un continente? "," Ártico ", [" Antártida "," América "]), QA (" ¿Cuál de los siguientes no es un país africano? ? "," Malasia ", [" Madagascar "," Djibouti "," Sudáfrica "," Zimbabwe "])]

947361 6
947361 6

Paso 6. Agregue una variable que cuente cuántas respuestas fueron correctas

Póngalo en cero al principio. Agrega la línea:

corrCount = 0

947361 7
947361 7

Paso 7. Mezcle la lista de control de calidad

Esto hará que sus preguntas aparezcan en un orden aleatorio. Esto se hace con la siguiente función:

random.shuffle (qaList)

947361 8
947361 8

Paso 8. Haz un bucle

El programa debe repasar cada elemento de la lista y hacer algo con él. Crea un ciclo de este tipo con esta expresión:

para qaItem en qaList:

947361 9
947361 9

Paso 9. Envíe cada pregunta

Después de la expresión de bucle, escribe la línea:

imprimir (qaItem.question)

947361 10
947361 10

Paso 10. Genere todas las respuestas posibles

Deben aparecer en un orden aleatorio para que la respuesta correcta no siempre esté en la misma posición. Además, deben estar precedidos por un número para que el usuario no tenga que ingresar la respuesta completa nuevamente. El siguiente código hace esto:

print ("Las respuestas posibles son:") posible = qaItem.otherAnsw + [qaItem.corrAnsw] # los corchetes convierten la respuesta correcta en una lista para la concatenación con otra lista random.shuffle (posible) count = 0 # los índices de la lista comienzan en 0 en Python while count <len (posible): print (str (count + 1) + ":" + posible [count]) count + = 1

947361 11
947361 11

Paso 11. Tome la entrada del usuario

Primero, dígale al usuario que debe ingresar el número de su. Luego, verifique si lo que ingresó el usuario es realmente un número que se corresponde con una respuesta. Si no es así, dígaselo al usuario nuevamente. Use este código (fuera del bucle while que creó para la salida):

print ("Ingresa el número de tu respuesta:") userAnsw = input () while not userAnsw.isdigit (): print ("Ese no era un número. Ingresa el número de tu respuesta:") userAnsw = input () userAnsw = int (userAnsw) while not (userAnsw> 0 y userAnsw <= len (posible)): print ("Ese número no corresponde a ninguna respuesta. Ingresa el número de tu respuesta:") userAnsw = input ()

947361 12
947361 12

Paso 12. Verifique si la respuesta del usuario fue correcta

Para ello, obtenga el texto de la respuesta para la cual el usuario ingresó un número y compárelo con el texto de la respuesta correcta. Si son iguales, la respuesta del usuario fue correcta y la variable corrCount debería incrementarse en 1. De lo contrario, está mal y se le debería decir al usuario la respuesta correcta. Finalmente, imprima una línea vacía para agregar algo de espacio a la siguiente pregunta. Ingrese el siguiente código:

si es posible [userAnsw-1] == qaItem.corrAnsw: print ("Tu respuesta fue correcta") corrCount + = 1 else: print ("Tu respuesta fue incorrecta") print ("La respuesta correcta fue:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Paso 13. Genere una conclusión

Al final, el usuario probablemente quiera saber cuántas preguntas ha respondido correctamente. Entonces dígales agregando la siguiente expresión fuera del bucle for:

print ("Respondiste" + str (corrCount) + "de" + str (len (qaList)) + "preguntas correctamente.")

947361 14
947361 14

Paso 14. Verifique su código

Preste especial atención a la sangría. Su código completo debería verse así ahora:

import random class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = pregunta self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("¿Dónde está Minsk?", "en Bielorrusia", ["en Rusia", "esa ciudad no existe"]), QA ("¿Cuál es la capital de Australia?", "Canberra", ["Sydney", "Nueva York", "Australia no existe"]), QA ("¿Cuál de los siguientes no está en la Tierra?", "Mar de la tranquilidad", ["Mar Mediterráneo", "Mar Báltico", "Mar del Norte"]), QA ("¿Cuál de los siguientes no es un continente? "," Ártico ", [" Antártida "," América "]), QA (" ¿Cuál de los siguientes no es un país africano? "," Malasia ", [" Madagascar "," Djibouti "," Sur Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Las posibles respuestas son: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # los corchetes convierten la respuesta correcta en una lista para concatenarla con otra lista aleatoria. aleatoria (posible) cuenta = 0 # los índices de la lista comienzan en 0 i n python while count <len (posible): print (str (count + 1) + ":" + posible [count]) count + = 1 print ("Ingresa el número de tu respuesta:") userAnsw = input () while not userAnsw.isdigit (): print ("Eso no era un número. Ingrese el número de su respuesta: ") userAnsw = input () userAnsw = int (userAnsw) mientras que no (userAnsw> 0 y userAnsw <= len (posible)): print (" Ese número no corresponde a ninguna respuesta. Ingrese el número de su respuesta: ") userAnsw = input () si es posible [userAnsw-1] == qaItem.corrAnsw: print (" Su respuesta fue correcta ") corrCount + = 1 else: print (" Su respuesta fue incorrecto. ") print (" La respuesta correcta fue: "+ qaItem.corrAnsw) print (" ") print (" Respondiste "+ str (corrCount) +" of "+ str (len (qaList)) +" preguntas correctamente. ")

947361 15
947361 15

Paso 15. Ejecute el código

Si está utilizando un IDE, haga clic en el símbolo o elemento de menú "Ejecutar". Si está utilizando un editor de texto, guarde su programa, cierre el editor y abra su programa con Python.

Consejos

  • Tenga cuidado con la sangría correcta. El código dentro de una función o definición de clase tiene sangría, al igual que el código dentro de un bucle. Un programa de Python con una sangría incorrecta no funcionará.
  • Presione Ctrl + C si desea interrumpir el juego y no terminarlo.
  • Si reemplaza cada llamada de input () con una llamada de raw_input (), este programa funcionará en Python 2, pero dejará de funcionar en Python 3.

Recomendado: