Program Numbermind;
Uses crt;
Var
n: string;
//***************************
Function verif(n:String): Boolean;
Var
i: Integer;
b: Boolean;
Begin
i := 0;
Repeat
i := i+1;
If n[i] In ['0'..'9'] Then
b := True
Else
b := False;
Until (Not(b)) Or (i=Length(n));
verif := (b And (Length(n)=8));
End;
//***************************
Procedure saisir(Var n:String);
Begin
Repeat
write('saisir le numero de telephone à deviner : ');
Readln(n);
Until verif(n);
End;
//***************************
Function norepeat(ch:String): string;
Var
ch2: string;
i: Integer;
Begin
ch2 := '';
For i:=1 To Length(ch) Do
If Pos(ch[i],ch2)=0 Then
ch2 := ch2+ch[i];
norepeat := ch2;
End;
//***************************
Procedure deviner(n:String);
Var
i,j,k: Integer;
ch: string;
Begin
i := 8;
Writeln('vous avez ',i,' essais');
Repeat
Repeat
write('proposer un numéro de téléphone :');
Readln(ch);
Until verif(ch);
If ch<>n Then
Begin
j := 0;
Repeat
j := j+1;
k := 0;
If ch[j]<>n[j] Then
Repeat
k := k+1;
If (n[k]=ch[j]) And (j<>k) Then
Writeln(ch[j],' qui est à la position ',j,
' dans la proposition n''est pas à sa bonne position');
Until (k>=Length(n)) Or ((n[k]=ch[j])And (j<>k));
Until j>=length(ch);
i := i-1;
If i<>1 Then Writeln('il vous reste ',i,' essais')
Else Writeln('il vous reste ',i,' essai');
For j:=1 To Length(ch) Do
Begin
If ch[j]=n[j] Then
Begin
write(ch[j]);
End
Else write('-');
End;
Writeln;
End;
Until (n=ch) Or (i<=1);
If n<>ch Then Writeln('désolé, vous avez perdu')
Else Writeln('bravo, vous avez gagné');
End;
//***************************
Begin
saisir(n);
Clrscr;
deviner(n);
End.
Inscription à :
Publier les commentaires (Atom)