home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 August / Chip_1999-08_cd.bin / tema / Ozogan / RUNTIME / APLIKACE.EXE / BLUDISTE.KL3 < prev    next >
Text File  |  1999-06-17  |  3KB  |  101 lines

  1. Program bludiste;
  2. Var SizeR, SizeS, PozR, PozS: Integer;
  3.  
  4. procedure ShowPoint(x, y, vis);
  5. begin
  6.    if vis then Image.PenColor(clRed) else Image.PenColor(clWhite);
  7.    Image.Point(x*SizeS-(SizeS/2), y*SizeR-(SizeR/2), 10);
  8. end;
  9.  
  10. procedure LoadBlu(Soubor: String);
  11. Var x, y, R, S: Integer; Rad: String;
  12. begin
  13.    PozR := 1; PozS := 2;
  14.    Image.PenColor(clBlack); Image.BrushColor(clWhite);
  15.    Image.Rectangle(1,1, Image.GetMaxX, Image.GetMaxY);
  16.    Image.BrushColor(clBlack);
  17.    Memo.Lines.LoadFromFile(Soubor);
  18.    for x:= 0 to Memo.Lines.Count-1 do
  19.    begin
  20.       rad:= Memo.Lines[x];
  21.       for y:= 1 to Length(Rad) do
  22.       begin
  23.          if Copy(Rad, y, 1) = '*' then
  24.          begin
  25.             R:= (x+1)*SizeR-SizeR; S:= y*SizeS-SizeS;
  26.             Image.Rectangle(S, R, S+SizeS, R+SizeR);
  27.          end;
  28.       end;
  29.    end;
  30.    ShowPoint(PozS, PozR, True);
  31. end;
  32.  
  33. procedure Krok_J;
  34. begin
  35.    if Copy(Memo.Lines[PozR], PozS, 1) = ' ' then
  36.    begin
  37.       ShowPoint(PozS, PozR, False); PozR := PozR+1; ShowPoint(PozS, PozR, True);
  38.    end;
  39. end;
  40. procedure Krok_V;
  41. begin
  42.    if Copy(Memo.Lines[PozR-1], PozS+1, 1) = ' ' then
  43.    begin
  44.       ShowPoint(PozS, PozR, False); PozS := PozS+1; ShowPoint(PozS, PozR, True);
  45.    end;
  46. end;
  47. procedure Krok_S;
  48. begin
  49.    if Copy(Memo.Lines[PozR-2], PozS, 1) = ' ' then
  50.    begin
  51.       ShowPoint(PozS, PozR, False); PozR := PozR-1; ShowPoint(PozS, PozR, True);
  52.    end;
  53. end;
  54. procedure Krok_Z;
  55. begin
  56.    if Copy(Memo.Lines[PozR-1], PozS-1, 1) = ' ' then
  57.    begin
  58.       ShowPoint(PozS, PozR, False); PozS := PozS-1; ShowPoint(PozS, PozR, True);
  59.    end;
  60. end;
  61.  
  62. procedure TForm.FormCreate(Sender: TObject);
  63. begin
  64.    SizeR := 10; SizeS := 10;
  65.    if FileExists('bludiste.map') then LoadBlu('bludiste.map');
  66. end;
  67.  
  68. procedure TForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  69. begin
  70.    if key=39 then Krok_V;
  71.    if key=38 then Krok_S;
  72.    if key=40 then Krok_J;
  73.    if key=37 then Krok_Z;
  74. end;
  75.  
  76. procedure TForm.Button_JClick(Sender: TObject);
  77. begin
  78.    Krok_J;
  79. end;
  80. procedure TForm.Button_VClick(Sender: TObject);
  81. begin
  82.    Krok_V;
  83. end;
  84. procedure TForm.Button_SClick(Sender: TObject);
  85. begin
  86.    Krok_S;
  87. end;
  88. procedure TForm.Button_ZClick(Sender: TObject);
  89. begin
  90.    Krok_Z;
  91. end;
  92. procedure TForm.SpeedButton1Click(Sender: TObject);
  93. begin
  94.    Form.Close;
  95. end;
  96. procedure TForm.OpenButtonClick(Sender: TObject);
  97. begin
  98.    If OpenDialog.Execute then LoadBlu(OpenDialog.FileName);
  99. end;
  100. end.
  101.