А поподробнее бы ... Ну то есть что надо, как оно должно работать и т.д.
Ага ... скачал скрипт на яве ... то есть надо аналогичное? Это несложно, могу сделать ... Разве что надо бы договориться о формате исходных данных, ну то есть там в исходном варианте было что-то типа
—-
d[О]=['丙','bing3','название 3-го знака 10-ричного цикла']
—-
... просто для явы это вполне нормально, но скажем для чего-то вроде с/с++ несколько неудобен такой формат данных ... хотя впрочем можно и такой использовать
Спасибо огромное за то, что Вы откликнулись. Действительно, ничего сложного в этой программе нет, нужно только знать, как к ней приложить руки.
Итак, давайте обсуждать, что нам нужно...
Интерфейс программы предельно прост. Если "спрятать" в опцию настроек все чек-боксы и текстовые поля с цифровыми данными, т.е. чтобы оптимально использовать имеющееся место, то мы фактически имеем три текстовых поля (1 - китайский, 2 - пиньинь, 3 - русский) и три кнопки: "start" (ее тоже можно вынести в опции, чтобы нажимать после того, как режим работы полностью установлен), "next", "answer", кнопку же режима работы через "поиск" тоже можно "спрятать" в настройки.
В идеале хотелось бы, чтобы в программу можно было подгружать текстовый файл "базы" (в юникоде), а также имелась возможность менять эти файлы (поскольку формат "текст-транскрипция-перевод" есть основной словарный формат для любого иностранного языка, т.е. хотелось бы сделать программу универсальной и для других языков). Формат текстовой базы можно избрать следующий:
китайский[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
китайский[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
китайский[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
и т.д.
Теперь по порядку работу.
Открываем программу. Загружаем в нее "базу" для работы. В настойках выставляем режим:
1) желательно, чтобы в настройках сразу после загрузки отображался весь предел "количества базы" (как это сделано в скрипте), например, от 1 до 50, теперь мы можем выставить тот предел, с которым мы хотим работать, например, с 20 по 30.
2) устанавливаем или нет опцию "random" - не все же нам работать с одним и тем же порядком данных;
3) определяем режим: "тест" или "поиск" (режим "тест" можно сделать по умолчанию)
4) выставляем опции, какую информацию отображать сразу, если все три поля - то автоматически работам в режиме "заучивания".
5) если какое-то поле (или два) оставляем чистым, то информация в них будет отображаться лишь после нажатия кнопки "ответ" - для самоконтроля. Кстати, с учетом возможности работы с другими языками (например, европейскими), можно также учесть режим "проверять ответ пользователя" (я его не реализовывал в скрипте), т.е. пользователь может сам вводить ответ в поле задания, а программа сверяет его с данными (например, при нажатии на дополнительную кнопку "check"). Но при работе с китайским языком этот механизм показал себя непродуктивным, т.к. при ответе на иероглифы проще (и полезнее!!!) просто писать их на листе бумаги, чем ковыряться стилусом по экрану покета, или, уж тем более, вводить по набору пиньиня. А потому основной механизм для китайского языка несколько специфический, что-то вроде "проверь сам себя": появляется задание, пишем на бумаге ответ (или произносим его), а потом нажатием кнопки проверяем его правильность.
6) в режиме "поиска" можно задавать условия, чтобы задания выбирались лишь в соответствии с ними (это реализовано в скрипте), например, выбрать все задания, в графе русского языка которых есть слог "ма", а в пиньине есть слог с первым тоном "1", и т.д. После выбора этих заданий дальше работа продолжается в режиме нормального теста.
Еще важно предусмотреть удобство работы по "одной кнопке" (энтэр), это тоже реализовано в скрипте. Очень неудобно тыкаться стилусом. Поэтому в зависимости от выбранного режима работы (количества сразу отображаемой информации) реализован механизм активации кнопок: только "некст" (если работа идет в режиме заучивания), или попеременного "некст"-"ансэр" (если работа идет в режиме "самоконтроля"). С добавлением режима "проверить" и кнопки "чек" последовательность можно сделать "некст"-"чек"-ансэр" (если будет желание, то можно еще в этом режиме ввести учет правильных и неправильных ответов в числовом выражении).
Вот, собственно, и все премудрости.
Во второй оболочке (под иероглифы) желательно реализовать возможность установки размера шрифта на каждое из полей (это и первой программе не помешало бы), т.к. на начальном этапе учащимся достаточно сложно различать мелкий шрифт иероглифов. К тому же, для второй программы потребуется еще одно текстовое поле - "индекс иероглифов" (в этом поле будет появляться информация об иероглифе, например, в формате:
фонетик — ключ — добав. кол-во черт — общее кол-во черт (или что-то в этом роде). Эта информация крайне важна при работе в режиме задействования поиска, т.к. позволит составлять схемы повторения иероглифов с различными условиями: то всех иероглифов с общим ключом, то всех иероглифов одного фонетического семейства и т.д.). Формат данных может быть прежний, лишь с добавкой еще одной колонки:
китайский[знак табуляции]
индекс[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
китайский[знак табуляции]
индекс[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
китайский[знак табуляции]
индекс[знак табуляции]
пиньинь[знак табуляции]
русский[перевод строки]
и т.д.
Чтобы было понятнее, я готов написать скрипт и под этот вариант.
Также сразу хочется попросить весь интерфейс делать на английском, а поля можно вообще никак не называть (всё и так понятно), чтобы не сбивать тех, кто будет работать с другими языками...
Остальное - на Ваше творческое авторское усмотрение... Я и без того боюсь, что от Вас слишком многого хочу...
Еще раз огромное Вам спасибо!