9 keer 10 plaatjes met 9 achtergronden cijfers 1 ... 9 in het midden

  • 4 Reacties
  • 53 Gelezen
Gepost op: 30 september 2019, 18:13:17
Hi,
Ik ben een Sudoku fan, standard, + diagonalen (of alleen) hyper (dan zijn er midden in 4 9x9 blokken ook verschillend, met reken sommen voor bepaalde vakjes als hulp,  in plaats van 3x3 plokken deze 9 vakken onregelmatig
aan elkaar geplakt.

En om een oplossing te laten zien, wil ik EEN plaatje laten zien waar de negen cijfers met dezelfde (9 keer of meer) verschillend achtergrond kleur
getoond zullen worden.

Overigens, oplossen is voor het grootste gedeelte m.b.v. Python
in een Python-notebook m.b.v. de oplosser Solver() van het microsoft-pakket z3 heel erg eenvoudig.

Het plaatje maken ... daarvoor heb ik (minstens) 9x9 verschillende
cijferplaatjes nodig.

Er is wel een website, die dat EEN voor EEN kan genereren ...
Maar zelf is de mens (vrouw of man ;-) ).

Plan is: met Gimp en Python-Fu de 'mini' plaatjes met elk EEN cijfer
er in te genereren ...

Heeft iemand zin om mee te denken hou dat kan? Treffwoord: Samenwerken

PKHG = Peter Gragert
Gepost op: 30 september 2019, 19:01:30
Leuk probleem.
Ik denk als volgt:
1. teken met Gimp 9x9 diagram met afmeting X
2. de cijferposities met bekende lettergrootte zijn dan bekend
3. genereer met python de nodige cijfers
4. plaats deze in het diagram

Euh ik wil geen oplossing maar een Sudoku met slechts enkele cijfers erin.

5. welke cijfers in het diagram kan ik weglaten om toch met de resterende cijfers het diagram te kunnen oplossen.

De eerste 4 punten zijn niet moeilijk de laatste wel.
Happy Gimping,

E. Sullock Enzlin
Gepost op: 1 oktober 2019, 07:43:39
Mal sehen ob ich heute noch Zeit hab (25 Bridgespiele auswerten etc. Nachmittags Enkelsohn von der Schule holen etc.)

Die eersten 4 ... wird wohl gelingen ...

Das 'was'-reicht probleem kan mit meinem z3-oplosser geknakt (Eindeutigkeit) gelöst werdern zeigt mal eure 'Probleme' dann schau ich
mal was kann ... mit der Hand is das ziemlich mühsam

Oben links ist ein komisches 9 Ziffern Fach (über der 9 ist die 1)
Die Hintergründe sind nun NICHT alle gleich und DAS will ich aber
der Deutlichkeit halber (und für die anderen auch ...)ß
 
Peter

En nog een plaatje waar je mee zou kunnen beginnen, ;-)
« Laatst bewerkt op: 1 oktober 2019, 12:42:01 door PeterGragert »
Gepost op: 1 oktober 2019, 13:45:02
Tja dit zijn de eenvoudigste stappen (1 t/m 4) nu 5 nog.
Misschien bij stap 5 nog toevoegen *, **, ***, **** of ***** (moeilijkheidsgraad).
Happy Gimping,

E. Sullock Enzlin
Gepost op: 5 oktober 2019, 14:49:02
Zo hier een iets aangepast kopie van de Gimp Python Console
waar ik met een for-loop een aantal (1 ... 9) cijferplaatjes heb laten genereren, (moet nog een plugin worden, tenminste vroeger kon ik dat )
Als het goed is kun je de text tussen de --- in een Gimp Python Console
plakken. Je moet maar EEN wijziging doen: mijndirEnPicstart aanpassen:
. is je 'home' dir na de laatste / beginletters van de te maken plaatjes
er wordt nog de x.png  (x hier tussen 1 en 9) door de functie nextCijfer
achter geplakt.
Noch moppert Python met wat waarschuwingen ... moet dus nog ietsiebietsie verbeterd worden EN een geëigende plugin van maken:
Werk aan de winkel , hi hi,

Ben benieuwd of iemand het aandurft uittevoeren ;-)
Fijne dag nog!
Peter

---------
 import gimpfu as gf

mijndirEnPicstart = './IpythonNotebooks/Gimp/t3nC'

def maakImage(width = 40, height=40):
    global image, display
    image = pdb.gimp_image_new(width, height, 0)                           
    display = pdb.gimp_display_new(image)     
    return image, display


def maakLayerNR(nr):
    result = 'Layer' + str(nr)
    result += ' = pdb.gimp_layer_new(image, 40, 40, 0 , \'Layer' +  str(nr) + '\', 100, 0)'
    return result

 
def zetinLayer(layer, color=(255,255,255)):
    pdb.gimp_context_set_foreground(color)
    layer.fill(0)
    #pdb.gimp_image_add_layer(image, layer, position)
    gf.gimp.Image.add_layer(image, layer)
    #pdb.gimp_text_layer_set_color(c2, 'green')
    print (str(layer) + ' is nu ingezet')


def nextCijfer(i):
    #image = pdb.gimp_image_new(40, 40, 0)                           
    #display = pdb.gimp_display_new(image)
    image, layer = maakImage()
    L0s = maakLayerNR(0)
    exec(L0s)
    zetinLayer(Layer0)
    Ti =  pdb.gimp_text_layer_new(image, ' ' + str(i) + ' ', 'BOLD SANS', 40, 0)
    zetinLayer(Ti)
    pdb.gimp_text_layer_set_color(Ti, 'red')
    layer = pdb.gimp_image_merge_down(image, Ti, 0)
    pdb.file_png_save(image, layer, mijndirEnPicstart + str(i) + '.png',  mijndirEnPicstart + str(i) + '.png', 0, 8, 0, 1, 0, 0, 0)
    #gaat niet ???? pdb.gimp_image_delete(image)
    #pdb.gimp_display_delete(display)
    pdb.gimp_display_delete(display)
    pdb.gimp_image_delete(image) #extra PKHG
    return ('cijfer{} zou er opgeslaan zijn '.format(i),image,layer)

for i in range(1,10):
    nextCijfer(i)
"""
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 1 '> is nu ingezet
('cijfer1 zou er opgeslaan zijn ', <gimp.Image '[Unbenannt]'>, <gimp.Layer 'Layer0'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 2 '> is nu ingezet
('cijfer2 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 3 '> is nu ingezet
('cijfer3 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 4 '> is nu ingezet
('cijfer4 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 5 '> is nu ingezet
('cijfer5 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 6 '> is nu ingezet
('cijfer6 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 7 '> is nu ingezet
('cijfer7 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 8 '> is nu ingezet
('cijfer8 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
<gimp.Layer 'Layer0'> is nu ingezet
<gimp.Layer ' 9 '> is nu ingezet
('cijfer9 zou er opgeslaan zijn ', <gimp.Image '(null)'>, <gimp.Layer '(null)'>)
"""
----------