Dawgora miniblogs

  • Dawgora
    0

    Tā... Esmu izveidojis Sudoku ģeneratoru... Nu labi, precīzāk Sudoku atrisinātāju, kas ar ievadītām vērtībām var aprēķināt vai var vispār to visu aprēķināt.

    Tagad man vajag izdomāt kā izveidot ģeneratoru un kā izdarīt tā, lai izvada tos skaitļus un tukšās vietas (pagaidām 0). as in... Vajag izdomāt kā izveidot ģeneratoru.

    Pagaidām doma ir kaut kā izveidot skriptu, kas ievada random skaitļus masīvā (nu piemēram... 25) un tad ar to programmu, ko pašlaik esmu izveidojis, pārbauda vai ir atrisinājums. Ja nav, tad ģenerē pa jaunu.

    Varbūt kādam ir labākas idejas? Vai arī kāds kods ko būtu viegli pārveidot uz Javu?

    • S J
      0

      Nu, es to taisītu tā, lai pēc katra cipara ģenerēšanas atzīmē, kādus ciparus var likt pārējos laukumiņos, un tad pārabuda, vai viss ir ok.

    • Viesty
      0

      Ja tu katru reizi randomizēsi, tas būs diezgan liels resursu patēriņš un ilgi biggrin_mini2.gif

    • Dawgora
      0

      Pagaidām man ir tā... Izveidoju parastu sudoku
      1 2 3 4 5 6 7 8 9
      4 5 6 7 8 9 1 2 3
      7 8 9 1 2 3 4 5 6
      2 1 4 3 6 5 8 9 7
      3 6 5 8 9 7 2 1 4
      8 9 7 2 1 4 3 6 5
      5 3 1 6 4 2 9 7 8
      6 4 2 9 7 8 5 3 1
      9 7 8 5 3 1 6 4 2

      Tad izveidoju public static void shuffle(int[][]table) kur tiek samainītas rindiņas ar vietām (Piemēram... 1 ar 2 vai 1 ar 3. Ir tā lieta ka var mainīt sudoku tos elementus tikai pa kastes robežām.), kolonas ar vietām, viss table masīvs tiek pārveidots no horizontāla uz vertikāla stāvokļa (flipoju) un to izdaru pāris reizes. Tagad vēl ir ideja paņemt samainīt veselas 3 kastes un kaut kur tās salikt atkal.

      • Viesty
        0

        Well, tu vari pamēģināt katrā 3x3 blokā shufflot visus 1-9 ciparus. Tas aizņems daudz laika (koda izpilde)   , bet man būtu interesanti paskatīties biggrin_mini2.gif

        • Dawgora
          0

          Shuflot 3x3... Bad idea. Nebūs patiesas vērtības.

    • Dawgora
      0

      Pagaidām esmu ticis tik tāli, ka no dotā masīva varu ģenerēt...

      6 4 2 8 7 9 5 3 1
      5 3 1 2 4 6 9 7 8
      9 7 8 1 3 5 6 4 2
      7 8 9 3 2 1 4 5 6
      4 5 6 9 8 7 1 2 3
      1 2 3 6 5 4 7 8 9
      3 6 5 7 9 8 2 1 4
      2 1 4 5 6 3 8 9 7
      8 9 7 4 1 2 3 6 5

      Emm... Ja iemestu kādas preset Values, tad jau būtu daudz skaistāk.

      • Viesty
        0

        Beisiklī tev taču viss strādā cik paskatījos. Vai arī es neprotu sudoku?

        • Dawgora
          0

          Beisiklī strādā.
          Tikai neprotu izveidot tā, ka izvada gridu, kuram ir tikai 1 atrisinājums.

        • Viesty
          0

          Pēc katras ģenerēšanas visu vienkārši nodzēs, pēc pēdējās nē.

    • Gek
      0

      Vai nevar uztaisīt tā, ka uzģenerē pirmo ciparu (random no 1-9), otro (random no 1-9, izņemot tos, kas jau ir šajā horizontālē, vertikālē un 3x3), utt?

Atpakaļ Uz augšu