Skip to content

MaksimNyashin/ChGKQuestions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChGKQuestions

Ключи запуска из стартовой директории

Файл для запуска — ./ChGKQuestions.py

  • Без ключей — обычный режим
  • -g или -G — игровой режим
    • Нет текста вопроса, только раздатки
    • Вопрос читается вслух (если система это поддерживает, иначе выводится на экран без информации в скобках)
    • Есть таймер
Ключи для разработчика
  • -d или -D — режим отладки
    • Нужен только во время отладки
    • Читает только из локальных файлов (не ходит в интернет)
    • Без таймера
    • Без чтения вслух
    • Без записи результатов
    • Без записи понравивишихся вопросов
    • Без открытия картинок
    • Не портит сохранения последней незаконченной игры
    • Может иметь второй ключ -du или -ud — чтение сохранения из отдельного файла для дебага
  • -t или -T — режим тестирования
    • Лучше не запускать руками, а воспользоваться ./run_tests.py
    • Верно всё то же, что и для режима отладки
    • Не может читать из локальной библиотеки, только из папки TESTS_SRC_DIR1(./tests/src)
    • Обязателен второй ключ с названием теста
      • Тест — файл со списком команд подаваемых на вход от имени пользователя
        • Хранится в папке TESTS_DIR1(./tests)
        • Должен иметь расширение TEST_EXTENSION1(.tst)
        • Должен вызывать только пакеты из папки TESTS_SRC_DIR1
      • Пакет — файл в формате XML с вопросами в формате идентичном формату в DB_CHGK1
        • Расположен в папке TESTS_SRC_DIR1
        • Должен быть сгенерирован с помощью ./tests/src/gen_tests.py на основе файла источника
          • С таким же названием, что и пакет
          • Расположеным в той же папке, что и пакет
          • Представляющим из себя разделённый перенсами строк список вопросов в формате {Название пакета}.{Номер вопроса}
            • Должно быть возможно открыть его в базе впопросов по сслыке {DB_CHGK}/question/{Название пакета}.{Номер вопроса}
      • Файл канонического результата
        • Хранится в той же папке, что и тесты
        • Имеет одинаковое назание с тестом
        • Состоит из полного ввода, вывода и некоторой служебной информации (совпадает с содержанием файла TMP_TESTS_FILE1(./tmp/tests/test.result))
        • Имеет расширение CANON_EXTENSION1(.canon)
        • Генерируются с помощью ./run_tests.py -с
          • Гарантируется, что в ветке master генерируются тесты с правильным выводом
          • В новой версии значение канических результатов могут отличаться от значений из предыдущей версии — новые значения тестов более правильные
          • Канонические результаты следует перегенерировать каждый раз после подливания master

Взаимодействие с игрой

При запуске можно сыграть несколько пакетов по очереди Составляющие части отыгрыша одного пакета

  • Выбор пакета
    • Можно ввести название пакета, как в адресной строке DB_CHGK1(https://db.chgk.net) (DB_CHGK/tour/{Название пакета})
    • Также можно отыграть пакет из локальной базы данных LOCAL_LIBRARY_DIR1(../ChGKWordGetter/src) и кэш уже отыгранных пакетов TMP_PACKAGE_CACHE_DIR1(./tmp/package_cache)
    • Перед началом названия можно поставить $, чтобы пакет гарантировано игрался из локальной базы или из кэша
      • Немного устарело, лучше использовать FORCE_LOCAL(True)
  • Отыгрыш вопросов пакета
    • Составляющие части отыгрыша одного вопроса
      • Чтение текста вопроса (игроком или компьютером)
        • -t — если текст выключена печать вопроса, то во время чтения или обратного отсчёта выводит его текст
      • Обратный отсчёт (если включён)
      • Вывод ответа
      • Ввод результата с возможностью сохранить
        • Если надо сохранить вопрос в избранные (в GOOD_FILE1(./good.txt)), можно написать
          • save
          • сохр
          • ыфму
        • Для ввода результата надо ввести 1, если вопрос взят и 0 если не взят
      • В конце отыгрыша вопроса показывается количество взятых и колиество отыгранных вопросов
    • В конце отыгрыша пакета выводится результат в форате JSON, который сохраняется в папку RESULT_DIR1(./results) с соответствующими полями
      • _number — количество вопросов в пакете
      • _name— название играемого пакета вместе с номером тура
      • _result— результат в виде числа-маски (i-й бит числа показывает, взят ли i-й вопрос)
      • _day- день отыгрыша в формате DD.MM.YYYY
      • _authors - список авторов вопросов, каждому из которых соответствует число-маска (i-й бит числа показывает писал ли этот человек i-й вопрос)
    • Переход к следующей части осуществляется с помощью клавши ENTER

Всегда, когда строка ввода начинается с -> можно применить внутренние ключи (не путать с ключами запуска)

  • MUTE_KEYS1(-m, ) — выключение чтения текста
  • UNMUTE_KEYS1(-u, -um, , -гь) — включение чтения текста
Внутриигровые ключи для разработчика
  • DEBUG_TESTS_KEYS1(-dt, -ве) — включение/выключение использования папки с тесами в качестве локальной библиотеки
  • SUPPRESS_AUTOSAVE_KEYS1(-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 его надо заменить на \, а также убрать ./

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published