program Menu;
uses crt;
procedure titre ();
begin
   writeln('             SSSSSSSSSSSSSSS                   hhhhhhh               iiii                                       ');
   writeln('           SS:::::::::::::::S                  h:::::h              i::::i                                      ');
   writeln('          S:::::SSSSSS::::::S                  h:::::h               iiii                                       ');
   writeln('          S:::::S     SSSSSSS                  h:::::h                                                          ');
   writeln('          S:::::S           ppppp   ppppppppp   h::::h hhhhh       iiiiiiinnnn  nnnnnnnn    xxxxxxx      xxxxxxx');
   writeln('          S:::::S           p::::ppp:::::::::p  h::::hh:::::hhh    i:::::in:::nn::::::::nn   x:::::x    x:::::x ');
   writeln('           S::::SSSS        p:::::::::::::::::p h::::::::::::::hh   i::::in::::::::::::::nn   x:::::x  x:::::x  ');
   writeln('            SS::::::SSSSS   pp::::::ppppp::::::ph:::::::hhh::::::h  i::::inn:::::::::::::::n   x:::::xx:::::x   ');
   writeln('              SSS::::::::SS  p:::::p     p:::::ph::::::h   h::::::h i::::i  n:::::nnnn:::::n    x::::::::::x    ');
   writeln('                 SSSSSS::::S p:::::p     p:::::ph:::::h     h:::::h i::::i  n::::n    n::::n     x::::::::x     ');
   writeln('                      S:::::Sp:::::p     p:::::ph:::::h     h:::::h i::::i  n::::n    n::::n     x::::::::x     ');
   writeln('                      S:::::Sp:::::p    p::::::ph:::::h     h:::::h i::::i  n::::n    n::::n    x::::::::::x    ');
   writeln('          SSSSSSS     S:::::Sp:::::ppppp:::::::ph:::::h     h:::::hi::::::i n::::n    n::::n   x:::::xx:::::x   ');
   writeln('          S::::::SSSSSS:::::Sp::::::::::::::::p h:::::h     h:::::hi::::::i n::::n    n::::n  x:::::x  x:::::x  ');
   writeln('          S:::::::::::::::SS p::::::::::::::pp  h:::::h     h:::::hi::::::i n::::n    n::::n x:::::x    x:::::x ');
   writeln('           SSSSSSSSSSSSSSS   p::::::pppppppp    hhhhhhh     hhhhhhhiiiiiiii nnnnnn    nnnnnnxxxxxxx      xxxxxxx');
   writeln('                             p:::::p                                                                            ');
   writeln('                             p:::::p                                                                            ');
   writeln('                            p:::::::p                                                                           ');
   writeln('                            p:::::::p                                                                           ');
   writeln('                            p:::::::p                                                                           ');
   writeln('                            ppppppppp                                                                           ');
end;

procedure logo();
begin
   writeln('                         .sSSSSSSSs                          ___                         sSSSSSSSs.                       ');
   writeln('                         sSS=""^^^"s                       ."///".                       s"^^^""=SSs                      ');
   writeln('              /\       , /  \_\_\|_/_)                    /|<> <>!\                     (_/_|/_/_/  \ ,       /\          ');
   writeln('             /";;     /| \\\/.-. .-./                    /-|  ^  !-\                     \.-. .-.\/// |\     ;;"\         ');
   writeln('            / \;|    /. \,S"  -   - |                   /-- \_=_/ --\                    | -   -  "S,/ .\    |;/ \        ');
   writeln('           / -.;|    | ".SS     _|  ;                   )---| W |---(                    ;  |_     SS." |    |;.- \       ');
   writeln('          ; "-.;\,   |"-.SS\   __  /S                  /-\--| W |--/-\                   S\  __   /SS.-"|   ,/;.-" ;      ');
   writeln('          | _  ";\\.  \" SSS\_____/SS                 (_-_--|_-_|--___)                  SS\_____/SSS "/  .//;"  _ |      ');
   writeln('          |  "- ";\\.  \_SSS[_____]SS                (-___  -_-- _-- -_)                 SS[_____]SSS_/  .//;" -"  |      ');
   writeln('          \ "--.-";;-. __SSS/\    SSS                )-_ _--_ _ ___--__|                 SSS    /\SSS__ .-;;"-.--" /      ');
   writeln('           \  .--" ";;.=SSS`\\_\_SSS                 (___ --__  __ __--(                 SSS_/_//`SSS=.";;" "--.  /       ');
   writeln('            `._ .-"` _";;..=.=.=.\.=\               /-_  / __ -_ -__  \_\                /=./.=.=.=..;;"_ `"-. _.`        ');
   writeln('               ;-._-"  _.;\.=.=.=.|.=|             _>/  -- /|___| _ \ -_ )              |=.|.=.=.=./;._  "-_.-;           ');
   writeln('     ,     _.-"    `"=._  ;\=.=__/__/             /--  _ - _/   \>\ -  -- \              \__\__\=.=/;  _.="`   "-._     , ');
   writeln('     )\ ."`   __        ".;|.=.=.=./             ( / / /   >     \   \ \ \_)              \.=.=.=./;."        __   `". /( ');
   writeln('     (_\   .-`  ".   |    \/=.=.=/"              | |-" | |/       \| |   |_|               `\=.=.=\/    |   ."  `-.   /_) ');
   writeln('      /\\         \-,|     |.--"|                L_|_|_|_/         L_L_|_l_)                  |"--.|    |,-/         //\  ');
   writeln('     /  \`,       //  \    | |  |                                                             |  | |   /  \\       ,`/  \ ');
   writeln('    ( (__) )  _.-"--,  \   | |  "--,                                                       ,--"  | |  /  ,(("-._  ( (__) )');
   writeln('     ;----" -"--,__}}}  \  "--, __}}}                                                     {{{__ ,--" /  {{{__,--"- "----; ');
   writeln('     \_________}}}       \___}}}                                                               {{{___/       {{{________/ ');

end;

function ecrireFleche(ok : boolean):string;
begin
   if ok then
   	ecrireFleche:=(' <--')
   else
 	ecrireFleche:=(' ');   
end;

procedure choixMenu(choix:integer);

begin
   clrscr;
   titre();
   writeln('                                                      NOUVELLE PARTIE'+ecrireFleche(choix=0));
   writeln('                                                      PARAMETRES'+ecrireFleche(choix=1));
   writeln('                                                      COMMENT JOUER?'+ecrireFleche(choix=2));
   writeln('                                                      QUITTER'+ecrireFleche(choix=3));
end;  

procedure destinationMenu(choix:integer);
begin
   case choix of
   0: writeln('procedure de nouvelle partie');{procedure de Nouvelle Partie}
   1: writeln('procedure des parametres');{Procedure des Parametres}
   2: writeln('procedure instruction');
   end;
end;

procedure menuPrincipal();
var
   choix : integer;
   ch: char;
begin
 choix:=0;
 repeat
     choixMenu(choix);
    ch:=ReadKey;
    if KeyPressed then
       begin
           ch:=ReadKey; {Read ScanCode}
           case ch of
            #72 : begin
                           choix := (choix - 1); {monte dans le choix}
                        if (choix <0) then
                            choix:=3;
                    end;
            #80 : begin
                    choix := (choix + 1);  {descend dans le choix}
                    if (choix >3) then
                        choix:= 0;
                   end;
        
           end;
         end;
  
 until (ch=#13);{Esc}
 if ch=#13 then;
 destinationMenu(choix);
end;

procedure debutMenu();
begin
   clrscr;
   writeln(' ');
   writeln(' ');
   menuPrincipal();
end;

begin
   clrscr;
   titre();
   writeln(' ');
   writeln(' ');
   logo();
   writeln(' ');
   writeln('                                                                        Appuyez sur n''importe quelle touche.               ');
   repeat
    until (readkey<> (#0));;
    debutMenu();
end.
