Файл для запуска — ./ChGKQuestions.py
- Без ключей — обычный режим
-g
или-G
— игровой режим- Нет текста вопроса, только раздатки
- Вопрос читается вслух (если система это поддерживает, иначе выводится на экран без информации в скобках)
- Есть таймер
Ключи для разработчика
-d
или-D
— режим отладки- Нужен только во время отладки
- Читает только из локальных файлов (не ходит в интернет)
- Без таймера
- Без чтения вслух
- Без записи результатов
- Без записи понравивишихся вопросов
- Без открытия картинок
- Не портит сохранения последней незаконченной игры
- Может иметь второй ключ
-du
или-ud
— чтение сохранения из отдельного файла для дебага
-t
или-T
— режим тестирования- Лучше не запускать руками, а воспользоваться
./run_tests.py
- Верно всё то же, что и для режима отладки
- Не может читать из локальной библиотеки, только из папки
TESTS_SRC_DIR
1(./tests/src
) - Обязателен второй ключ с названием теста
- Тест — файл со списком команд подаваемых на вход от имени пользователя
- Хранится в папке
TESTS_DIR
1(./tests
) - Должен иметь расширение
TEST_EXTENSION
1(.tst
) - Должен вызывать только пакеты из папки
TESTS_SRC_DIR
1
- Хранится в папке
- Пакет — файл в формате
XML
с вопросами в формате идентичном формату вDB_CHGK
1- Расположен в папке
TESTS_SRC_DIR
1 - Должен быть сгенерирован с помощью
./tests/src/gen_tests.py
на основе файла источника- С таким же названием, что и пакет
- Расположеным в той же папке, что и пакет
- Представляющим из себя разделённый перенсами строк список вопросов в формате
{Название пакета}.{Номер вопроса}
- Должно быть возможно открыть его в базе впопросов по сслыке
{DB_CHGK}/question/{Название пакета}.{Номер вопроса}
- Должно быть возможно открыть его в базе впопросов по сслыке
- Расположен в папке
- Файл канонического результата
- Хранится в той же папке, что и тесты
- Имеет одинаковое назание с тестом
- Состоит из полного ввода, вывода и некоторой служебной информации (совпадает с содержанием файла
TMP_TESTS_FILE
1(./tmp/tests/test.result
)) - Имеет расширение
CANON_EXTENSION
1(.canon
) - Генерируются с помощью
./run_tests.py -с
- Гарантируется, что в ветке
master
генерируются тесты с правильным выводом - В новой версии значение канических результатов могут отличаться от значений из предыдущей версии — новые значения тестов более правильные
- Канонические результаты следует перегенерировать каждый раз после подливания master
- Гарантируется, что в ветке
- Тест — файл со списком команд подаваемых на вход от имени пользователя
- Лучше не запускать руками, а воспользоваться
При запуске можно сыграть несколько пакетов по очереди Составляющие части отыгрыша одного пакета
- Выбор пакета
- Можно ввести название пакета, как в адресной строке
DB_CHGK
1(https://db.chgk.net) (DB_CHGK/tour/{Название пакета}
) - Также можно отыграть пакет из локальной базы данных
LOCAL_LIBRARY_DIR
1(../ChGKWordGetter/src
) и кэш уже отыгранных пакетовTMP_PACKAGE_CACHE_DIR
1(./tmp/package_cache
) - Перед началом названия можно поставить
$
, чтобы пакет гарантировано игрался из локальной базы или из кэша- Немного устарело, лучше использовать
FORCE_LOCAL(True)
- Немного устарело, лучше использовать
- Можно ввести название пакета, как в адресной строке
- Отыгрыш вопросов пакета
- Составляющие части отыгрыша одного вопроса
- Чтение текста вопроса (игроком или компьютером)
-t
— если текст выключена печать вопроса, то во время чтения или обратного отсчёта выводит его текст
- Обратный отсчёт (если включён)
- Вывод ответа
- Ввод результата с возможностью сохранить
- Если надо сохранить вопрос в избранные (в
GOOD_FILE
1(./good.txt
)), можно написатьsave
сохр
ыфму
- Для ввода результата надо ввести 1, если вопрос взят и 0 если не взят
- Если надо сохранить вопрос в избранные (в
- В конце отыгрыша вопроса показывается количество взятых и колиество отыгранных вопросов
- Чтение текста вопроса (игроком или компьютером)
- В конце отыгрыша пакета выводится результат в форате
JSON
, который сохраняется в папкуRESULT_DIR
1(./results
) с соответствующими полями_number
— количество вопросов в пакете_name
— название играемого пакета вместе с номером тура_result
— результат в виде числа-маски (i-й бит числа показывает, взят ли i-й вопрос)_day
- день отыгрыша в форматеDD.MM.YYYY
_authors
- список авторов вопросов, каждому из которых соответствует число-маска (i-й бит числа показывает писал ли этот человек i-й вопрос)
- Переход к следующей части осуществляется с помощью клавши
ENTER
- Составляющие части отыгрыша одного вопроса
Всегда, когда строка ввода начинается с ->
можно применить внутренние ключи (не путать с ключами запуска)
MUTE_KEYS
1(-m
,-ь
) — выключение чтения текстаUNMUTE_KEYS
1(-u
,-um
,-г
,-гь
) — включение чтения текста
Внутриигровые ключи для разработчика
DEBUG_TESTS_KEYS
1(-dt
,-ве
) — включение/выключение использования папки с тесами в качестве локальной библиотекиSUPPRESS_AUTOSAVE_KEYS
1(-sa
,-ыф
) - включение/выключение подавления сохранения текущей игры
Настройки, которые, возможно, захочется поменять (менять можно только значения, но не названия)
AUTOPLAY_UNFINSHED
— автоматическое продолжение незаконченной игры при перезапуске с сохранением всего прогресаCONSOLE_WIDTH
— ширина окна консоли в символахFORCE_LOCAL
— чтение пакетов только из локальной базы или кэша, без походов в интернетIS_READ_ALOUD
— чтение текста вопроса компьютером (работает только на винде, если компьютер поддерживает чтение на русском)LOCAL_LIBRARY_DIR
— Библиотека с локальными сохранениями пакетовRUN_COUNTDOWN
— включение обратного отсчёта в вопросахSAVE_CACHE_PACKAGE
— кэширование пакетов, скачанных из интернета
Настройки конфига для разработчика
DEFAULT_DATE
— дата по умолчаниюUNKNOWN_AUTHOR
— автор по умолчанию, ставится если в вопросе он не указанSUPPRESS_AUTOSAVE
— подавление сохранения текущего прогрессSUPPRESS_GOOD
— подавление записи избранных вопросов в отдельный файлSUPPESS_PICS
— подавление открывания или копироания картинокSUPPRESS_READING
— подавление чтения вопроса вслух, используется, когда надо сгенерировать читаемый текст, но не воспроизводитьSUPPRESS_RESULTS
— подавления записи результатов отыгрышаSUPPRESS_TEXT
— подавление вывода текста вопросаUNIFY_DATE
— замена текущей даты в результате на дату по умолчаниюRESULT_DIR
— путь к папке с сохранениями результатов игрTESTS_DIR
— путь к папке с тестамиTESTS_SRC_DIR
— путь к папке с исходниками тестовTMP_DIR
— путь к папке с временными файлами (всё содержимое можно свободно удалять)TMP_PACKAGE_CACHE_DIR
— путь к папке с сохранёнными в кэш пакетамиTMP_TESTS_DIR
— путь к папке с результатами тестаCANON_EXTENSION
— расширение файлов с каноническими ответамиTEST_EXTENSION
— расширение файлов с тестомTEST_SOURCE_BASE_EXTENSION
— расширение файлов источника тестаCANON_RESULT_FILE
— шаблон пути к файлу с каноническими результатами тестовCOMMAND_HISTORY_LOG_FILE
— путь к файлу сохраняющий историю ввода пользователемGOOD_FILE
— путь к файлу с избранными вопросамиLOCAL_LIBRARY_FILE
— шаблон пути к пакету в локальной библиотекеPACKAGE_CACHE_FILE
— шаблон пути к пакету в кэшеREAD_ALOUD_FILE
— путь к файлу для чтения вслухTEST_FILE
— шаблон пути к тестуTEST_SOURCE_FILE
— шаблон пути к тестовому пакетуTEST_SOURCE_BASE_FILE
— шаблон пути к исочнику тестаTMP_DIFF_FILE
— путь к файлу различий при запуске тестовTMP_TESTS_FILE
— путь к файлу с записью всего ввода и вывода вместе со служебной иноформацией, используется как результат выполнения программы в тестахUNFINISHED_FILE_READ
— путь к файлу для чтения сохранения незаконченнной игрыUNFINISHED_FILE_WRITE
— путь к файлу для записи сохранения незаконченной игры
Все остальные настройки трогать не рекомендуется
1Название константы, хранящейся в файле ./my_config.py
- При большом желании их можно поменять, ничего не должно сломаться
- В скобках после указано значение на моент написания текущей инструкции, может отличаться, лучше уточнить в файле
- Для файлов используется разделитель
/
, как в UNIX-подобных системах, на Windows его надо заменить на\
, а также убрать./