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!
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 (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import os
import time
import random
def CrearMatriz():
matriz = []
for i in range (8):
matriz.append([0]*8)
return matriz
def ImprimirMatriz(matriz):
for x in range(1,7):
for y in range(1,7):
print matriz[y][x],
print
def GolpeaMatriz(matriz, fila, columna):
if (matriz[fila][columna]>0):
matriz[fila][columna] = matriz[fila][columna]-1
else:
matriz[fila][columna] = 3
if (matriz[fila-1][columna]>0):
matriz[fila-1][columna] = matriz[fila-1][columna]-1
else:
matriz[fila-1][columna] = 3
if (matriz[fila+1][columna]>0):
matriz[fila+1][columna] = matriz[fila+1][columna]-1
else:
matriz[fila+1][columna] = 3
if (matriz[fila][columna-1]>0):
matriz[fila][columna-1] = matriz[fila][columna-1]-1
else:
matriz[fila][columna-1] = 3
if (matriz[fila][columna+1]>0):
matriz[fila][columna+1] = matriz[fila][columna+1]-1
else:
matriz[fila][columna+1] = 3
def SumaMatriz(matriz, fila, columna):
if (matriz[fila][columna]<3):
matriz[fila][columna] = matriz[fila][columna]+1
else:
matriz[fila][columna] = 0
if (matriz[fila-1][columna]<3):
matriz[fila-1][columna] = matriz[fila-1][columna]+1
else:
matriz[fila-1][columna] = 0
if (matriz[fila+1][columna]<3):
matriz[fila+1][columna] = matriz[fila+1][columna]+1
else:
matriz[fila+1][columna] = 0
if (matriz[fila][columna-1]<3):
matriz[fila][columna-1] = matriz[fila][columna-1]+1
else:
matriz[fila][columna-1] = 0
if (matriz[fila][columna+1]<3):
matriz[fila][columna+1] = matriz[fila][columna+1]+1
else:
matriz[fila][columna+1] = 0
def GeneraNivel(matriz, nivel):
for x in range(nivel*3):
fila = random.randint(1,6)
columna = random.randint(1,6)
SumaMatriz(matriz, fila, columna)
return matriz
print
matriz = CrearMatriz()
ListaFila = []
ListaColumna = []
numerogolpes = 0
print
nombre = raw_input('Introduzca un nombre: ')
print
nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
while (nivel < 1) or (nivel > 9):
nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
matriz = GeneraNivel(matriz, nivel)
print
os.system('clear')
ImprimirMatriz(matriz)
print
print
tecla = raw_input('''(P) Introducir posicion (S) Salir del juego
(N) Nueva partida (D) Deshacer movimiento
Pulse una tecla: ''')
while (tecla != 'S') or (tecla != 's'):
if (tecla == 'P') or (tecla == 'p'):
print
fila = int(raw_input('Introduzca una fila: '))
while (fila < 1) or (fila > 6):
fila = int(raw_input('Introduzca una fila: '))
columna = int(raw_input('Introduzca una columna: '))
while (columna < 1) or (columna > 6):
columna = int(raw_input('Introduzca una columna: '))
GolpeaMatriz(matriz, columna, fila)
numerogolpes = numerogolpes + 1
ListaFila.append(fila)
ListaColumna.append(columna)
print
os.system('clear')
ImprimirMatriz(matriz)
puntuacion = float(numerogolpes/3*nivel)
exito = True
for x in range(1,7):
for y in range(1,7):
if (matriz[y][x] != 0):
exito = False
if (exito == True):
print
print 'Enhorabuena ',nombre,' has terminado el juego.'
print
print 'Puntuacion: ',puntuacion
print
print
C = {"N": nombre,"P": puntuacion}
CN = (C["N"])
CP = str((C["P"]))
f = open("R.txt","a")
f.write(CP)
f.write(" puntuacion de ")
f.write(CN)
f.write("\n")
f.close()
print
print
print
print
elif (tecla == 'S') or (tecla == 's'):
break
elif (tecla == 'D') or (tecla =='d'):
SumaMatriz(matriz, columna, fila)
if (numerogolpes > 0):
numerogolpes = numerogolpes - 1
ListaFila.pop()
ListaColumna.pop()
print
os.system('clear')
ImprimirMatriz(matriz)
print
elif (tecla == 'N') or (tecla == 'n'):
nivel = int(raw_input('Introduzca un nivel del 1 al 9: '))
matriz = CrearMatriz()
GeneraNivel(matriz,nivel)
os.system('clear')
ImprimirMatriz(matriz)
print
tecla = raw_input('''(P) Introducir posicion (S) Salir del juego
(N) Nueva partida (D) Deshacer movimiento
Pulse una tecla: ''')