Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2015, 16:23
Karen_L
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Topten juego python

Hola buenas tardes, estoy creando mi primer juego y necesito ponerle un topten. Primero había logrado que aparecieran los jugadores con su puntaje pero al moverle para querer ordenarlo ya no me sale nada lo deje peor.

Código Python:
Ver original
  1. f= open("C:\Users\Personal\Desktop\Top.txt","r")
  2.       print f.read()
  3.       f.close()
  4.       lineas=[]
  5.       f= open("C:\Users\Personal\Desktop\Top.txt","r")
  6.       x=f.readline()
  7.       contador = 0
  8.       contadorGanador = 0
  9.       encontroGanador = 0
  10.       while (x!=""):
  11.         lineas.append(x)
  12.         #SEparamos lineas
  13.         lineaSeparada=x.split(" ")
  14.         #Obtenemos nombre
  15.         nombre=lineaSeparada[0]
  16.         #Obtenemos puntos
  17.         puntos1 = int(lineaSeparada[1])
  18.         #Si el nombre es igual al ganador sumamos
  19.         print "NOMBRE SEL: "+nombre
  20.         print "NOMBRE ganador: "+nombreganador
  21.         if nombreganador == nombre:
  22.             contadorGanador = contador
  23.             puntos2 = puntos1+1
  24.             lineas[contador]=nombre+" "+str(puntos2)+"\n"
  25.             print "Tenia %i puntos y ahora tiene %i puntos"%(puntos1,puntos2)
  26.             encontroGanador = 1
  27.         x=f.readline()
  28.         contador= contador+1
  29.       print lineas
  30.  
  31.       if(encontroGanador == 0):
  32.         lineas.append("\n"+nombreganador+" "+str(1))
  33.  
  34.       print "GANADOR: "+nombreganador+"  PUNTOS NUEVOS= "+lineas[contadorGanador]
  35.       f= open("C:\Users\Personal\Desktop\Top.txt","w")
  36.       for linea in lineas:
  37.         f.write(linea)
  38.       f.close()
  39.  
  40. Esto es lo que tengo y tengo otro programa hecho para ordenar arreglos.
  41. s=f.read()
  42. s=[["Luz", 12],["Alexa",8],["Vero", 15],["Karina",9],["Luis",13],["Pablo",7]
  43. print s
  44. for i in range (0,len(s)-1):
  45.     for j in range(i+1,len(s)):
  46.         if (s[i][1]<s[j][1]):
  47.             n=s[i][0]
  48.             v=s[i][1]
  49.             s[i][0]=s[j][0]
  50.             s[i][1]=s[j][1]
  51.             s[j][0]=n
  52.             s[j][1]=v
  53. print s
  54. n="Luz"
  55. encontrado=0
  56. for i in range(0,len(s)):
  57.     if (s[i][0]==n):
  58.         s[i][1]=s[i][1]+1
  59.         encontrado=1
  60.         break
  61. if (encontrado==0):
  62.     d=[n,1]
  63.     s.append(d)
  64. else:
  65.     for i in range (0,len(s)-1):
  66.         for j in range(i+1,len(s)):
  67.             if (s[i][1]<s[j][1]):
  68.                 n=s[i][0]
  69.                 v=s[i][1]
  70.                 s[i][0]=s[j][0]
  71.                 s[i][1]=s[j][1]
  72.                 s[j][0]=n
  73.                 s[j][1]=v
  74. print s
  75. n="Faby"
  76. encontrado=0
  77. for i in range(0,len(s)):
  78.     if (s[i][0]==n):
  79.         s[i][1]=s[i][1]+1
  80.         encontrado=1
  81.         break
  82. if (encontrado==0):
  83.     d=[n,1]
  84.     s.append(d)
  85. else:
  86.     for i in range (0,len(s)-1):
  87.         for j in range(i+1,len(s)):
  88.             if (s[i][1]<s[j][1]):
  89.                 n=s[i][0]
  90.                 v=s[i][1]
  91.                 s[i][0]=s[j][0]
  92.                 s[i][1]=s[j][1]
  93.                 s[j][0]=n
  94.                 s[j][1]=v
  95. print len(s)
  96. if(len(s)>10):
  97.     x=10
  98. else:
  99.     x=len(s)
  100. i=0
  101. while(i<x):
  102.     print s[i]
  103.     i=i+1
El punto es que me pidiera el nombre del ganador para sumarle un punto y que se fije si el nombre aparece en el archivo, si no para agregarlo y luego que ordene a los jugadores, del que tiene más puntos al que tiene menos y que solo aparezcan los 15 más altos.
Ya no sé que hacer con esto, les agradecería muchísimo su ayuda.

Última edición por razpeitia; 09/05/2015 a las 18:33