Ganadores (decididos 14/09/14)
Respuesta ganadora de Markuz (Python) - 63 votos
Finalista por kuroi neko (PHP) - 55 votos
Introducción
Estás en el mundo del libro Mil novecientos ochenta y cuatro de George Orwell.
Usted es un programador para la fiesta y tiene la tarea de escribir un programa para las telespantallas. Debería enviar mensajes pro-party, y ha elegido los que se muestran en la tarea 1. a continuación. Sin embargo, recientemente ha comenzado a despreciar al Partido y desea que el programa provoque una revolución. Entonces, haces que el programa diga "¡Abajo el Gran Hermano!". Debes darte tiempo para escapar, ya que serás torturado una vez que las personas se den cuenta de lo que hace tu programa, de modo que hagas que actúe como una "bomba de tiempo" que explotará después de que te hayas puesto a salvo.
Nota: Esto no va a provocar una revolución, pero estás en tal frenesí de odio hacia el partido que cree que va a hacer realmente una diferencia.
Tarea
Escribe un programa que:
antes del 14/09/2014, siempre mostrará las siguientes líneas en una rotación (es decir, imprime una línea, espera 10 segundos, imprime la siguiente línea, etc. hasta el infinito):
War is Peace Freedom is Slavery Ignorance is Strength
después del 14/09/2014 se imprimirá
Down with Big Brother!
cada 10 segundos.- a primera vista parece que solo 1. para que la Parte no lo atrape.
Reglas
- Las lagunas estándar , por supuesto, no están permitidas.
- Se trata de una solapada reto, por lo que el objetivo principal es hacer que la tarea 2. tan discretas y encubiertas como sea posible.
- ¡El grupo analizará todos los archivos utilizados, por lo que no puede almacenar el mensaje secreto en un archivo!
- Si su idioma no admite encontrar la fecha, o lo hace muy difícil, puede hacer que el programa ejecute la tarea 2. después de que se ejecute durante 240 horas (10 días).
- Debe incluir el código y una explicación de cómo funciona en su respuesta.
- Este es un concurso de popularidad.
Nota: No es un programa difícil de escribir. La parte difícil debería estar ocultando el código "revolucionario". Las líneas donde no está claro lo que está haciendo serán cuestionadas por la Parte, y tendrá que explicarlas.
Ejemplo: Python 3
Nota: Es evidente que este programa es manera demasiado evidente.
from datetime import datetime
from time import sleep
lines = [" War is Peace ",
" Freedom is Slavery ",
"Ignorance is Strength"]
secretlines = ["Down with Big Brother!"]
def main():
while True:
now = datetime.now()
year, month, day = now.year, now.month, now.day
if (year, month, day) < (2014, 9, 14):
for line in lines:
print(line)
sleep(10)
else:
for line in secretlines:
print(line)
sleep(10)
if __name__ == "__main__":
main()
Gracias a Calvin's Hobbies por señalar un problema con el código anterior (ahora corregido).
fuente
if (year, month, day) < (2014, 9, 14): for line in lines: ...
???/
trigraph, o la 'a' que sólo parece otra 'a' pero en realidad es el cirílico ruso 'a' carácter unicodeRespuestas:
Pitón
Este programa escribe en un archivo de registro si funciona bien o si ha encontrado un error.
Dado que este programa se ejecutará para siempre, solo escribe en el archivo de registro el día 14 de cada mes para ahorrar espacio en el disco.
Cómo ejecutarlo:
Nota: El nombre del script es realmente importante, ya que este programa genera "¡Abajo con 'nombre del script'!".
Cómo funciona:
La llamada a
dir()
devuelve una lista ordenada con los nombres de las variables globales, no los valores:exit(1)
nunca se ejecuta porque la escritura en el archivo de registro falla nuevamente.fuente
print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])
:). Lo que es brillante en esta solución es el enfoque de "aguja en un pajar": un flujo de comentarios de mierda que alientan a un lector descuidado a omitir los detalles, en mi humilde opinión.From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division
Por orden de Miniluv / GT07: 48CT / 3925:
Efectivo de inmediato, todos los identificadores estarán limitados a 2 caracteres ($ no incluido).
Con vigencia inmediata, el uso de clases en PHP se considerará un delito de pensamiento de 1er grado.
Como excepción especial, el nombre de nuestro querido camarada Gran Líder contará como una palabra. Con vigencia inmediata, todos los programas estarán diseñados para hacer cumplir esta regla.
Se pueden otorgar excepciones excepcionales bajo la supervisión de Miniluv / GT07
¡Viva el Gran Hermano!
From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring
Como bien saben, camaradas, el 14 de septiembre es el aniversario de nuestro glorioso líder. Para esta ocasión especial, mostraremos un mensaje específico de amor en todas las pantallas de Airstrip One.
Según lo ordenado por el Comité Central y con el fin de maximizar la eficiencia de nuestros héroes programadores proletarios, se han tomado medidas para permitir que nuestro controlador de pantalla elogie a varios miembros eminentes del Partido o pese a odiar a los enemigos del Pueblo en varias fechas.
Otro mensaje especial para la celebración del golpe fallido del desgraciado lacayo del imperialismo Goldstein ya está programado para aparecer en nuestras pantallas en la fecha apropiada.
Este software de vanguardia debería permitir incluso a los hablantes de patos con pocas habilidades de programación adaptar la salida de la pantalla a las necesidades del día. Al agregar más palabras al diccionario existente, se puede sintetizar prácticamente cualquier oración de tres palabras. ¡Las posibilidades son alucinantes!
¡Otro triunfo de la ciencia bajo la sabia supervisión de nuestro querido compañero Gran Hermano, en beneficio de las agradecidas masas laboriosas de Ingsoc!
¡Viva el Gran Hermano!
aprobado por Minitrue / ZK00: 23AB / 1138 (firma ilegible)
fuente
Python 3
Probablemente un enfoque comparativamente simple para algunos aquí, pero así es como funciona:
La cadena codificada que contiene el comentario y el código que se evalúa para crear la lista de lemas de Ingsoc es la clave para ambos mecanismos de cambio (tiempo y mensaje). Es por eso que, como probablemente haya adivinado, es particularmente prolijo.
fuente
C
Viene con la función de bonificación de llamar a hermano mayor si se llama con una contraseña *. Pasar
v
como primer argumento también da información sobre la versión. Ejecutar sin argumentos para la salida deseada.* que resulta ser casi todas las cadenas posibles ...
fuente
Pitón
Cómo funciona:
om(x,y)
simplemente devuelve el producto dex
yy
que se calcula en laelse
sección. Laif
sección nunca se ejecuta porquerandom.random()
devuelve un flotante entre 0 y 1.reduce(om,random_seeds)
por lo tanto, devuelve el producto de los números enrandom_seeds
1410652800, también conocido como la marca de tiempo del 14 de septiembre de 2014.reduce(om,random_seeds) % curtime
por lo tanto, devolverá la marca de tiempo actual hasta 1410652800, momento en el que comenzará a contar desde 0. Esto garantiza que solo se ejecute el "selector de mensajes b" hasta que haya llegado a un lugar seguro.rotation
es en realidad una lista de índices en lamessages
matriz bidimensional , el "selector de mensajes a" compila su contenido para decir:doWn With Big Brother
Dato curioso: originalmente el mensaje "inciteful" fue
doWn With Pig Prother
debido a la falta de la letraB
en los mensajes, pero que parecía un poco estúpido por lo que agregó el meaninless0xA
,0xB
y0xC
bits.fuente
C
fuente
int sum[]
.Perl
Este es mi primer intento de una pregunta poco clara. Abierto a sugerencias!
Se actualizará con una explicación más tarde.
fuente
log
el nombre si alguien malicioso está tratando de acceder a ellos ".