Sorteo en el departamento de IT

19/11/2010 11:52 pm

Con la escusa de que habíamos acumulado algo de merchandising de los distintos eventos en los que hemos participado, decidimos hacer un pequeño sorteo dentro del departamento de IT para ver quién se quedaba cada cosa. Cómo no, el sorteo no podía ser por los medios tradicionales, lease papelitos o piedra-papel-tijera, así que me aventuré a tirar unas líneas de python que resolvieran el problema de forma sencilla, aunque como veréis luego decidimos complicarlo un pelín más. El sorteo lo proyectamos en la tele que tenemos para la monitorización justo al lado del departamento:

La primera versión del código era realmente sencilla y muestra lo fácil que es hacer algo con python, simplemente declara un array de personas y otro de regalos, recorre los regalos y va eligiendo una persona de forma aleatoria como ganador de cada regalo y eliminando esa persona del array de personas:

sorteo-simple.py (Pincha sobre el enlace para ver o descargar el código)

Pero así quedaba un poco simplón por lo que añadí alguna opción más para hacerlo más interesante. La idea es que había gente que sólo estaba interesada en algunos regalos y tenía su orden de preferencia, así que modifiqué el código para que las tuviera en cuenta en caso de que te tocara un regalo a modo de Wish List:

sorteo-wish-list.py (Pincha sobre el enlace para ver o descargar el código)

Y por supuesto el código fue enviado a todos los participantes para que lo auditaran antes de su ejecución con el consiguiente debate de cómo se podría hacer mejor… además en el correo me colé y puse para vuestra audición y alguno quería ponerlo con el festival. Y claro, así no hay forma de hacer trampa, con lo que finalmente no me tocó ningún regalo cómo podéis ver si pincháis sobre la imagen de la tele, pero al menos me queda esta entrada del blog cómo recuerdo.

10 comentarios a “Sorteo en el departamento de IT”

Ismas ha escrito un comentario en 22/11/2010
Google Chrome 8.0.552.200 Linux
Google Chrome 8.0.552.200 Linux

#!/usr/bin/perl
my %prefs = ( Bolsa1 => [Roberto,Marcos,JoseManuel],
Bolsa2 => [Roberto,Marcos,JoseManuel],
Taza => [Roberto,Marcos,Jorge,Javier,JoseManuel],
Raton => [Roberto,David,Jorge,JoseManuel]
);
foreach $regalo (keys (%prefs)){
$ganador = $prefs{$regalo}[int(rand(5))] while (!$ganador | grep(/($ganador)/,@ganadores));
push(@ganadores,$ganador);
print “$ganador se lleva el/la $regalo!!\n”;
}

Javier ha escrito un comentario en 22/11/2010
Google Chrome 7.0.517.44 Ubuntu Linux
Google Chrome 7.0.517.44 Ubuntu Linux

jturegano@macondo:~/Code$ ./ismas.pl
Unrecognized character \xE2 in column 7 at ./ismas.pl line 12.

Javier ha escrito un comentario en 22/11/2010
Google Chrome 7.0.517.44 Ubuntu Linux
Google Chrome 7.0.517.44 Ubuntu Linux

Además el resultado depende de cómo ordenes los regalos al inicializar…

Miguel ha escrito un comentario en 22/11/2010
Google Chrome 7.0.517.44 Ubuntu Linux
Google Chrome 7.0.517.44 Ubuntu Linux

Hombre, Javier, reemplaza las comillas del “print” final, que wordpress te las formatea y por eso casca. 😉

Javier ha escrito un comentario en 22/11/2010
Google Chrome 7.0.517.44 Ubuntu Linux
Google Chrome 7.0.517.44 Ubuntu Linux

Jajajaja, cierto, aún así no es lo mismo. 😉

ismas ha escrito un comentario en 23/11/2010
Mozilla Firefox 3.6.12 Ubuntu Linux
Mozilla Firefox 3.6.12 Ubuntu Linux

El wordpress te cambia las comillas a cosas mucho más chulas. Cambiad las comillas por comillas como Knutz manda.

ismas ha escrito un comentario en 23/11/2010
Mozilla Firefox 3.6.12 Ubuntu Linux
Mozilla Firefox 3.6.12 Ubuntu Linux

por cierto, int(rand(6)) o JoseManuel nunca se llevará la taza.

ismas ha escrito un comentario en 23/11/2010
Mozilla Firefox 3.6.12 Ubuntu Linux
Mozilla Firefox 3.6.12 Ubuntu Linux

Miento, el array empieza en cero. Menuda empanada llevo

Coleen Sosa ha escrito un comentario en 23/12/2010
Internet Explorer 6.0 Windows XP
Internet Explorer 6.0 Windows XP

jturegano@macondo:~/Code$ ./ismas.pl Unrecognized character \xE2 in column 7 at ./ismas.pl line 12.

David Gómez ha escrito un comentario en 2/4/2011
Google Chrome 10.0.648.204 Windows 7
Google Chrome 10.0.648.204 Windows 7

¡¡Jajajajaja!! Curiosa forma de hacer un sorteo practicando Python. Es lo que tenemos los informáticos, que sólo pensamos en binario! 🙂