Los Juegos de Invierno de Scripting de 2008

Evento 8 de nivel avanzado: Hacer buena música

Importante: Una vez transcurrida la fecha límite para este evento, podrá encontrar las soluciones de VBScript, Windows PowerShell y Perl en el Script Center.

En "Hacer buena música", los participantes deben escribir un script que pueda compilar una lista de reproducción de música para grabar en un CD.

*
On This Page
Acerca de este eventoAcerca de este evento
Escenario del eventoEscenario del evento
Cómo participarCómo participar

Acerca de este evento

División

nivel avanzado

Fecha límite

Jueves, 28 de febrero de 2008 (08:00 a. m., hora del Pacífico)

Puntos concedidos

15

Top of pageTop of page

Escenario del evento

Los reproductores de música digitales son el futuro, sin duda, pero el futuro todavía no ha llegado; por lo tanto, mucha gente todavía quiere grabar sus archivos de música digitales en CD. El proceso de grabación es bastante fácil, lo difícil es decidir cuáles y cuántas canciones incluir en un solo CD. Pero esto ya no debería ser un problema; no, si puede dar con una solución para el Evento 8 de la división de nivel avanzado.

Para este evento, recibirá un archivo de texto (SongList.csv, que encontrará en el Paquete de Participantes de los Juegos de Scripting) que contiene información acerca de los diversos archivos de música digitales; cada línea del archivo de texto consiste en un nombre de canción, nombre de artista y duración de la canción (con el formato minutos:segundos).). Por ejemplo:

Rocky Raccoon,The Beatles,3:41
Honey Pie,The Beatles,2:41
I Saw Her Standing There,The Beatles,2:56

Su trabajo consiste en usar la información de ese archivo de texto para crear una lista de reproducción de las canciones que (teóricamente al menos) se van a grabar finalmente en el CD de música.

Nota:. Sólo tiene que crear la lista de reproducción, no grabar realmente las canciones en el CD. Ni deseamos que lo haga, puesto que nuestro proceso de prueba acabaría siendo eterno si lo hiciésemos así.

Entonces, ¿cuál es el truco? De hecho, hay un par de ellos. En primer lugar, debemos optimizar la cantidad de música que aparece en la lista de reproducción; en consecuencia, el tiempo total de música debe ser de 75 minutos como mínimo, pero nunca superior a 80 minutos. Es decir, si la duración de todas las canciones de su lista de reproducción asciende a 82 minutos y 45 segundos, no obtendrá ninguna puntuación por este evento.

En segundo lugar, su lista de reproducción sólo puede incluir, a lo sumo, dos canciones del mismo artista. Si su lista de reproducción ya incluye Rocky Raccoon y Honey Pie de los Beatles, entonces no puede agregar otra canción de los Beatles, ya que, si lo hace, quedará descalificado. Dos canciones por artista, como máximo.

No es necesario decir que hay varias soluciones posibles para completar este evento. Eso significa que no es necesario dar con la solución exacta, ya que, a fin de cuentas, no existe dicha solución. Sólo asegúrese de crear (y visualizar) una lista de canciones y la duración total de todas las canciones. Por ejemplo:

The BeatlesRocky Raccoon3:41
The BeatlesHoney Pie2:41

Total music time: 6:22

Por supuesto, este ejemplo no sería válido porque la duración total de todas las canciones es inferior a 75 minutos. Pero puede hacerse una idea de lo que hay que hacer.

Para completar este evento correctamente, coloque el archivo SongList.csv en la carpeta C:\Scripts. Si su script usa otra carpeta diferente de C:\Scripts, generará un error. El script deberá devolver el nombre del artista, el nombre de la canción y la duración de ésta en el formato m:s, donde m representa el número de minutos y s representa el número de segundos. Tenga en cuenta que los segundos deben representarse mediante dos dígitos; por ejemplo, la duración de una canción de 3 minutos y 9 segundos debe visualizarse tal como se muestra a continuación:

3:09

Al final de la lista, debe notificar la duración total del disco, usando también el formato m:s. Recuerde que la duración total debe ser o mayor o igual a 75 minutos, pero o menor o igual a 80 minutos.

Por supuesto, también necesitará clasificar la lista de reproducción alfabéticamente por el nombre de artista; eso nos facilitará la tarea de comprobar que la lista de reproducción no contenga más de dos canciones por artista. A continuación se muestra un ejemplo del tipo de resultado que su script debe obtener:

Alice Cooper    I'm Eighteen    2:58
Badfinger       Carry On Til Tomorrow   4:49
Badfinger       Day After Day   3:11
Credence Clearwater Revival     Have You Ever Seen the Rain?    2:39
Dire Straits    Walk of Life    4:12
Donovan Catch the Wind  5:02
George Harrison What is Life?   4:27
Jefferson Airplane      White Rabbit    2:34
Nick Cave and the Bad Seeds     Henry Lee       3:56
Nirvana All Apologies   3:50
Nirvana Heart-Shaped Box        4:41
Paul Simon      Mother and Child Reunion        2:48
Robert Palmer   Simply Irresistible     4:12
The Animals     House of the Rising Sun 4:31
The Bangles     Manic Monday    3:06
The Beatles     Back in the USSR        2:43
The Beatles     Honey Pie       2:41
The Kinks       Lola    4:05
The Ramones     I Wanna Be Sedated      2:29
The Rolling Stones      Anybody Seen My Baby?   4:07
The Rolling Stones      It's Only Rock and Roll 4:10

Total music time: 77:11

¡Buena suerte!

Top of pageTop of page

Cómo participar

Una vez que haya completado su script, haga clic en el vínculo correspondiente para enviar su participación:

VBScript de nivel avanzado

Windows PowerShell de nivel avanzado

Perl de nivel avanzado

Si el vínculo no abre automáticamente un mensaje con una dirección predeterminada, envíe un correo electrónico a scripter@microsoft.com y en el asunto del mensaje, escriba Advanced VBScript: Event 8; Advanced Windows PowerShell: Event 8; o Advanced Perl: Event 8.

Lo único que debe hacer es pegar su código en el cuerpo del mensaje y, a continuación, enviar el correo. También puede incluir los datos siguientes:

Un nombre o sobrenombre que podamos usar para identificarle al anunciar los ganadores de los Juegos de Scripting.

El nombre del país al que le gustaría representar. Puede ser su país de nacimiento o el país en el que viva actualmente, pero no tiene por qué ser así; puede representar al país que desee.

El nombre del grupo de usuarios del que sea miembro. Esta información debe incluirse en caso de que su grupo de usuarios tome parte en la Prueba de Grupos de Usuarios.

Sólo necesita escribir estos datos en la parte superior del correo electrónico. Si lo hace así, su correo electrónico (suponiendo que esté enviando su participación para la división de VBScript) probablemente tendrá este aspecto:

Ken Myer
USA
Northern Iowa User Group

For i = 1 to 100
    Wscript.Echo i
Next

Top of pageTop of page