Смотри рисунок в низу
Похожее для abcPL
1 шаг)Принцип работы программы простой: сначала берутся поочередно все символы из шифруемой строки, потом они конвертируются в числа, например a – 1, b – 2, z – 26 и тд. Потом эти числа переводятся в формат RGB, для конвертации в формат RGB нужно три числа, значит в одном квадрате можно зашифровать три символа. А затем уже рисуется квадрат с заданным цветом.
2 шаг)Первое, что нужно сделать – это функцию конвертирования символа в цвет. Я ее назвал "Code”.function Code(str : string): integer;
var i : integer;
begin
For i:=1 to 26 do
begin
if Chr(96+i)=str then Result:=i;
end;For i:=1 to 26 do begin if Chr(64+i)=str then Result:=i+26; end; For i:=1 to 32 do begin if Chr(223+i)=str then Result:=i+52; end; For i:=1 to 32 do begin if Chr(191+i)=str then Result:=i+84; end; end;Если написать команду write(Code(‘a’)); то на экран будет выведен код символа "а”. На экране появится единица.
3 шаг)А потом нужно сделать функцию разбивки шифруемой строки и рисования цветных квадратов.
For j:=1 to Trunc(Length(in_str)/3) do
begin
x:=j*3-2;
tmpR:=round(Code(Copy(in_str,x,1))li_lv);
tmpG:=round(Code(Copy(in_str,x+1,1))li_lv);
tmpB:=round(Code(Copy(in_str,x+2,1))*li_lv);If debug=1 then begin WriteLn(chr(39),Copy(in_str,x,1),chr(39),’ – ’,tmpR); WriteLn(chr(39),Copy(in_str,x+1,1),chr(39),’ – ’,tmpG); WriteLn(chr(39),Copy(in_str,x+2,1),chr(39),’ – ’,tmpB); WriteLn; end; SetBrushColor(RGB); Rectangle(wc*a,hc*a,(wc+1)a,(hc+1)a); inc(wc); if wc=maxw then begin wc:=0; hc:=hc+1; end; end;