Судоку - ти мене таки знайшла

in Team Ukraine4 years ago

Цю гру я бачив раз чи два - я хоч і люблю головоломки(чи любив, бо багато чого залишається в минулому витіснене чимось новим) та в судоку не грав. Не любив і кросвордів, а це ж ніби числовий кросворд.

Якось раз глянув що воно таке.. і відразу ж закрив сторінку.
А тут для студента попросили написати програму - гру Судоку - ну звісно перш ніж писати треба з самою грою трохи розібратися. Чимось трохи зачепило - захотілося пройти кілька рівнів. Часу малувато - почав гуглити алгоритми.
На сайті http://rosettacode.org/ Є рішення для багатьох мов... зазирнув в С,
void show(int *x)
{
int i, j;
for (i = 0; i < 9; i++) {
if (!(i % 3)) putchar('\n');
for (j = 0; j < 9; j++)
printf(j % 3 ? "%2d" : "%3d", *x++);
putchar('\n');
}
}

Ти ба! Не масив 9х9 а просто масив на 81 елемент))) невже так краще?
але рядок printf(j % 3 ? "%2d" : "%3d", *x++);
просто приголомшив - невже так можна було??? в printf вставити оператор "?"

Час...час... вільний час, його завжди бракує, ледь розібравшись з судоку, пішов писати програму, а потім обовязково пару рівнів пройду.. чи зависну на більшу кількість??