AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Sudoku

Offene Frage von "Jumpy"
Ein Thema von DelphNoob · begonnen am 14. Mär 2012 · letzter Beitrag vom 14. Mär 2012
Antwort Antwort
DelphNoob

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

Probleme mit Sudoku

  Alt 14. Mär 2012, 08: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
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Probleme mit Sudoku

  Alt 14. Mär 2012, 08:51
Hallo und willkommen im Forum

Also ich merke gerade, dass ich keine Ahnung von Delphi habe. Ich danke schon mal und hoffe jmd kann mir helfen.
Das ist dabei noch nicht einmal das größte Problem. Ich habe vor ein paar Jahren mehrere Wochen für einen einigermaßen akzeptablen Algorithmus gebraucht um gültige Sudokus schnell zu generieren. Und dazu kommt dann noch der Schwierigkeitsgrad.

Jedenfalls musst du dir erst einmal darüber klar werden wie du die Sudokus überhaupt generieren willst. Danach kannst du anfangen das in Delphi umsetzen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DelphNoob

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

AW: Probleme mit Sudoku

  Alt 14. Mär 2012, 08:56
Danke für die schnelle Antwort,
Ich wollte mir das für den Unterricht nicht zu kompliziert machen.
Ich wollte einfach aus einer Zeitschrift schon fertige Sudokus nehmen, und im Hintergrund das gelöste. und die eingaben sollen mit dem gelösten einfach verglichen werden.
Ich weiß nun leider nicht wie ich ein schon fertiges (ungelöstes) Sudoku nach der Auswahl des Schwierigkeitsgrades anzeigen lassen kann.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Probleme mit Sudoku

  Alt 14. Mär 2012, 09:11
Wäre es nicht vllt. einfacher ein Programm zu schreiben, das Sudokus löst?
Da gibt's hier im Forum doch schon einige Ansätze, wo man sich Ideen holen kann. Jenachdem welche Lösungsvariante man wählt, könnte man sich so auch ein bißchen mit Rekursion beschäftigen. Und mit Arrays, denn man sollte hier Anzeige (z.B. via Grid) von der Logik trennen. Wäre halt eine gute Übung.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz