home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / motpasse / motpasse.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-18  |  2KB  |  91 lines

  1. {$F+}
  2. {$M $4000,550000,650000}
  3. program controlemotdepasse;
  4.  
  5. uses crt,design;
  6. const motsdepasse : array[1..10] of string =
  7.         ('Micro Application','Inspire','PC Interdit','Soundblaster',
  8.          'Démos','Super','Vengeance','Dynamite','Bière','Maison');
  9.       mdpPages : array[1..10] of word =
  10.         (17,3,29,43,12,21,4,9,13,30);
  11.  
  12. Var mdp_nr : byte;
  13.     iterations_restantes : byte;
  14.     motdepasse_correct : word;
  15.     New_Pass : string;
  16.     Pchoisir_nouveau_motdepasse : pointer;
  17.     Pdessiner_cadre_de_saisie : pointer;
  18.     Pdemander_motdepasse : pointer;
  19.     Parreter_systeme : pointer;
  20.     variable_bidon1 : word;
  21.     variable_bidon2 : word;
  22.  
  23. {$L c:\edition\prog\fr\asm\Pwmodul}
  24. procedure boucle_de_saisie; far; external;
  25.  
  26. procedure choisir_nouveau_motdepasse;
  27. begin;
  28.   mdp_nr := random(10)+1;
  29.   variable_bidon1 := 1;
  30.   variable_bidon2 := 2;
  31. end;
  32.  
  33. procedure dessiner_cadre_de_saisie;
  34. var mdps : string;
  35. begin;
  36.   str(mdpPages[mdp_nr]:2,mdps);
  37.   asm int 3; end;
  38.   Fenetre(20,10,50,4,'Veuillez taper le mot de passe de la page '+mdps,black,7);
  39.   variable_bidon1 := 1;
  40.   variable_bidon2 := 2;
  41.   gotoxy(23,12);
  42. end;
  43.  
  44. procedure demander_motdepasse;
  45. begin;
  46.   readln(New_Pass);
  47.   variable_bidon1 := 1;
  48.   variable_bidon2 := 2;
  49.   if New_Pass = motsdepasse[mdp_nr] then
  50.     motdepasse_correct := 1
  51.   else
  52.     motdepasse_correct := 0;
  53. end;
  54.  
  55. procedure arreter_systeme;
  56. begin;
  57.   textbackground(black);
  58.   textcolor(7);
  59.   clrscr;
  60.   writeln('Il aurait mieux valu acheter la version originale...');
  61.   halt(0);
  62. end;
  63.  
  64.  
  65. procedure Main_Programm;
  66. begin;
  67.   textbackground(black);
  68.   textcolor(7);
  69.   clrscr;
  70.   gotoxy(20,12);
  71.   writeln('Bienvenue dans le programme principal !');
  72.   gotoxy(20,22);
  73.   write('<Entrée> pour terminer ... ');
  74.   readln;
  75.   halt(0);
  76. end;
  77.  
  78. begin;
  79.   textbackground(black);
  80.   textcolor(7);
  81.   clrscr;
  82.   iterations_restantes := 57;
  83.   Pchoisir_nouveau_motdepasse := @choisir_nouveau_motdepasse;
  84.   Pdessiner_cadre_de_saisie   := @dessiner_cadre_de_saisie;
  85.   Pdemander_motdepasse      := @demander_motdepasse;
  86.   Parreter_systeme        := @arreter_systeme;
  87.   randomize;
  88.   boucle_de_saisie;
  89. end.
  90.  
  91.