Me gustaría que en este código, aparezca el temporizador en pantalla al mismo tiempo que las preguntas, y que cuando se termine el tiempo, el espacio donde está el texto de la pregunta aparezca ahora un texto que diga: Tiempo terminado, tu puntaje es: import json
import random
import os
import googletrans
from googletrans import Translator
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.clock import Clock
from kivy.metrics import dp
from kivy.properties import NumericProperty, StringProperty, ObjectProperty



# ... (mantén las funciones cargar_preguntas, mostrar_menu, mostrar_mensaje_porcentaje, jugar, jugar_de_nuevo, seleccionar_idioma, guardar_puntuacion y ver_mejores_puntuaciones) ...
def cargar_preguntas():
    with open("preguntas_es.json", "r", encoding="utf-8") as f:
        preguntas = json.load(f)
    return preguntas

def guardar_puntuacion(puntuacion):
    archivo_puntuaciones = "mejores_puntuaciones.txt"

    if not os.path.exists(archivo_puntuaciones):
        with open(archivo_puntuaciones, "w") as f:
            f.write(f"{puntuacion}\n")
    else:
        with open(archivo_puntuaciones, "r") as f:
            puntuaciones = [int(linea.strip()) for linea in f.readlines()]
        puntuaciones.append(puntuacion)
        puntuaciones.sort(reverse=True)
        puntajes = puntuaciones[:5]
        with open(archivo_puntuaciones, "w") as f:
            for puntuacion in puntajes:
                f.write(f"{puntuacion}\n")

def cargar_puntuaciones():
    archivo_puntuaciones = "mejores_puntuaciones.txt"

    if os.path.exists(archivo_puntuaciones):
        with open(archivo_puntuaciones, "r") as f:
            puntuaciones = [int(linea.strip()) for linea in f.readlines()]
    else:
        puntuaciones = []

    return puntuaciones

def traducir(texto, idioma):
    translator = Translator()
    traduccion = translator.translate(texto, dest=idioma)
    return traduccion.text

class LanguageScreen(Screen):
    def seleccionar_idioma(self, idioma):
        self.manager.idioma = idioma
        self.manager.current = "menu"

class MainMenu(Screen):
    def __init__(self, **kwargs):
        super(MainMenu, self).__init__(**kwargs)
        self.layout = BoxLayout(orientation='vertical')
        self.add_widget(Label(text='Menú principal'))
        self.play_button = Button(text='Jugar')
        self.play_button.bind(on_press=self.start_game)
        self.layout.add_widget(self.play_button)
        self.high_scores_button = Button(text='Ver mejores puntuaciones')
        self.high_scores_button.bind(on_press=self.show_high_scores)
        self.layout.add_widget(self.high_scores_button)
        self.exit_button = Button(text='Salir')
        self.exit_button.bind(on_press=self.exit_app)
        self.layout.add_widget(self.exit_button)
        self.add_widget(self.layout)
    
    def start_game(self, instance):
        self.manager.current = 'game'

    def show_high_scores(self, instance):
        self.manager.current = 'high_scores'

    def exit_app(self, instance):
        App.get_running_app().stop()

class GameScreen(Screen):
    timer_value = NumericProperty(10)
    def __init__(self, **kwargs):
        super(GameScreen, self).__init__(**kwargs)
        self.layout = BoxLayout(orientation='vertical')

        self.score_label = Label(text='Puntuación: 0')
        self.layout.add_widget(self.score_label)

        self.question_label = Label(text='')
        self.layout.add_widget(self.question_label)
        self.timer_label = Label(text='')
        self.layout.add_widget(self.timer_label)
        
        # Agregar los botones de respuesta
        self.options_layout = BoxLayout(orientation='vertical')
        for i in range(4):
            button = Button(text='', size_hint_y=None, height=dp(50))
            button.bind(on_release=lambda button: self.submit_answer(button.text))
            self.options_layout.add_widget(button)
        self.layout.add_widget(self.options_layout)

        self.back_button = Button(text='Volver al menú principal')
        self.back_button.bind(on_press=self.go_back)
        self.layout.add_widget(self.back_button)
        self.add_widget(self.layout)

    def on_enter(self):
        self.start_game()

    def on_leave(self):
        self.score_label.text = "Puntuación: 0"
        self.puntaje = 0 # Reiniciar el puntaje
        self.timer_value = 10
        self.timer_label.text = ""

    def start_game(self):
        global preguntas
        self.puntaje = 0
        self.total_preguntas = len(preguntas)
        self.preguntas_respondidas = 0
        self.preguntas = preguntas.copy()
        self.mostrar_pregunta()
        self.initial_timer_value = self.timer_value
        Clock.schedule_interval(self.update_timer, 1)

    def mostrar_pregunta(self):
        if self.preguntas:
            self.pregunta_actual = random.choice(self.preguntas)
            self.preguntas.remove(self.pregunta_actual)
            self.question_label.text = self.pregunta_actual["pregunta"]
        
            
            # Actualizar los botones de respuesta
            opciones = self.pregunta_actual["opciones"]
            random.shuffle(opciones)    
            for i, opcion in enumerate(opciones):
                self.options_layout.children[i].text = opcion
            self.enable_buttons()
        else:
            self.question_label.text = "¡Felicidades, lo lograste!"
            self.disable_buttons()
        
        self.reset_timer()
    def submit_answer(self, respuesta):
        self.preguntas_respondidas += 1
        Clock.unschedule(self.update_timer)
        if respuesta == self.pregunta_actual["respuesta_correcta"]:
            self.puntaje += 1
            self.score_label.text = f'Puntuación: {self.puntaje}'
        else:
            mensaje_porcentaje = self.mostrar_mensaje_porcentaje()
            self.question_label.text = f"Respuesta incorrecta. La respuesta correcta es: {self.pregunta_actual['respuesta_correcta']}. Tu puntaje final es: {self.puntaje}. {mensaje_porcentaje}"
            self.disable_buttons()
            guardar_puntuacion(self.puntaje)
            self.puntaje = 0 # Reiniciar el puntaje
            return
        Clock.schedule_interval(self.update_timer, 1)
        self.mostrar_pregunta()

    def update_timer(self, dt):
        self.timer_value -= 1
        if self.timer_value < 0:
            self.time_out()
            self.question_label.text = f"Tiempo restante: 0"

    def reset_timer(self):
        self.timer_value = 10
    
    def time_out(self):
        self.timer_label.text = 'Se acabó el tiempo'
        Clock.unschedule(self.update_timer)
        self.disable_buttons()

    def disable_buttons(self):
        for button in self.options_layout.children:
            button.disabled = True  

    def enable_buttons(self):
        for button in self.options_layout.children:
            button.disabled = False


    def go_back(self, instance):
        self.manager.current = 'menu'


    def mostrar_mensaje_porcentaje(self):
        porcentaje_aciertos = (self.puntaje / self.preguntas_respondidas) * 100

        if porcentaje_aciertos >= 75:
            mensaje = "¡Excelente trabajo!"
        elif porcentaje_aciertos >= 50:
            mensaje = "¡Buen trabajo!"
        elif porcentaje_aciertos >= 25:
            mensaje = "Puedes hacerlo mejor."
        else:
            mensaje = "Sigue practicando."

        return mensaje


    def go_back(self, instance):
        self.manager.current = 'main_menu'

class HighScoresScreen(Screen):
    def __init__(self, **kwargs):
        super(HighScoresScreen, self).__init__(**kwargs)
        self.layout = BoxLayout(orientation='vertical')
        self.high_scores_label = Label(text='')
        self.layout.add_widget(self.high_scores_label)
        self.back_button = Button(text='Volver al menú principal')
        self.back_button.bind(on_press=self.go_back)
        self.layout.add_widget(self.back_button)
        self.add_widget(self.layout)

    def on_enter(self):
        self.show_high_scores()


    def show_high_scores(self):
        archivo_puntuaciones = "mejores_puntuaciones.txt"

        if os.path.exists(archivo_puntuaciones):
            with open(archivo_puntuaciones, "r") as f:
                puntuaciones = [int(linea.strip()) for linea in f.readlines()]
            puntuaciones = puntuaciones[:5] 
            self.high_scores_label.text = "Mejores puntuaciones:\n" + "\n".join(str(puntuacion) for puntuacion in puntuaciones)
        else:
            self.high_scores_label.text = "No hay puntuaciones guardadas."

    def go_back(self, instance):
        self.manager.current = 'main_menu'

class TriviaApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(MainMenu(name='main_menu'))
        sm.add_widget(GameScreen(name='game'))
        sm.add_widget(HighScoresScreen(name='high_scores'))
        return sm

if __name__ == "__main__":
    preguntas = cargar_preguntas()
    TriviaApp().run()