Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comando para que un tester guarde la transcripción en un fichero de texto? #15

Open
paravaariar opened this issue May 9, 2023 · 6 comments

Comments

@paravaariar
Copy link
Collaborator

Una manera que me gusta bastante para depurar juegos es decirle al jugador o al tester que guarde una transcripción de los comandos que fue introduciendo. Creo que es también más o menos habitual que la transcripción también vaya guardando lo que aparece en la descripción y en el texto de resultado de acciones. Está disponible o sería posible un comando para guardar este histórico de las partidas y que lo descargase en un archivo de texto plano?

@Baltasarq
Copy link
Owner

He creado la acción "transcript" con los sinónimos "transcribo", "transcribir", "transcribe", que guarda todo el histórico de comandos hasta el momento, en un archivo llamado transcript.txt.
Faltaría transcribir además todo lo mostrado al usuario, tanto mediante ctrl.print() como simplemente las descripciones de las localidades y el resultado de las acciones.

@paravaariar
Copy link
Collaborator Author

aparte de los textos, la versión actual no guarda comandos de acciones que no están registradas. Por ejemplo, si pones un verbo no reconocido, no se guarda.

@Baltasarq
Copy link
Owner

Esto sucede así por cómo funciona el parser. No es algo que pueda añadirse fácilmente, pues depende de la arquitectura del reconocimiento del comando. Si lo que quieres es que los jugadores puedan dejar mensajes al desarrollador, lo único que se me ocurre es añadir un comando como "rem" o "rec" o incluso "msg"... cualquier posibilidad serviría.

@paravaariar
Copy link
Collaborator Author

paravaariar commented May 19, 2023

He hecho un workaround que no se si creará nuevos problemas... en load o save por ejemplo...
Es en la función parse de fi.js. Como ves antes solo guardaba si sentence.act era diferente de null, ahora la guarda siempre...

// Execute action
                identifyObjects();

		// paravaariar guardar todo en history, incluso verbos que no existen
		ctrl.addToHistory( cmd );

                if ( sentence.act != null ) {
		     // paravaariar guardar todo en history, incluso verbos que no existen
                    // ctrl.addToHistory( cmd );
                    const playerAnswer = player.preAction();

luego no borro el hecho que haya escrito transcript al guardar el transcript... porque cuando habías puesto transcript varias veces en una partida te lo intentaba ejecutar

	function saveTranscript()
    {
        // Prepare history
        let transcript = history
		
		// paravaariar no borrar la última
        // let lastLinePos = transcript.trim().lastIndexOf( "\n" );

        // if ( lastLinePos > 0 ) {
        //    transcript = transcript.substring( 0, lastLinePos );
        //}

para que funcione bien el load sin intentar bajar los transcripts, cambié esto en el "load"

for(var i = 0; i < cmds.length; ++i) {
                    var cmd = cmds[ i ];
                    var s = { "verb": cmd };

                    if ( !saveAction.match( s )
                      && !loadAction.match( s )
			// paravaariar transcript tampoco la lanzamos
			&& !transcriptAction.match (s))
                    {
                        parser.parse( cmd );
                    }
                }

@Baltasarq
Copy link
Owner

Lo siento, pero no voy a implementar esto. Como te dije, puedo pensar en un verbo o incluso un caracter especial, pero cambiar el comportamiento del parser a estas alturas, no.
No sé qué posibilidades de efectos laterales pueden suceder con los juegos que ya existen.
Por supuesto, en tu juego puedes modificar lo que quieras. Eso sí, tu juego permanecerá "anclado" a esa versión que modifiques.

@paravaariar
Copy link
Collaborator Author

Entiendo. De todas maneras esto es un workaround porque para hacer un transcript bien que guarde todo tendría que ser con otra cosa que no fuese el history directamente, quizás así sea menos intrusivo a lo que ya existe. Le daré una vuelta a ver si se me ocurre :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants