/*****************************************************************************/ /* */ /* Execution pas a pas du dialogue */ /* */ /*****************************************************************************/ :-module(pasapas, [ pas_a_pas/0 ] ). pas_a_pas:- ( ifdef(trace) -> ( user:coups([COUP|_]) -> writef("Coup precedent : %t\n",[COUP]) ; writef("Debut du dialogue.\n") ), repeat, writef("Trace : "), get_single_char(C), ( C\=32, C\=13, C\=10 -> exec(C), fail ; writef("Suite...\n") ) ; true ), !. exec(0'h):- !, writef("Aide\n"), writef("espace : continuer\n"), writef(" h : aide\n"), writef(" c : modifier le dernier coup\n"), writef(" t : trace prolog\n"), writef(" a : abort\n"), writef(" x : exit\n"). exec(0'c):- !, ( retract(user:coups([_|COUPS])) -> writef("Modifier le dernier coup\n"), writef("Entrez le nouvel coup : "), read(0,COUP), assert(user:coups([COUP|COUPS])) ; writef("Debut du dialogue\n") ). exec(0't):- !, trace. exec(0'x):- !, abort. exec(0'a):- !, abort. exec(_):- writef("Tapez h pour l'aide\n").