Jump to content
iambrunomtalves

Cronómetro e resposta a pergunta em simultâneo

Recommended Posts

iambrunomtalves

Boas pessoal, estou a fazer um trabalho para a escola no qual tenho que fazer um jogo de questões de escolha múltipla com cariz economico do género:

print("Qual das seguintes opções se apresenta no contexto económico como uma externalidade?")
print("A: Venda de droga")
print("B: Construção de infraestruturas")
print("C: Aumento do ordenado mínimo")
print("D: Contratação de professores")
resposta = str(input("Resposta:"))
if resposta == "a" or resposta == "A":
    print("Resposta correta")
elif resposta == "B" or resposta == "C" or resposta == "D" or resposta == "b" or resposta == "c" or resposta == "d":
    print("Resposta errada")
else:
    print("Não escolheu A, B, C ou D")

Deste modo, o meu objetivo seria ter um cronometro a contar 20 segundos para responder a pergunta, fiz uma pesquisa e encontrei um cronometro regressivo:

from datetime import datetime, timedelta
from sys import stdout
from time import sleep
tempo = timedelta(seconds=10)
'\n'
while (str(tempo) != '0:00:00'):
    stdout.write("\r%s" % tempo)
    stdout.flush()
    tempo = tempo - timedelta(seconds=1)
    sleep(1)
stdout.write("\r0:00:00")
stdout.flush()

O cronometro funciona, a pergunta também, a minha dificuldade é em pôr o cronometro a contar ao mesmo tempo que se pede a resposta ao utilizador.

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
Gnrtuga

Boas, para usares o temporizador basta criares uma função e a chamares, qualquer coisa deste género:

from datetime import datetime, timedelta
from sys import stdout
from time import sleep

def temporizador():
    tempo = timedelta(seconds=10)
    
    while (str(tempo) != '0:00:00'):
        #stdout.write("\r%s" % tempo)
        stdout.flush()
        tempo = tempo - timedelta(seconds=1)
        sleep(1)
    #stdout.write("\r0:00:00 \n")
    stdout.flush()
    

def perguntas():
    print("A tua cor favorita:  \n A -Vermelho \n B - Verde")
    temporizador()
    print(" Nova pergunta: \n A- resposta \n B - Outra resposta")

No entanto acho que que devias simplificar a coisa, primeiro com os if's, em vês de estares a ver se a resposta está em maiúsculas e em minúsculas (o if está muito longo) fazias qualquer coisa tipo resposta.upper() que passa a resposta para maiúscula e já tinhas que fazer menos comparações.

Boa sorte.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.