AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Sudoku Logik

Ein Thema von hans ditter · begonnen am 20. Dez 2010 · letzter Beitrag vom 7. Mär 2011
Antwort Antwort
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Sudoku Logik

  Alt 28. Dez 2010, 21:50
Also, ich knabber im Moment noch ein wenig an der Auswahl des Feldes...
Da ich das ja mit einem einfachen 'i' machen soll (was ja auch Sinn ergibt), müsste man das dann ja wohl umrechnen. Nur leider will mir nicht richtig in den Kopf, wie das gehen soll.

Also, meine bisherigen Überlegungen:

Ich habe ein Spielfeld der Größe 4 x 4. Die Beschriftung der Felder ist (hier nur sporadisch) so:

1 - 2 - 3 - 4
5 - 6 - 7 - 8
usw.

Nun gebe ich für i=2 an:
(i mod 2) = 0 richtig!
i div 2 - 1 = 1 auch richtig!

Für i=10
(10 mod i) - 1 = 1 korrekt!
10 div i = 2 auch korrekt!

Aber, ist euch bestimmt aufgefallen, die beiden Rechnungen stimmen nicht überein. Hab das z.T. mal rot markiert. Aber wo ist mein Denkfehler?

Was würde denn passieren, wenn man 2 mod 4 nimmt? Dann müsste ja eig null rauskommmen, genauso wie bei 2 div 4, oder?

Ich brauch nochmal eure Hilfe!

hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Sudoku Logik

  Alt 28. Dez 2010, 23:04
Code:
yx| 00 01 02 03
---------------
0 | 00 01 02 03
1 | 04 05 06 07
2 | 08 09 10 11
3 | 12 13 14 15
Delphi-Quellcode:
x := i mod 4;
y := i div 4;
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Sudoku Logik

  Alt 29. Dez 2010, 21:23
aber wie würdest du die X-Koordinate für i=2 herausfinden?
i mod 4 = 2 mod 4 = 0... x müsste aber 2 sein...

also irgendwie ist das auch noch nicht ganz ausgereift... Wie macht man das bloß, es sind Ferien, ich merks...

hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Sudoku Logik

  Alt 29. Dez 2010, 22:04
i mod 4 = 2 mod 4 = 0... x müsste aber 2 sein...

Weißt du, was mod bedeutet?

Sieh's als Division mit Rest:
2 durch 4 = 0 Rest 2

Der Rest ist das Modulo:
2 div 4 = 0 <-- Y
2 mod 4 = 2 <-- X
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Sudoku Logik

  Alt 30. Dez 2010, 22:44
[edit]
Ich hab grad nochmal ein wenig rumgerechnet... Wenn ich jetzt für i=2 setzte ergibt sich mit deiner Rechenweise folgendes Ergebnis:
X: 2 mod 4 = 2--> hier müsste eig. 1 stehen
Y: 2 div 4 = 0

Bei i=12 folgendes:
12 mod 4 = 0 --> steht für nichts... bei 12 kommt keine Koordinate 0 vor
12 div 4 = 3 --> steht hier für X, statt für Y

Wo ist denn schon wieder der Fehler?? Ich glaub ich sitzt zu dicht vor meinem Problem... , seh praktisch den Wald vor lauter Bäumen nicht mehr.
[/edit]

ich danke dir!! Jetzt hab ich's verstanden.
Also bedeutet mod, den Rest, der noch gebraucht wird...

Bei 2 div 4 sagt uns das, 4 passt kein Mal in 2, deswegen Ergebnis=0
Bei 2 mod 4 heisst das, dass 4 immer noch nicht in 2 passt, aber ein Rest von (eigentlich -)2 überbleibt und deswegen Ergebnis=2.
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!

Geändert von hans ditter (30. Dez 2010 um 22:52 Uhr)
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Sudoku Logik

  Alt 5. Jan 2011, 20:01
Ich denke, ich konnte das Problem jetzt lösen... soll heissen, dass ich's noch nicht als Quelltext probiert hab!

Die Nummerierung i der Felder muss bei NULL anfangen, da war mein Fehler, meines Erachtens!

Code:
_|_0_|_1_|_2_|_3_|
0| 0 | 1 | 2 | 3 |
1| 4 | 5 | ...
2|
3|
Ich hatte die Nummerierung immer bei 1 angefangen. Jetzt kommen auch alle Rechungen hin!

2 Beispiele:

i = 2
X = 2 mod 4(Size) = 0 --> richtig
Y = 2 div 4 = 2 --> richtig

i = 5
X = 5 mod 4 = 1 --> richtig
Y = 5 div 4 = 1 --> richtig

Es funktioniert!!
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Sudoku Logik

  Alt 8. Jan 2011, 22:07
Also, schau mal bitte in diesen Beitrag.... Da wird definitiv return benutzt (und ja sogar erklärt...).

Kann aber auch sein, dass unser lieber Jason da was durcheinander gebracht hat.
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#8

AW: Sudoku Logik

  Alt 9. Jan 2011, 00:32
Also, schau mal bitte in diesen Beitrag.... Da wird definitiv return benutzt (und ja sogar erklärt...).

Kann aber auch sein, dass unser lieber Jason da was durcheinander gebracht hat.
Ich habe das ganze in Pseudo-Code geschrieben.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Sudoku Logik

  Alt 9. Jan 2011, 14:26
Oh... das hab ich dann wohl etwas missverstanden...

Naja, dann muss ich also retunr doch selber "ausschreiben"...

Danke!
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz