Кто-нибудь когда-нибудь делал реализацию игры какуро? Если да, то не могли бы вы скинуть исходники. Описание игры:
Сетка головоломки состоит из клеток черного и белого цвета. Белые клетки, идущие подряд по вертикали или по горизонтали, образуют блок. Цель игры - заполнить все белые клетки цифрами от 1 до 9 так, чтобы сумма цифр в блоке была равна числу указанному в черной клетке слева от горизонтального блока и сверху от вертикального. При этом цифры в пределах одного блока не должны повторяться. Какуро может быть любого размера и любой формы, хотя обычно ячейки сетки располагают симметрично. Как правило, чем больше пустых ячеек в игре, тем труднее, однако это не всегда так, особенно если это хорошая и качественная головоломка.
буду очень благодарен за помощь.
Автор: sheka 21.11.2009 1:31
Тоже хотел когда-то сделать, но не придумал как. Подскажите идею пожалуйста.
Автор: amega 21.11.2009 2:11
мм я тож не знаю как делать, мб вмете делать.. давайте все сначала, нам нужно для начала 2 глобавльные беременные для ширены и высоты матрици, создадим отдельный модуль для типов и тп....(будем в него пихать все поочереди)
теперь нужно решить как представлять нашу матрицу, предлагаю создать матрицу записей следующего вида:
const Bottom = 1; right = 2;
Tdirection = byte;
TStyleCell = (inf, val);
TCells = record inf_c:TStyleCell; case cell :TStyleCell of inf: ( direction:Tdirection; value:integer; ); val:( value:integer; ); end;
или у кого есть другие варианты?
Автор: sheka 21.11.2009 3:34
amega , проблема в том, что поля все время разные. а если так писать не зная чего хочешь, потом может получится такая ситуация, что "А нафиг я все это писал?!"
Автор: amega 21.11.2009 4:15
в каком смисле разные? ты имееш ввиду вот эти разные? ,или нет?
Цитата
а если так писать не зная чего хочешь, потом может получится такая ситуация, что "А нафиг я все это писал?!"
вообщето я представляю примерно в голове как оно долно все быть.. да и зделав что-то неверное ты поймеш почему это неверно, и что нужно изменить. для начала нужно реализовать то, с чем придется работать.
Автор: sheka 21.11.2009 4:23
я имею ввиду, что поле головоломки у каждой головоломки разное.
Добавлено через 11 мин. я имею ввиду, что поле головоломки у каждой головоломки разное.
Автор: Lapp 21.11.2009 7:21
amega, sheka имел в виду это, наверное:
Цитата(baronst @ 20.11.2009 17:07)
Какуро может быть любого размера и любой формы
Но разную форму можно сделать размещением в прямоугольной матрице черных клеток, не обязательно со значениями - значения только у тех, которые граничат с велыми снизу или справа. Так что двумерный массиы представляется осмысленным. Хотя не исключено, что могут быть и другие решения этого вопроса.
Я не вполне понимаю: ведь не всякая конфигурация может оказаться имеющей ответ - так? Значит, задача состоит в поиске такой, которая имеет? Типа как в судоку.. Да?
Автор: amega 21.11.2009 15:59
и так по порядку..
Цитата
Какуро может быть любого размера и любой формы
для этого и создали глоб переменную, осталось тока создать
ну вот мы и создали игровое поле, осталось указать какая клечка для чего служит и ее значение ну и ост прав..
теперь прокоментирую поля TCells: inf_c - служит для опредиления вида клетки, тоесть может принимать значения inf val, если мы укажим первое то получим клетку та которая с черточкой, а если второе то ту клетку де вводится значение. если мы в первом укажем дирекшен(направление) то мы получим информационную клутку с указаным направлением.
ps немножно подкеректировал запить добавил тстайлцелс для удобства
Автор: sheka 21.11.2009 22:47
Я тоже думал это делать массивом, но потом подумал что это не рационально...Может еще какие-нибудь варианты есты?
Автор: amega 21.11.2009 23:49
Цитата
но потом подумал что это не рационально
почему?
Автор: sheka 22.11.2009 0:02
Цитата(amega @ 21.11.2009 18:49)
почему?
Я не мог понять как входные данные должны были там обрабатываться, но кажется я уловил твою идею: Два цикла: один меняет значения "игровых" клеток, а второй проверяет выполняются ли все условия в "информационных клетках". Но все равно, не будет ли это слишком долго? Т.к. вариантов реально много.
Автор: amega 23.11.2009 1:16
хотелось бы услышать что-то от автора темы.... чот он думает по этому поводу?