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 "Blackjack", los participantes deben escribir un script que reparta y juegue una única mano de Blackjack (o veintiuno).
| Acerca de este evento | |
| Escenario del evento | |
| Cómo participar |
División | nivel avanzado |
Fecha límite | Lunes, 3 de marzo de 2008 (08:00 a. m., hora del Pacífico) |
Puntos concedidos | 10 |
Para el evento final de la división de nivel avanzado, debe escribir un script que pueda repartir (y jugar) una única mano de Blackjack (también conocido como el veintiuno). Para cumplir con los fines de este evento, jugaremos a una versión simplificada de Blackjack, que incluye las siguientes reglas:
| • | No hay apuestas. (Lo sentimos, quizás el próximo año). |
| • | Todos los ases valen 11 puntos. Lo sabemos: en el Blackjack estándar, los ases pueden valer 1 u 11 puntos. Para el Evento 10, sin embargo, los ases sólo valdrán 11 puntos. (No deseamos hacer este evento demasiado complicado). |
| • | Todas las cartas de figuras (reyes, reinas y jotas) valen 10 puntos. |
| • | Todas las demás cartas equivalen a su valor nominal: el tres de picas vale 3 puntos, el 7 de diamantes vale 7 puntos, etc. |
| • | Los empates van a la banca. Supongamos que, al final de la mano, el jugador tiene 18 puntos y la banca tiene 18 puntos. En este caso, la banca se declara ganadora. |
Su script deberá empezar "barajando" una baraja estándar de cartas y luego repartir dos cartas al jugador y dos más a la banca. Como en el Blackjack normal, las dos cartas para el jugador deben repartirse "boca arriba"; es decir, ambas cartas deben destaparse:
Your cards: Seven of Spades Eight of Spades
Por el contrario, sólo debe destaparse una de las cartas de la banca:
Dealer's cards: Ace of Hearts
Nota:. Tenga en cuenta que denominamos las cartas por su nombre. No se trata de enumerar sólo los valores de las cartas de esta forma: 7 8 Esto hará que el script genere un error. Sea claro cuando enumere las cartas. |
De nuevo, de acuerdo con las reglas estándar del Blackjack, el jugador debería tener la opción de plantarse (jugar las dos cartas recibidas) o pedir otra carta (recibir otra carta). Es decir:
Stay (s) or hit (h) ?
Si el jugador elige "pedir otra carta", se le dará otra carta. Si la suma total de las tres cartas es más de 21, el jugador pierde automáticamente:
Stay (s) or hit (h) ?h Seven of Spades Eight of Spades Seven of Diamonds Over 21. Sorry, you lose.
Si la suma total es 21 o menos, el jugador tiene otra oportunidad de pedir otra carta o plantarse. Tan pronto como el jugador elige plantarse, la banca (el equipo) comprueba si sus puntos totales superan a los del jugador. Por ejemplo, supongamos que el jugador tiene el siete de picas y el ocho de picas; eso significa que el jugador tiene 15 puntos. Ahora supongamos que la banca tiene el as de corazones y el seis de diamantes. Eso significa que la banca tiene 17 puntos (11 + 6), lo que significa también que la banca gana automáticamente.
Ahora supongamos que el jugador tiene 16 puntos y que la banca tiene 13. En ese caso, la banca debe recibir otra carta. Analicemos las diversas posibilidades de esa siguiente carta:
| • | La banca recibe un dos, lo que le da 15 puntos. Como esto es menos que los 16 puntos del jugador, la banca tiene que volver a jugar. |
| • | La banca recibe un nueve, lo que le da 22 puntos. Como 22 es más que 21, la banca pierde. |
| • | La banca recibe un tres, lo que le da tanto a la banca como al jugador 16 puntos. Como el empate siempre es a favor de la banca, ésta gana automáticamente. |
Una mano completa podría ser así:
Your cards: King of Hearts Seven of Hearts Dealer's cards: Nine of Hearts Stay (s) or hit (h)?s You have 17. Nine of Hearts Seven of Diamonds Dealers' cards: Nine of Hearts Seven of Diamonds Five of Diamonds The dealer has 21. Sorry, you lose.
¿Lo ha entendido? No debería resultar demasiado difícil, especialmente para alguien que tuvo éxito en los primeros nueve eventos.
Tenga en cuenta que es perfectamente aceptable (de hecho, preferible) que esta mano de Blackjack tenga lugar en la ventana de comandos. Sin embargo, aceptaremos versiones gráficas (como, por ejemplo, una aplicación HTML). Sólo debe recordar que cualquier versión gráfica está limitada a los tres lenguajes de los Juegos de Scripting: VBScript, Windows PowerShell y Perl.
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 10; Advanced Windows PowerShell: Event 10; o Advanced Perl: Event 10.
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