Einzelnen Beitrag anzeigen

xDIMAx

Registriert seit: 4. Feb 2012
5 Beiträge
 
#3

AW: Magisches Quadrat - Delphi/Pascal

  Alt 2. Mai 2012, 18:34
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: Gr:=2;
    1: Gr:=4;
    2: Gr:=6;
  else exit;
  end;
  for I:=0 to Gr do
    begin
      StringGrid1.Rows[I].Clear;
      StringGrid1.Cols[I].Clear;
    end;
  Memo1.Clear;
  StringGrid1.ColCount:=Gr+1;
  StringGrid1.RowCount:=Gr+1;
  SetLength(Quadrat, Gr*Gr, Gr*Gr);
  for I:=0 to Gr*Gr+2*Gr+1 do
    begin
      if I=0 then
        begin
          X:=Gr-trunc(Gr/2);
          Y:=Gr-trunc(Gr/2)+1;
          Quadrat[X, Y]:=1;
          StringGrid1.Cells[X, Y]:=IntToStr(Quadrat[X, Y]);
          Memo1.Lines.Add('Quadrat['+IntToStr(X)+','+IntToStr(Y)+'] '
                                    +'= '+IntToStr(Quadrat[X, Y]));
        end;
      X:=X+1;
      Y:=Y+1;
      if Quadrat[X, Y]<>0 then
        begin
          X:=X+2;
          Y:=Y+1;
        end;
      if X>Gr then X:=X-Gr-1;
      if Y>Gr then Y:=Y-Gr-1;
      Quadrat[X, Y]:=I;
    end;
  for X:=0 to Gr do
    begin
      for Y:=0 to Gr do
        begin
          Memo1.Lines.Add('Quadrat['+IntToStr(X)+','+IntToStr(Y)+'] '
                                    +'= '+IntToStr(Quadrat[X, Y]));
          StringGrid1.Cells[X, Y]:=IntToStr(Quadrat[X, Y]);
        end;
    end;
end;
Ich glaube ich hab nur noch mehr falsch gemacht, aber wenigstens hab ich schon mal eine Basis. :/
Sorry, bin ein Neuling auf dem Gebiet.

Programm:
https://docs.google.com/open?id=0B_X...HYxRmtncmxSM0U
  Mit Zitat antworten Zitat