LINUX.ORG.RU

Ответ на: комментарий от SerW

Просто я подумал что нужно размер больше 9х9. У меня комп довольно надолго задумывается при генерации больше 15х15 примерно. 9х9 то быстро. Если нужно могу скинуть простой консольный генератор.

nionio35
()
Ответ на: комментарий от SerW

да вот. тут для с++, собрать просто:

g++ sudoku.cpp

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int ac, char **av)
{
  srand(static_cast<unsigned int>(time(0)));

  const int max_size = 128;
  const int min_size = 2;
  int size;
  int x, y;
  int count_x;
  int count_y;
  int count_check;
  int max_check;
  bool filling;
  int seed;

  if (ac < 2)
    {
      cout << "usage: <size>\n";
      return(0);
    }

  size = atoi(av[1]);

  if (size < min_size)      size = min_size;
  else if (size > max_size) size = max_size;
  max_check = size * size;

  int array[size][size];

 Init:
  for (x = 0; x < size; ++x)
    for (y = 0; y < size; y++)
      {
	array[x][y] = -1;
      }

  // random fiilling
  for (count_y = 0; count_y < size; count_y++)
    {
      for (count_x = 0; count_x < size; count_x++)
	{
	  filling = true;
	  count_check = 0;
	  while (filling)
	    {
	      seed = rand() % size;
	      count_check++;
	      filling = false;
	      // test axis x
	      for (x = 0; x < size; x++)
		{
		  if (array[x][count_y] == seed)
		    {
		      filling = true;
		      break;
		    }
		}
	      // test axis y
	      for (y = 0; y < size; y++)
		{
		  if (array[count_x][y] == seed)
		    {
		      filling = true;
		      break;
		    }
		}
	      if (count_check > max_check)
		goto Init;
	    }
	  array[count_x][count_y] = seed;
	}
    }
  // out
  for (y = 0; y < size; y++)
    {
      for (x = 0; x < size; x++)
	cout << array[x][y] << " ";
      cout << endl;
    }

  return 0;
}

nionio35
()
Ответ на: комментарий от dataman

gnome-sudoku — это просто прелесть в плане печати. Можно разместить 4 пазла на старице, и напечатать даже в файл, притом сколько хочешь страниц! Огромнейшее спасибо! :-))

SerW
() автор топика
Ответ на: комментарий от nionio35

Пасиб, я попробую. Но предвосхищая своё попробование, спрошу: вы можете сделать печать в файл нескольких судоку, и притом с кастомизацией. Например, в гном-судоку нет нумерации пазлов при печати.

SerW
() автор топика