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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| {$APPTYPE CONSOLE}
{$MODE DELPHI} // Result
program QuelJour;
{ Nom du fichier : QuelJour.pas
Description : Jeu pour montrer le principe de la sauvegarde d'une partie.
Compilation : FreePascal. }
uses
Crt, // ClrScr, ReadKey
SysUtils; // DayOfWeek, Now
const
nomFichier = 'partie.txt';
type
tJour = (dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi);
tEnregPartie = record
nomJoueur: string;
essai: integer;
end;
function Aujourdhui: tJour;
begin
Result := dimanche;
Inc(Result, DayOfWeek(Now)-1);
end;
var
partieCourante: tEnregPartie;
procedure InitialisationStandard(var aPartie: tEnregPartie);
begin
ClrScr;
WriteLn('Nom du joueur ?');
ReadLn(aPartie.nomJoueur);
aPartie.essai := 1;
end;
procedure SaisieReponse;
var
entree: string;
jour: tJour;
erreur: integer;
begin
ClrScr;
WriteLn('Votre proposition ?');
ReadLn(entree);
Val(entree, jour, erreur);
if (erreur = 0) and (jour = Aujourdhui) then WriteLn('Vrai !') else
WriteLn('Faux !');
Inc(partieCourante.essai);
WriteLn('Appuyez sur ENTREE...');
ReadLn;
end;
procedure Sauvegarde;
var
f: text;
begin
Assign(f, nomFichier);
Rewrite(f);
WriteLn(f, partieCourante.nomJoueur);
WriteLn(f, partieCourante.essai);
Close(f);
end;
procedure Menu;
begin
ClrScr;
WriteLn('(* ----------------------- *)');
WriteLn('(* Quel jour sommes-nous ? *)');
WriteLn('(* ----------------------- *)');
WriteLn('');
WriteLn('Nom du joueur : ', partieCourante.nomJoueur);
WriteLn('Essai : ', partieCourante.essai);
WriteLn('');
WriteLn('Menu : [N] Nouvelle partie');
WriteLn(' [P] Proposer une rponse');
WriteLn(' [Q] Quitter le programme (1)');
WriteLn('');
WriteLn('(1) La partie en cours sera sauvegarde.');
case ReadKey of
'N', 'n': InitialisationStandard(partieCourante);
'P', 'p': SaisieReponse;
'Q', 'q': begin
Sauvegarde;
Halt;
end;
end;
end;
function ChargeDernierePartie: boolean;
var
f: text;
begin
Assign(f, nomFichier);
{$I-}
Reset(f);
{$I+}
Result := IOResult = 0;
if Result then
begin
ReadLn(f, partieCourante.nomJoueur);
ReadLn(f, partieCourante.essai);
Close(f);
end;
end;
begin
if not ChargeDernierePartie then
InitialisationStandard(partieCourante);
while TRUE do
Menu;
end. |
Partager