Autor
|
Tema: Una ayudita juego piedra, papel, tijera en python (Leído 14,345 veces)
|
kaiminfain
Desconectado
Mensajes: 5
|
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
Mensajes: 2.294
|
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 saludos
|
|
|
En línea
|
|
|
|
Masita
Desconectado
Mensajes: 120
pythoneando
|
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 pm por Masita »
|
En línea
|
En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
|
|
|
kaiminfain
Desconectado
Mensajes: 5
|
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 pm por kaiminfain »
|
En línea
|
|
|
|
Masita
Desconectado
Mensajes: 120
pythoneando
|
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
Mensajes: 5
|
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
Mensajes: 120
pythoneando
|
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
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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
|
|
|
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
Mensajes: 5
|
Siento ser tan pesada pero... se nota que no me entero mucho de python verdad??!! Ahora mismo lo tengo asi: from random import * opciones = ["piedra", "papel", "tijera"] print "Escoge una opcion" for i in range(3): print str(i+1)+ ") " + opciones[i] escogeUsuario = int(raw_input("Escoge una opción: ")) escogeUsuario = escogeUsuario - 1 NumeroMinimo = 0 NumeroMaximo = 2 escogeOrdenador = int (random()* (NumeroMaximo - NumeroMinimo +1)+ NumeroMinimo) cantidad = [0] cantidad[0]= int(raw_input("Partidas a jugar:")) cuenta = 0 while cuenta < cantidad[0]: cuenta = cuenta + 1 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]
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 am por Novlucker »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BATCH-GAME] Piedra papel o tijera xD
Scripting
|
Eleкtro
|
2
|
5,555
|
8 Agosto 2012, 12:00 pm
por Puntoinfinito
|
|
|
Descubren la forma científica de ganar en piedra-papel-tijera
Dudas Generales
|
wolfbcn
|
0
|
2,668
|
4 Mayo 2014, 01:42 am
por wolfbcn
|
|
|
un piedra papel tijera, adaptado
Programación General
|
Lenckito
|
2
|
2,947
|
4 Mayo 2017, 18:59 pm
por RevolucionVegana
|
|
|
Juego Piedra-Papel-Tijera
Java
|
keypanda
|
1
|
2,471
|
3 Octubre 2018, 01:52 am
por rub'n
|
|
|
piedra, papel o tijera. Hay alguna forma más eficiente????
PHP
|
manuchi
|
5
|
3,775
|
8 Octubre 2019, 05:59 am
por manuchi
|
|