crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Программа для создания кросвордов - Lazarus[Delphi]-версия., [Обсуждение программы и кода]
xwicked
  опции профиля:
сообщение 2.11.2011, 22:49
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте!

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

Он представляет собой Клёст-кроссворд переписанный на Lazarus так же, не используя ничего нестандартного, во избежании плохой межплатформенной переносимости. Носит кодовое название OpenKlest. Смысл его заключается в создании открытого стандарта файла кроссвордов для всех компиляторов, независимо от платформы или языка.

Версия 0.1.1 - есть функция отгадывания кроссворда в формате OpenKlest 1.0(экспортируют Клёст-кроссворд 0.2.9, 0.3.7). Пока только латиница :rolleyes:
Скрин:


Ссылка на SourceForge.net. Код под GNU GPL v2 - OpenSource.

Цитата
Описание формата OpenKlest 1.0:
Это двоичный формат файла кроссворда, разработанный так, чтобы было максимально просто сделать его поддержку в других языках программирования, отличных от C++. Он экспортируется средствами чистого C++, без расширяющих возможностей библиотеки Qt.
---
//Версия файла
char cFileBegin[14] = "OpenKlest-1.0~";

//Количество строк кроссворда
uint uiRowCount;

//Количество столбцов кроссворда
uint uiColumnCount;

//Ширина(Высота) ячейки
uint uiRowHeight;

// Если ячейка чёрная
;QChar qcCell = 'b';

// Если ячейка белая
;QChar qcCell = 'w';

// Цикл от uiRowCount до uiColumnCount
ushort usCell = qcCell.unicode() + 1;

//Количество слов
uint uiWordCount;

//Координата строки расположения слова в сетке кроссворда;
//Цикл от 0 до uiWordCount
ushort usWordRow;

//Координата столбца расположения слова в сетке кроссворда;
//Цикл от 0 до uiWordCount
ushort usWordColumn;

// Если слово вертикальное
;QChar qcDirection = 'v';

// Если слово горизонтальное
;QChar qcDirection = 'h';

//Направление слова в сетке кроссворда;
//Цикл от 0 до uiWordCount
ushort usWordDirection = qcDirection.unicode();

//Длина слова в сетке кроссворда;
//Цикл от 0 до uiWordCount
ushort usWordLength;

//Слово
;string sWord;

//Цикл от 0 до uiWordCount
char cWord[sWord.length()];

//Длина вопроса; Цикл от 0 до uiWordCount
ushort usQuestionLength;

//Вопрос
;string sQuestion;

//Цикл от 0 до uiWordCount
char cQuestion[sQuestion.length()];

//Метка конца файла
char cFileEnd[10] = "~OpenKlest";
Как Вам словесное описание и сам формат? Что нужно добавить или изменить? Жду комментариев.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 3.11.2011, 8:08
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


я тут ради правого дела не поленился накидать структуру )
<!--ля-ля-тополя кроссворд-->
<crossword filever="OpenKlest-1.0~">

    <!--общая конфигурация ячейки-->
    <cellconfig wid="30" hig="30" white="w" black="b"/>

    <!--массив строк-->
    <rows_array rows="10" cols="10">
        <row val="bbwbwwbwwb"/><!--row 0-->
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/>
        <row val="bbwbwwbwwb"/><!--row 9-->
    </rows_array>
    
    <!--массив слов, вариант 1-->
    <words_array count="3">
        <word x="61" y="13" xdir="0" ydir="-1" val="слово1" question="вопрос1"/>
        <word x="41" y="33" xdir="1" ydir="0" val="слово2" question="вопрос2"/>
        <word x="12" y="23" xdir="-1" ydir="0" val="слово3" question="вопрос3"/>
    </words_array>

    <!--массив слов, вариант 2-->
    <words_array count="3">
        <word x="61" y="13" xdir="0" ydir="-1">
            <q val="вопрос1"/>
            <a val="слово1"/>
        </word>
        <word x="41" y="33" xdir="1" ydir="0">
            <q val="вопрос2"/>
            <a val="слово2"/>
        </word>
        <word x="12" y="23" xdir="-1" ydir="0">
            <q val="вопрос3"/>
            <a val="слово3"/>
        </word>
    </words_array>
</crossword>


Сообщение отредактировал Алексей1153 - 3.11.2011, 8:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 21:03