Seite 1 von 1

Möchte ein Sudoku-Programm erstellen

Verfasst: 19.02.2010 20:38
von marcelx
Hallo,

ich bin ganz neue hier und habe pureBasic gefunden, nach dem ich nach ein neue Sprache gesucht habe.
Ich komme mehr von Linux/Java ... und mache meine erste Schritte aus Windows (was Software Entwicklung angeht).

Was ich bei pureBasic gut finde ist, das ich damit Executable für Windows erzeugen kann.

Mein Vorhaben ist ein suduko-Program zu realisieren (kenne ich von Java).
Mit Erzeugung + Lösung und ein Möglikeit ein "Vordruck" zu erzeugen.

Mal sehe wie es klappt (ich habe pureBasic noch nicht installiert)

Salut
Marcel

Änderung von WPö: Thementitel angepaßt.

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:40
von Andesdaf
Willkommen an Board,

Hast du auch eine Frage oder war das einfach nur ein "Hallo, ich bin neu hier"?

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:41
von WPö
Hallo!

Erstmal willkommen hier im Forum, auch zu Purebasic. Woher kommst Du?
Wenn Du bessere Hilfe von Anfang an willst, schreib doch mal Deine Rechnerausstattung in die Signatur.

Gruß - WPö

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:42
von marcelx
Na ja, beides.

Ich habe nicht vor heute Abend los zu legen.
Ich muss mich zu erste zurecht finden mit die für mich neue Syntax (und ohne OO)

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:45
von marcelx
Es geht schon los:
> Woher kommst Du?
Wie meist Du das? (ich komme auf Frankreich)
Zweite:
wie geth das mit der Signatur?

Muss leider Schluss machen (es gibt was zum essen)

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:46
von RSBasic
Herzlich Willkommen marcelx,


kannst ja erstmal reinschauen,wie die Syntax aufgebaut ist und wie ein Sudoku-Spiel aufgebaut ist:
http://www.purebasic.fr/german/viewtopi ... 11&t=19974
http://www.purebasic.fr/german/viewtopi ... 12&t=15919
http://www.purebasic.fr/german/viewtopi ... =12&t=5735

Viel Spaß :allright:

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:55
von WPö
Frankreich - na, dann sehen wir mal über den eigentümlichen Sprachduktus hinweg. 8)

Sobald Du angemeldet bist, siehst Du unter dem Seitenkopf Persönlicher Bereich, darin in Optionen das Profil, darin Signatur ändern.
Da gibst Du ein paar Infos ein und klickst auf Absenden. Dann klappt es.

Gruß - WPö

Re: neue und suduko-Program

Verfasst: 19.02.2010 20:59
von Mok
marcelx hat geschrieben:und ohne OO
Stimmt fast!
In PureBasic gibt es zwar keine Klassen, aber es gibt Structures, von denen auch geerbt werden kann.
Beispiel:

Code: Alles auswählen

JAVA:
public class Test{
    int a, b;
    boolean c = false;
    public Test (int a, int b, boolean c) {
        this.a = a; this.b = b; this.c = c;
    }
    public void printVar() {
        System.out.println("a: "+a);
        System.out.println("b: "+b);
        System.out.println("b: "+b);
    }
}

Code: Alles auswählen

PUREBASIC:
Structure Test
    a.i
    b.i
    c.l
EndStructure
; Konstruktor gibt es nicht, aber es gibt:
Define var.Test
var\c = #False
; klassenspezifische Methoden gibt es auch nicht, aber es gibt Procedures
Procedure PrintVar()
    PrintN("a: "+Str(a))
    PrintN("b: "+Str(b))
    PrintN("c: "+Str(c))
EndProcedure

;BSP für Vererbung
Structure SubTest Extends Test
    d.s
EndStructure

Define var2.SubTest
var2\a = 4
var2\d = "Hallo Welt"
MfG, Mok

PS: Auch von mir: Herzlich Willkommen oder eben bienvenue! :allright:

Re: Möchte ein Sudoku-Programm erstellen

Verfasst: 03.03.2010 20:22
von marcelx
Bevor ich mit pureBasic-Code los lege :

Ich habe mir ein Überblick verschafft über Algorithmus für sudoku
und die PB-Programm beim mir ausgeführt.
http://www.purebasic.fr/german/viewtopi ... 12&t=15919
Die Ausführungszeit ist sehr langsam.

Ich habe überlegt wie ich ein sudoku + Lösung so realisieren kann:

A) ein fertigt gelöst sudoku (LOESUNG) erzeugen als Array
Dafür habe ich ein LösungsWeg (siehe unten).
Die Frage ist: wie eindeutig ist er?

B) einer Maske (MASKE) als 9X9 Array mit 0 und 1:
In Abhängigkeit der Schwierigkeitsgrad, werden 0 und 1 verteilt:
001 010 000
100 001 110
011 100 000
...
- Da habe ich mir noch keine Gedanke gemacht wie zu realisieren

C) Aus den Array LOESUNG werden die Zellen in eine neue Array (SUDOKU) übernommen, wen die dazugehörige Zelle aus den Array MASKE auf 1 gesetzt sind.
Die anderen Zellen bleiben leer.
Da habe ich mir auch keinen Gedanken gemacht.
Gibt eine PB-Funktion für so was?

Sonst noch offen ist für mich:
- Ist der erzeugt und zu lösende suduko lösbar?
- Gibt es eine eindeutige Lösung?

Hier mein Ansatz für A:
=======================

Das ganze 9x9-sudoku schreibe ich in ein 9x9 Array (Block).
Gedankliche, teile ich den sudoku in 3x3 Feldern (A .. I)
Eine Zelle ist ein Stelle mit ein Zahl (1 .. 9) in den array.

Und so sehe ich mein sudoku:

Code: Alles auswählen

+-+-+-+-+-+-+-+-+-+
|     |     |     |
|  A  |  B  |  C  |
|     |     |     |
+-+-+-+-+-+-+-+-+-+
|     |     |     |
|  D  |  E  |  F  |
|     |     |     |
+-+-+-+-+-+-+-+-+-+
|     |     |     |
|  G  |  H  |  I  |
|     |     |     |
+-+-+-+-+-+-+-+-+-+
1.) im Block A, E und I schreibe ich zufällige Zahlen von 1 .. 9
und bekomme z.B.:

Code: Alles auswählen

+-+-+-+-+-+-+-+-+-+
|4 2 6|     |     |
|1 7 9|     |     |
|8 5 3|     |     |
+-+-+-+-+-+-+-+-+-+
|     |1 3 8|     |
|     |4 6 9|     |
|     |7 2 5|     |
+-+-+-+-+-+-+-+-+-+
|     |     |3 8 6|
|     |     |5 2 9|
|     |     |7 1 4|
+-+-+-+-+-+-+-+-+-+
2.) in der Reihenfolge D, H, G, B, F und G schreibe ich zufällige Zahlen von 1 .. 9, welche in der Spalte und Zeile der dazugehörige Zelle nicht vorhanden sind und noch nicht in den zugehörige Block

Code: Alles auswählen

+-+-+-+-+-+-+-+-+-+
|4 2 6|     |     |
|1 7 9|< 4. |< 6. |
|8 5 3|  v  |  v  |
+-+-+-+-+-+-+-+-+-+
| ^   |1 3 8|     |
| 1.> |4 6 9|< 5. |
|     |7 2 5|  v  |
+-+-+-+-+-+-+-+-+-+
| ^   | ^   |3 8 6|
| 3.> | 2.> |5 2 9|
|     |     |7 1 4|
+-+-+-+-+-+-+-+-+-+

z.B für D
+-+-+-+-+-+-+-+-+-+
|4 2 6|     |     |
|1 7 9|     |     |
|8 5 3|     |     |
+-+-+-+-+-+-+-+-+-+
|7 9 2|1 3 8|     |
|5 8 1|4 6 9|     |
|6 3 4|7 2 5|     |
+-+-+-+-+-+-+-+-+-+
|     |     |3 8 6|
|     |     |5 2 9|
|     |     |7 1 4|
+-+-+-+-+-+-+-+-+-+
Soweit so gut und Hilfen/Kommentaren erwünscht.
Merci et salut
Marcel