09/05/2015, 16:08
|
| | Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses Puntos: 0 | |
Respuesta: Imagen Tkinter Hola estoy intenando crear un topten en python:
f= open("C:\Users\Personal\Desktop\Top.txt","r")
print f.read()
f.close()
lineas=[]
f= open("C:\Users\Personal\Desktop\Top.txt","r")
x=f.readline()
contador = 0
contadorGanador = 0
encontroGanador = 0
while (x!=""):
lineas.append(x)
#SEparamos lineas
lineaSeparada=x.split(" ")
#Obtenemos nombre
nombre=lineaSeparada[0]
#Obtenemos puntos
puntos1 = int(lineaSeparada[1])
#Si el nombre es igual al ganador sumamos
print "NOMBRE SEL: "+nombre
print "NOMBRE ganador: "+nombreganador
if nombreganador == nombre:
contadorGanador = contador
puntos2 = puntos1+1
lineas[contador]=nombre+" "+str(puntos2)+"\n"
print "Tenia %i puntos y ahora tiene %i puntos"%(puntos1,puntos2)
encontroGanador = 1
x=f.readline()
contador= contador+1
print lineas
if(encontroGanador == 0):
lineas.append("\n"+nombreganador+" "+str(1))
print "GANADOR: "+nombreganador+" PUNTOS NUEVOS= "+lineas[contadorGanador]
f= open("C:\Users\Personal\Desktop\Top.txt","w")
for linea in lineas:
f.write(linea)
f.close()
eso es lo que tengo, en un principio si me salia pero le movi para intentar ordenar del jugador que tiene mas puntos al que tiene menos y ahora nada. Encontre que con algo como esto se ordena:
s=f.read()
s=[["Susana", 10],["Wendy",8],["Karla", 15],["Fernanda",5],["Roberto",12]
print s
for i in range (0,len(s)-1):
for j in range(i+1,len(s)):
if (s[i][1]<s[j][1]):
n=s[i][0]
v=s[i][1]
s[i][0]=s[j][0]
s[i][1]=s[j][1]
s[j][0]=n
s[j][1]=v
print s
n="Pedro"
encontrado=0
for i in range(0,len(s)):
if (s[i][0]==n):
s[i][1]=s[i][1]+1
encontrado=1
break
if (encontrado==0):
d=[n,1]
s.append(d)
else:
for i in range (0,len(s)-1):
for j in range(i+1,len(s)):
if (s[i][1]<s[j][1]):
n=s[i][0]
v=s[i][1]
s[i][0]=s[j][0]
s[i][1]=s[j][1]
s[j][0]=n
s[j][1]=v
print s
n="Pedro"
encontrado=0
for i in range(0,len(s)):
if (s[i][0]==n):
s[i][1]=s[i][1]+1
encontrado=1
break
if (encontrado==0):
d=[n,1]
s.append(d)
else:
for i in range (0,len(s)-1):
for j in range(i+1,len(s)):
if (s[i][1]<s[j][1]):
n=s[i][0]
v=s[i][1]
s[i][0]=s[j][0]
s[i][1]=s[j][1]
s[j][0]=n
s[j][1]=v
print len(s)
if(len(s)>10):
x=10
else:
x=len(s)
i=0
while(i<x):
print s[i]
i=i+1
Pero no sé como juntarlo a mi programa ni cómo queden solo los primeros 15, agradecería muchisimo su ayuda, que es mi primer juego con Python. |