dimecuandotermino.c
Código
Invitado al 9º Encuentro Internacional de Arte de Acción de Caudete, realizo en septiembre de 2012, un pequeño esbozo de lo que será esta acción casi programable, un diagrama de flujo que relacione la programación con la performance, incluso, escribo un programa que pueda hacer la performance. La acción a realizar es lo de menos. Supongamos que son varias.
/****************************************************************************
Performance "Dime Cuando Termino" (escrito en C)
Pensada en Vera, Almería, en Julio de 2012.
Programada por Giusseppe Domínguez
el día 14 de septiembre de 2012 en Madrid.
Se realizará por primera vez (única) en Caudete
9º Encuentro Internacional de Arte de Acción y Performance.
****************************************************************************/
#define AUTOR "Giusseppe Domínguez"
#include <stdio.h>
#include <string.h>
#include <time.h>
int realizar_accion(char *accion);
int saludo(char *titulo_performance);
int firma();
main()
{
char titulo_performance[]= {"Dime Cuando Termino"};
char *acciones[]= {"caminar", "pelar almendras", "beber agua", "escupir", "tirar una piedra", "encender una cerilla", "arrancar una hoja de un libro"};
int numero_de_acciones=strlen(*acciones);
int indice_accion;
int dime_cuando_termino=0;
int cuando_termino=1;
saludo(titulo_performance);
while (dime_cuando_termino == 0) {
for (indice_accion=0; indice_accion<numero_de_acciones; indice_accion++) {
realizar_accion(acciones[indice_accion]);
}
printf("\n\n%s\n", titulo_performance);
if (scanf("%d", &dime_cuando_termino) != 1){
/* manejo de error */
printf("\nEn la versión de programa informático, solo se aceptan números. Son las reglas.");
printf("\n%s: Requiere un 0 o un 1", titulo_performance);
printf("\nEn la versión de arte=vida, comienza la incertidumbre.");
dime_cuando_termino=1; /* Se termina la acción, de alguna manera brusca. */
}
if (dime_cuando_termino!=cuando_termino) {
printf("\nMuchas gracias.\n");
saludo(titulo_performance);
printf("\nContinúa la acción.\n");
dime_cuando_termino=0;
}
}
firma();
}
int realizar_accion(char *accion)
{
printf("\n%s", accion);
return 0;
}
int saludo(char *titulo_performance)
{
printf("\nHola. Me llamo %s, y la Acción se titula %s\n\n", AUTOR, titulo_performance);
return 0;
}
int firma()
{
time_t tiempo = time(0);
struct tm *tiempolocal = localtime(&tiempo);
char txt_firma[128];
strftime(txt_firma,128,"\na las %H:%M. M-%Y%m%d\n", tiempolocal);
printf("\n\n%s, %s\n", AUTOR, txt_firma);
return 0;
}