Anagram
#15
الحمد لله, انتهيت من نسخة اولية للبرنامج, لكنها تحتاج للتحسين:

PHP كود :
var
  
Form1: TForm1;
  
DictionaryArray : array[0..2000] of string;

Const 
Numbrs : string = '123456789';

implementation

{$R *.dfm}

Function 
GenerateSequence(CPoint : String; L : Integer): String;
var 
Increaser : array[1..8] of Integer;
i : Integer;
AnagramSequence : String;
begin
FillChar
(Increaser,SizeOf(Increaser),0);
For 
i := 1 to Length(CPoint) do
Increaser[9 - i] := StrToInt(CPoint[L + 1 - i]);

//==========================================//

If Increaser[8] <= L Then
Increaser
[8] := Increaser[8] + 1;

If 
Increaser[8] > L Then
begin
Increaser
[8] := 1;
Increaser[7] := Increaser[7] + 1;
end;

If (
Increaser[7] > L - 1) and (L > 3) Then
begin
Increaser
[8] := 1;
Increaser[7] := 1;
Increaser[6] := Increaser[6] + 1;
end;

If (
Increaser[6] > L - 2) and (L > 4) Then
begin
Increaser
[8] := 1;
Increaser[7] := 1;
Increaser[6] := 1;
Increaser[5] := Increaser[5] + 1;
end;

If (
Increaser[5] > L - 3) and (L > 5) Then
begin
Increaser
[8] := 1;
Increaser[7] := 1;
Increaser[6] := 1;
Increaser[5] := 1;
Increaser[4] := Increaser[4] + 1;
end;

If (
Increaser[4] > L - 4) and (L > 6) Then
begin
Increaser
[8] := 1;
Increaser[7] := 1;
Increaser[6] := 1;
Increaser[5] := 1;
Increaser[4] := 1;
Increaser[3] := Increaser[3] + 1;
end;

If (
Increaser[3] > L - 5) and (L > 7) Then
begin
Increaser
[8] := 1;
Increaser[7] := 1;
Increaser[6] := 1;
Increaser[5] := 1;
Increaser[4] := 1;
Increaser[3] := 1;
Increaser[2] := Increaser[2] + 1;
end;

//==========================================//

AnagramSequence := IntToStr(Increaser[1]) + IntToStr(Increaser[2]) + IntToStr(Increaser[3]) + IntToStr(Increaser[4]) + IntToStr(Increaser[5]) + IntToStr(Increaser[6]) + IntToStr(Increaser[7]) + IntToStr(Increaser[8]);
Result := AnsiReplaceStr(AnagramSequence,'0','')
end;

procedure LoadDictionary(DictionaryPath : String);
var 
F : TextFile;
i : Integer;
begin
i 
:= 0;
AssignFile(F,DictionaryPath);
Reset(F);
While 
Not Eof(F)do
begin
Readln
(F,DictionaryArray[i]);
Inc(i);
end;
CloseFile(F);
end;

function 
CheckInDictionary(RandedWord : String): Boolean;
begin
If (AnsiIndexText(RandedWord,DictionaryArray) = -1) then
Result 
:= False
else
Result := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
LoadDictionary
('wordlist.txt');
Label1.Caption := 'Dictionary: Loaded.';
Label1.Font.Color := ClGreen;
end;

procedure TForm1.Button1Click(Sender: TObject);
var 
FRand, MRand, RandedWord, AnagramSequence : String;
RandedIndex, i : Integer;
begin
FRand 
:= Edit1.Text;
MRand := FRand;
RandedWord := MRand;
AnagramSequence := StringOfChar('1',Length(FRand));
While 
CheckInDictionary(RandedWord) = False do
begin
MRand 
:= FRand;
RandedWord := '';

AnagramSequence := GenerateSequence(AnagramSequence, Length(FRand));

For 
i := Length(AnagramSequence) downto 1 do
begin
Application
.ProcessMessages;
RandedIndex := StrToInt(AnagramSequence[i]);
RandedWord := RandedWord + MRand[RandedIndex];
Delete(MRand,RandedIndex,1);
end;

end;
Edit2.Text := RandedWord;
end; 
الرد


الردود في هذا الموضوع
Anagram - بواسطة Goblin - 05-02-2010, 12:34 AM
Anagram - بواسطة TF6M - 05-02-2010, 01:06 AM
Anagram - بواسطة Goblin - 05-02-2010, 01:16 AM
Anagram - بواسطة TF6M - 05-02-2010, 01:34 AM
Anagram - بواسطة kachwahed - 05-02-2010, 09:58 AM
Anagram - بواسطة Goblin - 05-02-2010, 11:00 AM
Anagram - بواسطة TF6M - 05-02-2010, 11:36 AM
Anagram - بواسطة Goblin - 05-02-2010, 01:15 PM
Anagram - بواسطة TF6M - 05-02-2010, 01:46 PM
Anagram - بواسطة Goblin - 05-02-2010, 03:58 PM
Anagram - بواسطة TF6M - 05-02-2010, 04:19 PM
Anagram - بواسطة Goblin - 06-02-2010, 09:58 PM
Anagram - بواسطة TF6M - 06-02-2010, 10:21 PM
Anagram - بواسطة Goblin - 06-02-2010, 10:30 PM
Anagram - بواسطة Goblin - 15-02-2010, 07:23 PM
Anagram - بواسطة Goblin - 22-02-2010, 04:48 PM
Anagram - بواسطة AL-MOB4RM3G - 22-02-2010, 07:31 PM
Anagram - بواسطة mohfa - 22-02-2010, 08:25 PM
Anagram - بواسطة Goblin - 23-02-2010, 12:50 PM
Anagram - بواسطة mohfa - 23-02-2010, 07:28 PM
Anagram - بواسطة Goblin - 25-02-2010, 07:51 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم