Juego ejercicios [Python]

Iniciado por Masita, 21 Diciembre 2009, 03:04 AM

0 Miembros y 1 Visitante están viendo este tema.

Masita

Os dejo que os comais un poco la cabeza antes de daros alguna pista... :laugh:
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....

leogtz

#11
Cita de: CaronteGold en  1 Enero 2010, 18:59 PM
import random
a = input("Número de caras")
b = input("Número de dados")
for i in range (b):
  c = random.randint(1,(a))
  print "Dado:",+c
   
raw_input()



 Llegué a lo mismo pero no encuentro la forma de ordenar :S.

Mete todo en una lista y ordenala por el algoritmo de la burbuja, voy a ver si puedo resolverlo.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

CaronteGold

Cita de: Leo Gutierrez. en  1 Enero 2010, 19:59 PM
Cita de: CaronteGold en  1 Enero 2010, 18:59 PM
import random
a = input("Número de caras")
b = input("Número de dados")
for i in range (b):
  c = random.randint(1,(a))
  print "Dado:",+c
   
raw_input()



 Llegué a lo mismo pero no encuentro la forma de ordenar :S.

Mete todo en una lista y ordenala por el algoritmo de la burbuja, voy a ver si puedo resolverlo.


   Tengo que irme ahora mismo, pero en cuanto llegué intentaré eso, lo de la burbuja lo encontré buscando en varias webs, también vi más algoritmos pero no supe cual usar.

  Saludos y gracias.

Novlucker

Los diferentes métodos de ordenación tienen diferentes enfoques y/o ventajas, pero tampoco es que sean TAN diferentes unos de otros. El de la burbuja es el "tradicional" (por decirle de algún modo) y más usado.

Leo, seguro que en un rato lo tienes resuelto y verás que poco varia de otros lenguajes ;) (obviamente el concepto no cambia, sigue siendo el mismo)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

leogtz

#14
Código (python) [Seleccionar]
#!/usr/bin/env python
import random
a = input("Numero de caras : ")
b = input("Numero de dados : ")
lista = []
for i in range(b):
   c = random.randint(1, (a))
   print "Dado : ", c
   lista.append(c)
for elemento in lista:
    print elemento
# Burbuja
for i in range(0, len(lista)):
   for j in range(0, len(lista)):
       if lista[i] > lista[j]:
           auxiliar = lista[i]
           lista[i] = lista[j]
           lista[j] = auxiliar
for elemento in lista:
    print elemento


leo@lein:~/Escritorio$ python py.py
Numero de caras : 10
Numero de dados : 10
Dado :  3
Dado :  9
Dado :  3
Dado :  6
Dado :  8
Dado :  4
Dado :  8
Dado :  7
Dado :  1
Dado :  1
[3, 9, 3, 6, 8, 4, 8, 7, 1, 1]
[9, 8, 8, 7, 6, 4, 3, 3, 1, 1]
leo@lein:~/Escritorio$


lista.sort()
print lista
Ya está, no sabía como obtener la longitud de la lista.  :)
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Masita

Faltaria imprimir independientemente cada valor de la lista. Ya que asi te imprime la lista completa con los corchetes y demas. Pero basicamente es asi.

Con lo cual miniputo y punto para Leo!  ;-)

Otra forma de hacerlo era con el metodo "sort". Dejo un codigo de ejemplo:
Código (python) [Seleccionar]

import random
indice = 0
resultados=[]
contador=0

dados = int(raw_input('Elija numero de dados:'))
caras = int(raw_input('Elija numero de caras:'))

#genera las tiradas
while indice < dados:
x=random.randint(1,caras)
resultados.append(x)
indice = indice+1
#ordena la lista
resultados.sort()

#imprime los resultados
for x in range(len(resultados)-1,-1,-1):
print resultados[x]
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....

Novlucker

La verdad que algunos métodos que trae python facilitan mucho las cosas, como el sort ;D
Por cierto, las listas se pueden recorrer sin recurrir a otras variables :P

Código (python) [Seleccionar]
import random
try:
   a = int(input("Ingresa el número de caras del dado: "),10)
   b = int(input("Ingresa el número de tiradas: "),10)
except:
   print("Alguno de los valores ingresados no es numérico")

Tiradas = []

for i in range(b):
   Tiradas.append(random.randint(1,a))

Tiradas.sort()

for i in Tiradas:
   print(i)


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Masita

#17
Pero en ese caso imprimiria de menor a mayor. De todos modos se que puedes ordenar las listas segun lo que quieras, añadiendo algun parametro a sort(). Tendre que indagar en ello
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....

Novlucker

#18
Estamos en ejercicios, así que lo suyo sería discutir las funciones en scripting, pero el método sort acepta parámetros :P

Código (python) [Seleccionar]
Tiradas.sort(key=None,reverse=True)

Y sino la otra manera ...

Código (python) [Seleccionar]
Tiradas.sort()
Tiradas.reverse()


:P
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

leogtz

#19
Bueno, me toca proponer el ejercicio

-Apartir de una clase llamada Rectangulo, obtener el area y perimetro(métodos).

Aprovecho para preguntar, ¿hay alguna forma de hacer un bucle mientras no me den un valor númerico?

Apartir del código de Novlucker:

Código (python) [Seleccionar]
try:
    base = int(input("Base : "))
    altura = int(input("Altura : "))
except:
    print "Uno de los valores no es numerico"
   
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com