lehrkraefte:blc:informatik:ffprg1-2020:sudoku

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg1-2020:sudoku [2020/04/16 19:25]
Ivo Blöchliger [Alles ausprobieren, effizienter]
lehrkraefte:blc:informatik:ffprg1-2020:sudoku [2020/05/04 16:40] (current)
Ivo Blöchliger [Ausblick]
Line 72: Line 72:
 <code python> <code python>
   # Koordinaten von 0 bis 8   # Koordinaten von 0 bis 8
-  def ok(zahl, x, y):+  def ok(self, zahl, x, y):
     # Zeile überpruefen     # Zeile überpruefen
     # Spalte überpruefen     # Spalte überpruefen
Line 90: Line 90:
 <code python> <code python>
   def make_given(self):   def make_given(self):
-    self.given = [[feld[i][j]!=0 for j in range(9)] for i in range(9)]+    self.given = [[self.feld[i][j]!=0 for j in range(9)] for i in range(9)]
 </code> </code>
  
Line 129: Line 129:
        # Tu wat, mit self.feld[x][y] und self.given[x][y]        # Tu wat, mit self.feld[x][y] und self.given[x][y]
 </code> </code>
 +
 +[[https://fginfo.ksbg.ch/~ivo/videos/sudoku-alles-ausprobieren-simpel.mp4|Video-Erklärung dazu]]
  
 ===== Alles ausprobieren, effizienter ===== ===== Alles ausprobieren, effizienter =====
Line 135: Line 137:
 Die Anzahl möglicher Zahlen könnte jedes Mal neu berechnet werden, oder beim Setzen einer Zahl nachführen. Dazu müssen allerdings die Zustände gespeichert werden, oder beim Zurückgehen neu berechnet werden. Die Anzahl möglicher Zahlen könnte jedes Mal neu berechnet werden, oder beim Setzen einer Zahl nachführen. Dazu müssen allerdings die Zustände gespeichert werden, oder beim Zurückgehen neu berechnet werden.
 ===== Ausblick ===== ===== Ausblick =====
 +Um sich die Zähne auszubeissen, hier gibt es einige der schwierigsten Sudokus: http://minimumsudoku.com/Sudoku.html
 +
 +<code txt>
 +____24_8_+_3_______+____6____+___1__3_5+2_4______+______7__+_5_3__1__+6__5___4_+_________
 +____42_8_+_3_______+____6____+___1__3_5+2_4______+______7__+_5_3__1__+6__5___4_+_________
 +____45_7_+6___8____+_3_______+___7__3_2+__1______+5________+4______5_+_____16__+_2_3_____
 +____5_6__+___7___5_+__1______+4______17+_8__2____+_______3_+65____2__+_____14__+___3_____
 +___3__1_7+4___7____+______5__+61____3__+____48_2_+_5_______+2______48+___1_____+_________
 +___3__1_7+4___8____+______5__+61____3__+____49_2_+_5_______+2______49+___1_____+_________
 +___3__1_8+6___8____+______5__+71____3__+____46_2_+_5_______+2______64+___1_____+_________
 +___3_56__+___2___5_+_1_______+____4__81+27_______+_________+5_____2__+3__7_____+__8_1____
 +___6___71+4___7____+________8+516______+____3_2__+_8___4___+2_____43_+___1_____+_________
 +__1_5____+____6__8_+______3__+62______5+___4__1__+8________+2______6_+_8_3_____+_9_1_____
 +_2__3_4__+___1___7_+5________+_3__24___+_______81+_________+1_76_____+_____72__+8________
 +_684_____+______51_+_________+_2__7____+1_____4__+___6____8+5___1____+3_______6+_____6_2_
 +_7___1___+_3_____4_+______2__+___35___7+8_____1__+___4_____+1___4___6+___5___3_+2________
 +_83___7__+___6_2_4_+_________+____3_8__+6__7_____+_1______5+2______6_+5___8____+___1_____
 +_93___7__+___6_2_4_+_________+____3_9__+6__8_____+_1______5+2______6_+5___9____+___1_____
 +1__76____+_______92+5________+6_____75_+____39___+_8_______+_23______+___1__4__+_9_______
 +2_____4__+___5___9_+_8__1____+7___5__18+3_4______+_________+___3_26__+_1_______+___4_____
 +7______2_+___8__1__+3________+_4___7__3+__1___5__+____2____+___1___4_+___56____+8_______7
 +7_____34_+4___8_5__+___2_____+___16___2+3____4___+_8_______+_21______+______73_+_________
 +7_____34_+4___8_5__+___2_____+___61___2+3____4___+_8_______+_21______+______73_+_________
 +_______81+6___7____+_________+___8_1_4_+7_2______+3__4_____+2_____7__+____6_3__+_8_5_____
 +______6_1+7_2______+4__3_____+____8__2_+_6__1____+______4__+3______8_+___4_1___+___65____
 +____4__78+1__2_____+_________+6_____1__+_7__8____+_____2__5+_48____3_+___6_15__+_________
 +____4_58_+_36______+_2_____4_+8___25___+______7__+________6+___7_61__+2________+___3_____
 +____5__74+8_1______+_________+_7_24____+6_____1__+_________+2__1_63__+_4_____2_+___8_____
 +____6__51+_42______+_________+__7___4__+1___5____+___3___8_+___4_76__+53_______+___2_____
 +____61___+_9_____3_+_________+6_1___7__+___75__8_+4________+___2__4_9+_5_3_____+______1__
 +____7_2_4+__5_2_6__+8________+3__1___5_+_4__6____+_________+_2____4__+___5_3___+___8_____
 +____764__+5_2______+_________+___51_3__+_8_3_____+67_______+__82_____+_______65+_______8_
 +____8_3__+_24______+____1____+6_8___1__+3__5_____+___2_____+_7____53_+___4___2_+8________
 +___1__78_+5_23_____+_4_______+6__7___3_+_9______2+_________+1_____5__+____28___+____4____
 +</code>
 +
 +===== Zeit messen in Python =====
 +<code python>
 +import time
 +start_time = time.time()
 +#
 +# Grosse Berechnung (z.B. Lösen eines Sudokus)
 +#
 +# Dauer ausgeben:
 +print("--- %s seconds ---" % (time.time() - start_time))
 +</code>
  
  • lehrkraefte/blc/informatik/ffprg1-2020/sudoku.1587057908.txt.gz
  • Last modified: 2020/04/16 19:25
  • by Ivo Blöchliger