From 777829d47815ab15f9fdf4bc026ff39d0de6e3ba Mon Sep 17 00:00:00 2001 From: KontrolDev Date: Mon, 26 Jun 2023 06:34:56 +0200 Subject: [PATCH] Reto #25 - Swift --- .../swift/kontroldev.swift" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "Retos/Reto #25 - EL C\303\223DIGO KONAMI [Media]/swift/kontroldev.swift" diff --git "a/Retos/Reto #25 - EL C\303\223DIGO KONAMI [Media]/swift/kontroldev.swift" "b/Retos/Reto #25 - EL C\303\223DIGO KONAMI [Media]/swift/kontroldev.swift" new file mode 100644 index 0000000000..2c9106ec2a --- /dev/null +++ "b/Retos/Reto #25 - EL C\303\223DIGO KONAMI [Media]/swift/kontroldev.swift" @@ -0,0 +1,50 @@ +/* + * Crea un programa que detecte cuando el famoso "Código Konami" se ha introducido correctamente + * desde el teclado. Si sucede esto, debe notificarse mostrando un mensaje en la terminal. + */ + +import Foundation + +// Secuencia del código Konami +let konamiCode: [String] = ["⬆️", "⬆️", "⬇️", "⬇️", "⬅️", "➡️", "⬅️", "➡️", "B", "A"] + +// Variables para realizar el seguimiento del código ingresado +var currentInput: [String] = [] +var currentIndex = 0 + +// Función para verificar si se ha ingresado el código completo +func checkKonamiCode() { + if currentInput == konamiCode { + print("¡Código Konami introducido correctamente!") + } else { + print("Código incorrecto. Inténtalo de nuevo.") + currentInput.removeAll() + currentIndex = 0 + } +} + +// Función para procesar las teclas ingresadas por el usuario +func processKey(_ key: String) { + if key == konamiCode[currentIndex] { + currentInput.append(key) + currentIndex += 1 + + if currentIndex == konamiCode.count { + checkKonamiCode() + } + } else { + print("Código incorrecto. Inténtalo de nuevo.") + currentInput.removeAll() + currentIndex = 0 + } +} + +// Iniciar la lectura de teclas +print("Introduce el Código Konami:") + +while currentIndex < konamiCode.count { + if let key = readLine(strippingNewline: true) { + processKey(key) + } +} +