Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,73 @@
|
|||
program Test;
|
||||
{$IFDEF FPC}{$MODE DELPHI}{$ELSE}{$APPTYPE}{$ENDIF}
|
||||
uses
|
||||
sysutils;
|
||||
const
|
||||
cCHAR: array[0..1] of char = ('_','#');
|
||||
type
|
||||
TRow = array of byte;
|
||||
|
||||
function ConvertToRow(const s:string):tRow;
|
||||
var
|
||||
i : NativeInt;
|
||||
Begin
|
||||
i := length(s);
|
||||
setlength(Result,length(s));
|
||||
For i := i downto 0 do
|
||||
result[i-1]:= ORD(s[i]=cChar[1]);
|
||||
end;
|
||||
|
||||
function OutRow(const row:tRow):string;
|
||||
//create output string
|
||||
var
|
||||
i: NativeInt;
|
||||
Begin
|
||||
i := length(row);
|
||||
setlength(result,i);
|
||||
For i := i downto 1 do
|
||||
result[i]:= cChar[row[i-1]];
|
||||
end;
|
||||
|
||||
procedure NextRow(row:pByteArray;MaxIdx:NativeInt);
|
||||
//compute next row in place by the using a small storage for the
|
||||
//2 values, that would otherwise be overridden
|
||||
var
|
||||
leftValue,Value: NativeInt;
|
||||
i,trpCnt: NativeInt;
|
||||
Begin
|
||||
leftValue := 0;
|
||||
trpCnt := row[0]+row[1];
|
||||
|
||||
i := 0;
|
||||
while i < MaxIdx do
|
||||
Begin
|
||||
Value := row[i];
|
||||
//the rule for survive : PopCnt == 2
|
||||
row[i] := ORD(trpCnt= 2);
|
||||
//reduce popcnt of element before
|
||||
dec(trpCnt,leftValue);
|
||||
//goto next element
|
||||
inc(i);
|
||||
leftValue := Value;
|
||||
//increment popcnt by right element
|
||||
inc(trpCnt,row[i+1]);
|
||||
//move to next position in ring buffer
|
||||
end;
|
||||
row[MaxIdx] := ORD(trpCnt= 2);
|
||||
end;
|
||||
|
||||
const
|
||||
TestString: string=' ### ## # # # # # ';
|
||||
var
|
||||
s: string;
|
||||
row:tRow;
|
||||
i: NativeInt;
|
||||
begin
|
||||
s := Teststring;
|
||||
row:= ConvertToRow(s);
|
||||
For i := 0 to 9 do
|
||||
Begin
|
||||
writeln(OutRow(row));
|
||||
NextRow(@row[0],High(row));
|
||||
end;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue