Python - A golpe de click

 
Vista:
Imágen de perfil de Jorge Alberto
Val: 11
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

A golpe de click

Publicado por Jorge Alberto (2 intervenciones) el 09/08/2020 14:44:08
Vas a tratar de hacer un juego que comience al hacer click con el ratón y empiece a mostrar imágenes en posiciones aleatorias de la pantalla. El juego deberá mostrar una imagen, cuando el usuario clickee sobre ella, mostrará otra imagen y así hasta haber mostrado 10 imágenes.

Debes conseguir que el juego cuente el tiempo que ha pasado desde que hiciste el primer click hasta que clickaste en la última imagen y mostrarlo. El objetivo del juego es conseguir tardar el menor tiempo posible.

Si lo consigues, puedes intentar que el tiempo se guarde en una variable si ha superado al mejor tiempo anterior y el programa informe de que has batido el récord.

Hasta el momento tengo esta codificación, que se ejecuta bien, pero me falta el resto y no he podido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
i = 0
def setup() :
    global ciclismo, natacion, futbol, pingpong, beisbol, billar, boxeo, voleyball, montanismo,  baloncesto, imagenes
    size(800,800)
    ciclismo = loadImage("ciclismo.jpg")
    natacion = loadImage("natacion.png")
    futbol = loadImage("futbol.png")
    pingpong = loadImage("pingpong.jpg")
    beisbol = loadImage("beisbol.jpg")
    billar = loadImage("billar.jpg")
    boxeo = loadImage("boxeo.jpg")
    voleyball = loadImage("voleyball.png")
    montanismo = loadImage("montanismo.jpg")
    baloncesto = loadImage("baloncesto.jpg")
    #lista
    imagenes = [ciclismo, natacion, futbol, pingpong, beisbol, billar, boxeo, voleyball, montanismo, baloncesto]
 
def draw() :
    background(255)
    image(imagenes[i],370,200)
 
def mouseClicked() :
    global i
    i = i + 1
    if i == 10 :
        i = 0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

A golpe de click

Publicado por yoyyo (1 intervención) el 09/08/2020 15:56:41
hola:
¿y en qué entorno gráfico se supone que anda?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

A golpe de click

Publicado por yoyyo (1 intervención) el 11/08/2020 07:21:47
hola:
la verdad que no conocía este entorno, y si bien no me gusta estuve haciendo unas pruebas en base a tu código, le hice unos cambios y le agregue lo del tiempo para que te sirva como referencia. Seguro hay muchos errores y cosas a mejorar pero está funcional.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import random
from time import time
i = 0
x = random.randint(0,650)
y = random.randint(0,650)
inicio = time()
txt = 0
def setup() :
    global f,ciclismo, natacion, futbol, pingpong, beisbol, billar, boxeo, voleyball, montanismo,  baloncesto, imagenes
    size(800,800)
    f = createFont("Arial",16)
    baloncesto = loadImage("baloncesto.png")
    beisbol = loadImage("beisbol.jpg")
    billar = loadImage("billar.jpg")
    boxeo = loadImage("boxeo.png")
    ciclismo = loadImage("ciclismo.png")
    futbol = loadImage("futbol.jpg")
    montanismo = loadImage("montanismo.png")
    natacion = loadImage("natacion.jpg")
    pingpong = loadImage("pinpon.png")
    voleyball = loadImage("voley.jpg")
 
    #lista
    imagenes = [baloncesto,beisbol,billar,boxeo,ciclismo,futbol, montanismo,natacion,pingpong,voleyball]
 
def draw():
 
    background(255)
    mostrar()
    if txt == 1:
        mensaje()
 
 
def mouseClicked():
    global i,txt,total
    txt = 0
    if mouseX >= x  and mouseY >= y:
        i = i + 1
        posicionx()
        posiciony()
    else:
        i = i
 
    if i == 9 :
        i = 0
        txt = 1
        final = time()
        total= final- inicio
 
def mostrar():
    global dibujar
    image(imagenes[i],x,y)
 
def posicionx():
    global x
    x = random.randint(0,650)
 
def posiciony():
    global y
    y = random.randint(0,650)
 
def mensaje():
    global f,inicio
    textFont(f,16)
    fill(0)
 
    cuanto = "Tiempo total: %.2f segundos"%total
    text(cuanto,350,780)
    inicio = time()

los cambios de posicón fueron para darle un poco más de complejidad y la aproximación del mouse es porque en tu código no importa donde se haga click, en este tiene que estar mas cerca de la imagen, no voy a leer más la ayuda, mejorarlo te toca a vos.
Cuidado con el nombre de las imagenes en este código, porque tuve que buscar mis propias imagenes y como referencia tienen todas un tamaño de 130 x 130 pixeles.
Ya me aburrí y por eso no hice lo del marcador a mejorar, pero es simple una variable que guarde el tiempo y si el actual es menor, otro mensaje y se guarda el tiempo actual.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar