Created
March 12, 2012 02:54
-
-
Save categulario/2019431 to your computer and use it in GitHub Desktop.
Elección aleatoria de equipos y usuarios para una clase de cálculo, con soporte de cambios
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#eleccion.py | |
""" | |
Este script soporta ser reiniciado varias veces, guardando los cambios cada vez | |
""" | |
from random import shuffle, choice | |
if __name__ == "__main__": | |
print "+--------------------------------+" | |
print "! Sistema de eleccion !" | |
print "! Aleatoria !" | |
print "+--------------------------------+" | |
try: | |
#Es posible que el archivo no exista y podria causar errores | |
f = file( "eleccion.dat" ) #Leemos el archivo | |
lineas = f.readlines() #Lo partimos en lineas | |
# En la primera linea estan el numero de equipos y el de ejercicios | |
# separados por un espacio | |
n_equipos = int( lineas[0][0:-1].split(" ")[0] ) | |
n_ejercicios = int( lineas[0][0:-1].split(" ")[1] ) | |
prev_usados = lineas[1][:-1].split(" ") | |
ejercicios = range(1, n_ejercicios + 1) | |
usados = [] | |
for i in prev_usados: | |
usados.append(int(i)) | |
ejercicios.remove(int(i)) | |
except Exception, (strerror): | |
print "Error (%s)" % (strerror) | |
# El archivo no existe, asi que obtenemos la informacion | |
n_equipos = input("Cuantos equipos?: ") | |
n_ejercicios = input("Cuantos Ejercicios?: ") | |
ejercicios = range(1, n_ejercicios + 1) | |
usados = [] #Una lista para almacenar los ejercicios que ya pasaron | |
else: | |
# Esto solo se ejecuta si el try no tuvo problemas | |
# Solo queremos cerrar el archivo si se abrio | |
f.close() | |
equipos = range(1, n_equipos + 1) | |
print "Pulse enter para obtener una eleccion o escriba fin para salir" | |
shuffle(ejercicios) #Revolvemos la lista de ejercicios | |
while(ejercicios): | |
if raw_input() == "fin": | |
#Ya salimos, asi que vamos a guardar los cambios | |
try: | |
f = file("eleccion.dat", "w") #Abrimos el archivo para escritura | |
s = "" #vamos a hacer una cadena con los ejercicios usados | |
for i in usados: | |
s += str(i)+" " #Agregamos cada numero | |
s = s[:-1] #Quitamos el espacio en blanco final | |
f.write("%d %d\n%s"%(n_equipos, n_ejercicios, s)) | |
except Exception, (errno, strerror): | |
print "Error (%s): %s" % (errno, strerror) | |
print """Vaya! parece que no tienes permiso de escribir | |
en esta carpeta, sentimos el inconveniente""" | |
else: | |
f.close() | |
break | |
else: | |
usados.append(ejercicios.pop()) | |
print "Equipo", choice(equipos), "Ejercicio", usados[-1] | |
# En la instruccion anterior escojemos un equipo de forma aleatoria | |
# y tomamos el ultimo elemento de la lista de usados, recien | |
# aniadido | |
print "See you" | |
""" | |
FIN @Categulario | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment