1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Program ReadBook;
{*** Lire un fichier d'ouverture, retenir les variantes qui correspondent
*** à la liste des coups déjà joués, mettre les coups trouvés dans un tableau
*** Choisir au hasard l'un de ses coups
*** écrit par Gérard Legat 27 avril 2015}
{$h+} {permet d utiliser des variables string > 255}
uses Classes, sysUtils ; { necessaire pour lire fichier}
var
inc, i, alea : integer;
Filename : string;
f : Textfile;
enreg : string;
coupKempelen : string;
Listecoups : string;
longueur : shortint;
extrait : string;
nouveaucoup : string;
reponseBiblio : array[1..300] of string;
begin
FileName := 'c:\users\glegat\documents\bibliokempelenv1.txt';
if not FileExists(Filename) then
begin
writeln('fichier non trouve : ',FileName);
readln;
halt;
end;
randomize;
nouveaucoup := '';
listecoups :='';
while nouveaucoup <> 'fin' do
begin
writeln;
{writeln(listecoups);}
write(' Votre coup : ');
readln(nouveaucoup);
listecoups := listecoups + nouveaucoup + ' ';
longueur := length(listecoups);
for i := 1 to 300 do reponsebiblio[i] := '';
begin
assignFile(F,FileName);
Reset(F);
inc := 1;
While not Eof(F) do
begin
{on lit l'enregistrement}
readln(F,enreg);
{on extrait la portion de chaine qui correspond à la longueur de la chaine a chercher}
extrait := copy(enreg,1,longueur);
{on compare l'extrait avec la suite de coup de la partie}
if extrait = listecoups then
begin
{on enregistre toutes les reponses de la bibliotheque};
reponsebiblio[inc] := copy(enreg,longueur+1,4);
inc := inc +1;
end;
end;
CloseFile(F);
end;
nouveaucoup := 'fin';
alea := random(inc);
if alea = 0 then alea := 1;
coupKempelen := reponsebiblio[alea];
if coupKempelen = ''
then
writeln('fin bibliotheque')
else
begin
write(' Kempelen joue : ',coupKempelen);
nouveaucoup :='';
listecoups := listecoups + coupKempelen +' ';
end;
end;
writeln('Le programme doit maintenant reflechir pour trouver un coup');
readln;
end. |
Partager