Здаров!Товарищи рЫбята! Нужно раскурочить ещё один мой исходник.
Он представляет собой Клёст-кроссворд(тож программа) переписанный на Lazarus так же, не используя ничего нестандартного, во избежании плохой межплатформенной переносимости. Носит кодовое название OpenKlest.
--------------------
Смысл его заключается в создании открытого стандарта файла кроссвордов для всех компиляторов, независимо от платформы или языка.(Скажите это диагноз?! ;) )
--------------------
Версия 0.4.5 - есть функция отгадывания кроссворда в формате OpenKlest 1.0(экспортируют Клёст-кроссворд 0.2.9, 0.3.7). Пока только латиница
Описание формата OpenKlest 1.0:
Это двоичный формат файла кроссворда, разработанный так, чтобы было максимально просто сделать его поддержку в других языках программирования, отличных от C++. Он экспортируется средствами чистого C++, без расширяющих возможностей библиотеки Qt.
---
//Версия файла
cFileBegin array[14] of char := 'OpenKlest-1.0~';
//Количество строк кроссворда
lwRowCount: Longword;
//Количество столбцов кроссворда
lwColumnCount: Longword;
//Ширина(Высота) ячейки
lwRowHeight: Longword;
// Если ячейка чёрная
;(wcCell: WideChar) wcCell = 'b';
// Если ячейка белая
;(wcCell: WideChar) wcCell = 'w';
// Цикл от 0 до lwRowCount
//Вложенный цикл от 0 до lwColumnCount
wCell: Word := Word(wcCell) + 1;
//Количество слов
lwWordCount: Longword;
//Координата строки расположения слова в сетке кроссворда;
//Цикл от 0 до lwWordCount
wWordRow: Word;
//Координата столбца расположения слова в сетке кроссворда;
//Цикл от 0 до lwWordCount
wWordColumn: Word;
// Если слово вертикальное
;(wcDirection: WideChar) wcDirection = 'v';
// Если слово горизонтальное
;(wcDirection: WideChar) wcDirection = 'h';
//Направление слова в сетке кроссворда;
//Цикл от 0 до lwWordCount
wWordDirection: Word := Word(wcDirection);
//Длина слова в сетке кроссворда;
//Цикл от 0 до lwWordCount
wWordLength: Word;
//Слово
;sWord: string;
//Цикл от 0 до lwWordCount
cWord: array[Length(sWord)] of char;
//Длина вопроса;
//Цикл от 0 до lwWordCount
wQuestionLength: Word;
//Вопрос
;sQuestion: string;
//Цикл от 0 до lwWordCount
cQuestion: array[Length(sQuestion)] of char;
//Метка конца файла
cFileEnd: array[10] of char := '~OpenKlest';
А версия 1.0.0 будет разрабатываться исключительно(возможно) в ОС GNU / Linux Debian 6.0 Сьюзи ;)
Сурфорж ГПЛ2
(ЛОР ещё в этом не принимал участие)