Пытаюсь создать алгоритм для создания доски для игры-головоломки

Я хочу сделать игру-головоломку с числами. Ради вопроса, допустим, доска представляет собой сетку, состоящую из квадратов 4 x 4. (В реальной игре-головоломке это число будет 1..15)

Число может встречаться только один раз в каждом столбце и один раз в каждой строке, немного похоже на судоку, но без «квадратов».

Действительно:

[1, 2, 3, 4
2, 3, 4, 1
3, 4, 1, 2
4, 1, 2, 3]

Кажется, я не могу придумать алгоритм, который бы последовательно генерировал действительные случайные платы nxn.

Я пишу это на C #. Я парень Python / C # и пытаюсь изучить C ++. В Python я делал такие вещи, как: myRoutes = {0: [1,2,3], 1: [[1,2], [3,4]], 2: [[1,2,3], [ [1,2,3], [1,2,3]], [4]]} Обычно, когда вы ...

Всем, Я парень Python / C # и пытаюсь изучить C ++. В Python я делал такие вещи, как:
myRoutes = {0: [1,2,3], 1: [[1,2], [3,4]], 2: [[1,2,3] ], [[1,2,3], [1,2,3]], [4]]}

Обычно, когда у вас есть массивы переменной длины и вы не хотите тратить на них 2D-матрицу, вложение массивов в словарь для их отслеживания - хороший вариант.

В C ++ я пробовал std :: map >> , и это работает, но я чувствую, что для этого нужен лучший способ.

Я предпочитаю придерживаться стандартных библиотек, но популярные библиотеки, такие как boost, также подходят для меня.

Я ценю вашу помощь,
Али

6
задан Ali 3 March 2011 в 00:47
поделиться