generico

/* generico.pro */
/* da usare con attivazione menu vari */
nowarnings
domains
include "menu.pro"
predicates
fine
pulisci
finestra
elabora1(integer)
elabora2(integer)
elabora3(integer)
termine1(integer)
termine2(integer)
termine3(integer)
scelta(integer)
scelta1(integer)
scelta2(integer)
scelta3(integer)
elabora(integer)
azione1
azione2
azione3
azione4
azione5
azione6
azione
finestra1
termine(integer)
goal finestra,azione.
clauses
  finestra:-
  makewindow(1,5,7,"",1,1,17,75),
  makewindow(2,7,1,"",15,40,5,40).
  
  pulisci:-
  shiftwindow(2),beep,
  write("premi ENTER per proseguire"),
  readchar(_),clearwindow,shiftwindow(1),
  clearwindow.
  finestra1:-shiftwindow(1),clearwindow.   
  azione:-
  menu(2,40,[opzione1,
  opzione2,opzione3,
  opzione4,
  opzione5,
  opzione6,fine],Scelta),
  elabora(Scelta),
  termine(Scelta),!.
  elabora(0).
  elabora(1):-Scelta(1).
  elabora(2):-Scelta(2).
  elabora(3):-Scelta(3).
  elabora(4):-Scelta(4).
  elabora(5):-Scelta(5).
  elabora(6):-Scelta(6).
  termine(7).
  termine(0).
  Scelta(1):-azione1.
  Scelta(2):-azione2.
  Scelta(3):-azione3.
  Scelta(4):-azione4.
  Scelta(5):-azione5.
  Scelta(6):-azione6.
  Scelta(7):-fine.
  
  azione1:-
   clearwindow,
   menu(2,30,[opzione1,
   menu_principale],Scelta),
   elabora1(Scelta),
   termine1(Scelta),!.
   elabora1(0).
   elabora1(1):-scelta1(1).
   elabora1(2):-scelta1(2).
   termine1(2).
   termine1(0).
   scelta1(1):-
   finestra1,
   write("opzione1\n"),
   pulisci,
   azione1.
   scelta1(2):-write("ritorno a menu principale\n"),
      azione.                                        
      
   azione2:-
      clearwindow,
      menu(5,50,[opzione2,
      torna_a_menu_principale],
      Scelta),
      elabora2(Scelta),
      termine2(Scelta),!.
      elabora2(0).
      elabora2(1):-scelta2(1).
      elabora2(2):-scelta2(2).
      termine2(2).
      termine2(0).
      scelta2(1):-
      finestra1,
      write("opzione2\n"),
      pulisci,
      beep,azione2.
      scelta2(2):-write("ritorno a menu principale\n "),
      beep,azione.
      
 azione3:-
 clearwindow,
 menu(6,40,[opzione3,menu_principale],Scelta),
      elabora3(Scelta),
      termine3(Scelta),!.
      elabora3(0).
      elabora3(1):-scelta3(1).
      elabora3(2):-scelta3(2).
      termine3(2).
      termine3(0).
      scelta3(1):-
      finestra1,
      write("opzione3 \n"),
      pulisci,
      beep,azione3.
      scelta3(2):-write("torna a menu principale\n"),
      beep,azione.     
   
   azione4:-
      finestra1,
      write(" opzione4,menu_principale "),nl,
      pulisci,
      beep,azione.      
   azione5:-
      finestra1,
      write("opzione5 \n"),
      pulisci,
      azione.
      
   azione6:-
      finestra1,
      write("opzione6 \n"),
      pulisci,
      azione.
   fine:-
   clearwindow,
   write("fine prove\n"),beep.