Thema: Delphi Probleme mit Sudoku

Einzelnen Beitrag anzeigen

DelphNoob

Registriert seit: 11. Mär 2012
2 Beiträge
 
#1

Probleme mit Sudoku

  Alt 14. Mär 2012, 07:42
Halli hallo Leute Ich soll für den Unterricht ein Programm schreiben, und habe mich für ein Sudoku entschieden aber es stellt sich als schwerer heraus als ich dachte.
Ich habe ja bereits angefangen und eine Startseite erstellt mit einer ComboBox um den Schwierigkeitsgrad zu bestimmen und bei dem Startbutten werden in der Form2 9x9 editfelder generiert.
wie kann ich im Form2 ein sudoku einer bestimmten Schwierigkeitsgrad zuordnen und generieren lassen?
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    CBSchwGrad: TComboBox;
    BtStart: TButton;
    EdName: TEdit;
    PaUeberschrift: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure BtStartClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
Uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CBSchwGrad.AddItem('Leicht', Self);
  CBSchwGrad.AddItem('Mittel', Self);
  CBSchwGrad.AddItem('Schwer', Self);
end;

procedure TForm1.BtStartClick(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);
  Form2.ShowModal;
end;

end.
Delphi-Quellcode:
procedure TForm2.setposition(spalte:Integer; zeile:Integer; editfeld:Integer);
begin
  felder[editfeld].Font.Size:=22;
  felder[editfeld].Width:=50;
  felder[editfeld].Height:=50;
  felder[editfeld].AutoSize:=False;
  felder[editfeld].Top:=(8*zeile)+(50*(zeile-1));
  felder[editfeld].Left:=(8*spalte)+(50*(spalte-1));
end;

procedure TForm2.FormCreate(Sender: TObject);
var editfeld,spalte,zeile:Integer;
begin
  editfeld:=0;
  For spalte:=1 to 9 do
  begin
    For zeile:=1 to 9 do
    begin
      felder[editfeld]:=TEdit.Create(Form2);
      felder[editfeld].Parent:=Form2;
      setposition(spalte,zeile,editfeld);
    end;
  end;
end;
Also ich merke gerade, dass ich keine Ahnung von Delphi habe. Ich danke schon mal und hoffe jmd kann mir helfen.
  Mit Zitat antworten Zitat