elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Ayuda con Python en: 26 Mayo 2011, 02:19 am
Hola a todos.
Estoy haciendo un programa en python (el buttonmania).

Tengo el programa muy avanzado pero tengo un problema:

Tengo que meter la opcion de rankin, consigo crear un diccionario que guarda los diferente nombres y puntuaciones de lo jugadores pero no consigo que me los ordene por puntuacion (crea y va guardando los datos en un archivo de texto).

Se que tengo que usar el sort o sorted, pero buscando por google no me ha quedado nada claro como se utiliza para ordenarlo.

Teniendo que es mi primer programa "serio" en python me esta costando mucho xD

Os pongo mi codigo para que lo veais un poco, no seais muy duros que es mi primer programa y se que podria estar mucho mejor hecho... pero al menos funciona xD


Agradeceria mucho la ayuda con el sort ya que con eso estoy muy perdido...

No quiero que me lo arregleis sino que me deis informacion para aprender a usar el sort :)

Gracias por vuestro tiempo!
Código
  1. #!/usr/bin/env python
  2. # -*- coding: iso-8859-15 -*-
  3.  
  4.  
  5.  
  6. import os
  7. import time
  8. import random
  9.  
  10.  
  11.  
  12. def CrearMatriz():
  13.    matriz = []
  14.    for i in range (8):
  15.        matriz.append([0]*8)
  16.    return   matriz
  17.  
  18. def ImprimirMatriz(matriz):
  19.    for x in range(1,7):
  20.        for y in range(1,7):
  21.            print matriz[y][x],
  22.        print
  23.  
  24. def GolpeaMatriz(matriz, fila, columna):
  25.    if (matriz[fila][columna]>0):
  26.        matriz[fila][columna] = matriz[fila][columna]-1
  27.    else:
  28.        matriz[fila][columna] = 3
  29.  
  30.    if (matriz[fila-1][columna]>0):
  31.        matriz[fila-1][columna] = matriz[fila-1][columna]-1
  32.    else:
  33.        matriz[fila-1][columna] = 3
  34.  
  35.    if (matriz[fila+1][columna]>0):
  36.        matriz[fila+1][columna] = matriz[fila+1][columna]-1
  37.    else:
  38.        matriz[fila+1][columna] = 3
  39.  
  40.    if (matriz[fila][columna-1]>0):
  41.        matriz[fila][columna-1] = matriz[fila][columna-1]-1
  42.    else:
  43.        matriz[fila][columna-1] = 3
  44.  
  45.    if (matriz[fila][columna+1]>0):
  46.        matriz[fila][columna+1] = matriz[fila][columna+1]-1
  47.    else:
  48.        matriz[fila][columna+1] = 3
  49.  
  50.  
  51. def SumaMatriz(matriz, fila, columna):
  52.    if (matriz[fila][columna]<3):
  53.        matriz[fila][columna] = matriz[fila][columna]+1
  54.    else:
  55.        matriz[fila][columna] = 0
  56.  
  57.    if (matriz[fila-1][columna]<3):
  58.        matriz[fila-1][columna] = matriz[fila-1][columna]+1
  59.    else:
  60.        matriz[fila-1][columna] = 0
  61.  
  62.    if (matriz[fila+1][columna]<3):
  63.        matriz[fila+1][columna] = matriz[fila+1][columna]+1
  64.    else:
  65.        matriz[fila+1][columna] = 0
  66.  
  67.    if (matriz[fila][columna-1]<3):
  68.        matriz[fila][columna-1] = matriz[fila][columna-1]+1
  69.    else:
  70.        matriz[fila][columna-1] = 0
  71.  
  72.    if (matriz[fila][columna+1]<3):
  73.        matriz[fila][columna+1] = matriz[fila][columna+1]+1
  74.    else:
  75.        matriz[fila][columna+1] = 0
  76.  
  77.  
  78. def GeneraNivel(matriz, nivel):
  79.    for x in range(nivel*3):
  80.        fila = random.randint(1,6)
  81.        columna = random.randint(1,6)
  82.        SumaMatriz(matriz, fila, columna)
  83.    return matriz
  84.  
  85.  
  86.  
  87.  
  88. print
  89. matriz = CrearMatriz()
  90. ListaFila = []
  91. ListaColumna = []
  92. numerogolpes = 0
  93. print
  94. nombre = raw_input('Introduzca un nombre: ')
  95. print
  96. nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
  97. while (nivel < 1) or (nivel > 9):
  98.        nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
  99. matriz = GeneraNivel(matriz, nivel)
  100. print
  101. os.system('clear')
  102. ImprimirMatriz(matriz)
  103. print
  104. print
  105. tecla = raw_input('''(P) Introducir posicion          (S) Salir del juego
  106. (N) Nueva partida                (D) Deshacer movimiento
  107.  
  108.  
  109. Pulse una tecla: ''')
  110. while (tecla != 'S') or (tecla != 's'):
  111.    if (tecla == 'P') or (tecla == 'p'):
  112.        print
  113.        fila = int(raw_input('Introduzca una fila: '))
  114.        while (fila < 1) or (fila > 6):
  115.            fila = int(raw_input('Introduzca una fila: '))  
  116.        columna = int(raw_input('Introduzca una columna: '))
  117.        while (columna < 1) or (columna > 6):
  118.               columna = int(raw_input('Introduzca una columna: '))
  119.        GolpeaMatriz(matriz, columna, fila)
  120.        numerogolpes = numerogolpes + 1
  121.        ListaFila.append(fila)
  122.        ListaColumna.append(columna)
  123.        print
  124.        os.system('clear')
  125.        ImprimirMatriz(matriz)
  126.        puntuacion = float(numerogolpes/3*nivel)
  127.        exito = True
  128.        for x in range(1,7):
  129.            for y in range(1,7):
  130.                if (matriz[y][x] != 0):
  131.                    exito = False
  132.        if (exito == True):
  133.            print
  134.            print 'Enhorabuena ',nombre,' has terminado el juego.'
  135.            print
  136.            print 'Puntuacion: ',puntuacion
  137.            print
  138.            print
  139.            C = {"N": nombre,"P": puntuacion}
  140.            CN = (C["N"])
  141.            CP = str((C["P"]))
  142.            f = open("R.txt","a")
  143.            f.write(CP)
  144.            f.write(" puntuacion de ")
  145.            f.write(CN)
  146.            f.write("\n")
  147.            f.close()
  148.            print
  149.            print
  150.            print
  151.  
  152.        print
  153.    elif (tecla == 'S') or (tecla == 's'):
  154.        break
  155.    elif (tecla == 'D') or (tecla =='d'):
  156.        SumaMatriz(matriz, columna, fila)
  157.        if (numerogolpes > 0):
  158.            numerogolpes = numerogolpes - 1
  159.        ListaFila.pop()
  160.        ListaColumna.pop()
  161.        print
  162.        os.system('clear')
  163.        ImprimirMatriz(matriz)
  164.        print
  165.    elif (tecla == 'N') or (tecla == 'n'):
  166.        nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
  167.        matriz = CrearMatriz()
  168.        GeneraNivel(matriz,nivel)
  169.        os.system('clear')
  170.        ImprimirMatriz(matriz)
  171.  
  172.    print    
  173.    tecla = raw_input('''(P) Introducir posicion          (S) Salir del juego
  174. (N) Nueva partida                (D) Deshacer movimiento
  175.  
  176.  
  177. Pulse una tecla: ''')
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines