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.
| Acerca de este evento | |
| Escenario del evento | |
| Cómo participar |
División | nivel avanzado |
Fecha límite | Jueves, 28 de febrero de 2008 (08:00 a. m., hora del Pacífico) |
Puntos concedidos | 15 |
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!
Una vez que haya completado su script, haga clic en el vínculo correspondiente para enviar su participación:
| • | |
| • | |
| • |
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