Hacer preguntas
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 50 de 56.
La primera funcionalidad: hacer cada pregunta en orden e imprimir si cada respuesta fue correcta.
El banco de preguntas está predefinido para esta lección, las respuestas del jugador provienen de stdin (una por línea, en orden).
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}Lee de arriba a abajo: imprime la pregunta, lee una línea, compara. La siguiente lección suaviza esa comparación estricta para que no falle por el uso de mayúsculas o espacios en blanco adicionales.
Desafío
FácilSe proporciona el banco de questions. Lee tres líneas desde stdin (las respuestas del jugador, en orden). Para cada pregunta, imprime:
- El texto de la pregunta en su propia línea
correctcuando la respuesta dada sea exactamente igual a la respuesta almacenada, de lo contrariowrong
Después de las tres preguntas, imprime Score: <n>/3 con el recuento de respuestas correctas.
Para la entrada 4 / Paris / red, la salida es:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Hoja de referencia
Itera sobre un array de tuplas de preguntas, lee las respuestas desde stdin y compara:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
var score = 0
for (_, text, answer) in questions {
print(text)
let given = readLine()!
if given == answer {
print("correct")
score += 1
} else {
print("wrong")
}
}
print("Score: \(score)/\(questions.count)")Pruébalo tú mismo
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: para cada pregunta, imprimir texto, leer respuesta, imprimir correcto/incorrecto;
// luego imprimir 'Score: <n>/3'
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras