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


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Una ayudita juego piedra, papel, tijera en python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Una ayudita juego piedra, papel, tijera en python  (Leído 8,260 veces)
kaiminfain

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Una ayudita juego piedra, papel, tijera en python
« en: 6 Enero 2010, 20:06 »

Hola!! Soy una estudiante de Diseño Industrial, y en la asignatura de Informatica estamos dando programacion en Python (que ya quisiera yo saber, para que!? xD).
Necesito ayuda con un ejercicio (cositas basicas para vosotros seguramente, while, for, if, else...)
El ejercicio es este:
En este ejercicio se tiene que desarrollar el juego de “piedra, papel o tijera” partiendo de un programa inicial:

from random import random
opciones = ["piedra", "papel", "tijera"]

(# Muestra el menú de opciones disponibles)

print "Escoge una opcion"
for i in range(3):
print str(i+1)+ ") " + opciones
escogeUsuario = int(raw_input("Escoge una opción: "))
escogeUsuario = escogeUsuario - 1

(# Las 3 siguientes instrucciones obtienen aleatoriamente un número entre 0 y 2)

NumeroMinimo = 0
NumeroMaximo = 2
escogeOrdenador = int (random()* (NumeroMaximo - NumeroMinimo +1)+ NumeroMinimo)
print "Tu has escogido:", opciones[escogeUsuario]
print "El ordenador ha escogido:", opciones[escogeOrdenador]


Para realizar el juego tienes que realizar las siguientes modificaciones a este programa.
1.Determina quien ha ganado la partida, teniendo en cuenta que Piedra gana a Tijera, Tijera gana a Papel, Papel gana a Piedra y en caso de que sean iguales, se empata.
2.Cuando el usuario introduce la opción que escoge, el programa no verifica que está sea correcta. Modifica el programa para que se solicite al usuario un valor hasta que sea correcto.
3.Modifica el programa para que se pida el número de partidas a realizar y que el programa realice exactamente este número de jugadas. El programa resultante debe llevar la cuenta del número de partidas ganadas por cada jugador de forma que al final se muestre quien es el que ha ganado, cuantas partidas ha ganado cada uno y cuantas se han empatado.


Se lo agradecere eternamente si alguien me puede ayudar con este ejercicio!!!



En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.283


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #1 en: 6 Enero 2010, 20:07 »

switch te va a servir , while lo usaria para el contador a ver kien gana.. yo hice uno en C , nada de otro mundo y lo hice asi ;D

saludos


En línea

Masita

Desconectado Desconectado

Mensajes: 120


pythoneando


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #2 en: 6 Enero 2010, 20:13 »

Crea tu algoritmo  planteanos tus dudas y los errores que te da y te responderemos.

¿Existe switch en python? Se que puedes hacerlo parecido con diccionarios pero creo que no tiene palabra reservada
« Última modificación: 6 Enero 2010, 20:41 por Masita » En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
kaiminfain

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #3 en: 6 Enero 2010, 20:33 »

Vale he llegado hasta el punto donde el programa me dice quien ha ganado, ahora, como hago para que se solicite al usuario un valor hasta que sea correcto.?
He pensado en poner un while, pero no se me cierra el bucle y me sale un monton de veces el ganador.

from random import *
opciones = ["piedra", "papel", "tijera"]

print "Escoge una opcion"
for i in range(3):
  print str(i+1)+ ") " + opciones
escogeUsuario = int(raw_input("Escoge una opción: "))
escogeUsuario = escogeUsuario - 1

NumeroMinimo = 0
NumeroMaximo = 2
escogeOrdenador = int (random()* (NumeroMaximo - NumeroMinimo +1)+ NumeroMinimo)

while escogeUsuario <=3:
  print "Tu has escogido:", opciones[escogeUsuario]
  print "El ordenador ha escogido:", opciones[escogeOrdenador]

  if opciones[escogeUsuario] in opciones and opciones[escogeOrdenador] in opciones:
    if opciones[escogeUsuario] == opciones[escogeOrdenador]:
      print "Empate"
    elif opciones[escogeUsuario] == "piedra" and opciones[escogeOrdenador] == "tijera":
      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
    elif opciones[escogeUsuario] == "papel" and opciones[escogeOrdenador] == "piedra":
      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
    elif opciones[escogeUsuario] == "tijera" and opciones[escogeOrdenador] == "papel":
      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
    else:
      print "Gana el ordenador con", opciones[escogeOrdenador], "al usuario con", opciones[escogeUsuario]
« Última modificación: 6 Enero 2010, 20:43 por kaiminfain » En línea

Masita

Desconectado Desconectado

Mensajes: 120


pythoneando


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #4 en: 6 Enero 2010, 20:57 »

Podrias hacerlo un bucle while infinito y despues usar try: con el resto del codigo y  al final rompes el while. Intentalo y si no te lo explico un poco.
En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
kaiminfain

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #5 en: 6 Enero 2010, 21:11 »

Ok ya esta, problema solucionado con el bucle!! muchas gracias! ^^ Es la primera vez que oigo lo del try, supongo que sera una excepcion o algo asi no?!
En línea

Masita

Desconectado Desconectado

Mensajes: 120


pythoneando


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #6 en: 6 Enero 2010, 21:16 »

try sirve para intentar una accion si no la consigue en lugar de saltar una excepcion, te manda al except. Asi puedes escribir tus propias excepciones o redirigir el flujo del programa.

Saludos!
En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.693

Yo que tu lo pienso dos veces


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #7 en: 6 Enero 2010, 21:53 »

No me pude resistir al ver el código ...

Por lo que veo, quién escribio ese primer programa estaba iniciandose en python, sino sabría que el Random puede llamarse con mínimo y máximo :-X
En línea

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
kaiminfain

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #8 en: 6 Enero 2010, 22:53 »

Siento ser tan pesada pero... se nota que no me entero mucho de python verdad??!!  :laugh:

Ahora mismo lo tengo asi:

Código
  1. from random import *
  2. opciones = ["piedra", "papel", "tijera"]
  3.  
  4. print "Escoge una opcion"
  5. for i in range(3):
  6.  print str(i+1)+ ") " + opciones[i]
  7. escogeUsuario = int(raw_input("Escoge una opción: "))
  8. escogeUsuario = escogeUsuario - 1
  9.  
  10. NumeroMinimo = 0
  11. NumeroMaximo = 2
  12. escogeOrdenador = int (random()* (NumeroMaximo - NumeroMinimo +1)+ NumeroMinimo)
  13.  
  14. cantidad = [0]
  15. cantidad[0]= int(raw_input("Partidas a jugar:"))
  16. cuenta = 0
  17. while cuenta < cantidad[0]:
  18.  cuenta = cuenta + 1
  19.  print "Tu has escogido:", opciones[escogeUsuario]
  20.  print "El ordenador ha escogido:", opciones[escogeOrdenador]
  21.  if opciones[escogeUsuario] in opciones and opciones[escogeOrdenador] in opciones:
  22.    if opciones[escogeUsuario] == opciones[escogeOrdenador]:
  23.      print "Empate"
  24.    elif opciones[escogeUsuario] == "piedra" and opciones[escogeOrdenador] == "tijera":
  25.      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
  26.    elif opciones[escogeUsuario] == "papel" and opciones[escogeOrdenador] == "piedra":
  27.      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
  28.    elif opciones[escogeUsuario] == "tijera" and opciones[escogeOrdenador] == "papel":
  29.      print "Gana el usuario con", opciones[escogeUsuario], "al ordenador con", opciones[escogeOrdenador]
  30.    else:
  31.      print "Gana el ordenador con", opciones[escogeOrdenador], "al usuario con", opciones[escogeUsuario]


Lo que me pasa es que los resultados se muestran en la pantalla el numero de veces que he puesto en "Partidas a jugar".... :(
« Última modificación: 7 Enero 2010, 01:14 por Novlucker » En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.693

Yo que tu lo pienso dos veces


Ver Perfil
Re: Una ayudita juego piedra, papel, tijera en python
« Respuesta #9 en: 7 Enero 2010, 01:14 »

Fijate donde tienes el while!

El while lo tienes en la parte donde se muestran los resultados, para lo que buscas debería de abarcar además la parte del ingreso de piedra/papel/tijera por parte de usuario y máquina.

Saludos
En línea

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
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines