Игра "Викторина"

Здесь содержатся плагины, графические оболочки, наборы смайлов и другие дополнения к CommFort.
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

Al3xandr0 писал(а):
ОреЛ писал(а):поясните, пожалуйста, в какие именно теги надо заносить?
В эти: [/code]
Тогда в тексте бота не будет смайликов. Хотя бы заключать в эти тэги текст вопроса и подсказок.
Если все фразы заносить в теги кода, тогда даже не будут отображаться ссылки, которыми выделяются фразы. Как же тогда быть? Как же тогда выделять все фразы?
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Игра "Викторина"

Сообщение supermet »

ОреЛ писал(а):supermet, скажите, а это нормально, что для получения любого конфига ваш плагин постоянно обращается к INI-файлу? а не проще просто считать все конфиги в TStringList? Я просто не понимаю такого дела, когда для получение канала обращается к функции возврата значения переменной. Ведь всё можно делать через глобальный переменные...
Запросы не так часто идут к конфиг файлу.Можно конечно для уменьшения обращений к диску использовать STL контейнер map<string,string> и загрузить в него все настройки, а потом уже считывать данные с него, что намного быстрее. TStringList есть только в Borland C++, в Visual C++, GCC и др. его нету.
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

Хорошо. Буду пытаться запихнуть всё в этот STL-контейнер. Обращений к диску должно быть минимальное количество. Буду пытаться это исправить. Очень непонятная структура плагина, приходится дублировать некоторые проверки условий в разных местах. Где мне лучше проверять условие, если оно должно проверяться по окончанию вопроса и перед началом следующего?
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

1) Супер игра запускается после текущего вопроса
Перед началом игры, будет показываться фраза, что сейчас будет супер-игра. По идее, это 52-ая фраза в таблице фраз. Если её не будет, то она автоматически будет заполнена стандартной фразой.
Также можно запускать супер-игру каждую n-ную игру, для этого в файле настроек надо написать строку настроек
super_run=n
Например:
super_run=10 - каждый 10-ый вопрос будет супер-игрой
2) Показывается количество слов
3) Сообщение о превышение лимита ответов. Не занесена во фразы, не вижу смысла. Но если надо...
Пока что тестируйте это
P.S.: скажите, что приоритетнее раньше сделать?
Вложения
viktorina_vc.rar
(102.6 КБ) 432 скачивания
Последний раз редактировалось ОреЛ 13:52, 16.05.2011, всего редактировалось 3 раза.
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Игра "Викторина"

Сообщение supermet »

ОреЛ писал(а):Хорошо. Буду пытаться запихнуть всё в этот STL-контейнер. Обращений к диску должно быть минимальное количество. Буду пытаться это исправить. Очень непонятная структура плагина, приходится дублировать некоторые проверки условий в разных местах. Где мне лучше проверять условие, если оно должно проверяться по окончанию вопроса и перед началом следующего?
Вот код набросал примерный

Код: Выделить всё

   #include "map"

    //при загрузке плагина 
    vector<CIniFile::Record> recs (CIniFile::GetSection("main", AskPluginTempPath()+inifile));
    vector<CIniFile::Record>::iterator iter;
    map<string, string> configs;
    map<string,string>::iterator it;

    for( iter = recs.begin(); iter != recs.end(); iter++)
    {
        configs[iter->Key] = iter->Value;
    }
    recs.clear();

    it = configs.find("botname");
    if( it != configs.end() )
    {
        botname = it->second;
    }

    //далее в программе
    it = configs.find("status_off");
    if( it != configs.end() )
    {
        ChangeStatus(botname,  it->second);
    }
    //при выгрузке плагина
    configs.clear();
В плагине сначала запускается первый таймер Timer_first, который показывает первый вопрос, затем он завершается и запускает Timer_check, который тоже задает периодически вопросы и запускает Timer_answer и Timer_help.
Timer_answer (таймер ответов) перед окончанием вопроса (в эти секунды никто уже не может отвечать) останавливает себя и Timer_help (подсказки).
Затем Timer_check снова их запускает в следующем вопросе.

p.s. Кто нибудь уже проверил в работе совмещенную версию плагина, которую сделал ОреЛ?
LepreconSTR
Сообщения: 74
Зарегистрирован: 22:19, 11.11.2009

Re: Игра "Викторина"

Сообщение LepreconSTR »

ОреЛ писал(а): 3) Сообщение о превышение лимита ответов. Не занесена во фразы, не вижу смысла. Но если надо...
Надо :)
Бонусы будут как мне кажется наиболее интересным из всего списка)
LepreconSTR
Сообщения: 74
Зарегистрирован: 22:19, 11.11.2009

Re: Игра "Викторина"

Сообщение LepreconSTR »

Не работает конвертер. Выскакивает досовское окошко и больше ничего не делает.
Можно ли вернуть в шапку более трудоемкий но рабочий способ обновления базы?
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Игра "Викторина"

Сообщение supermet »

Конвертер иногда не срабатывает, если база открыта в плагине или другой программе. Вернул старый способ.
LepreconSTR
Сообщения: 74
Зарегистрирован: 22:19, 11.11.2009

Re: Игра "Викторина"

Сообщение LepreconSTR »

Еще предложение сделать что бы бот обращался к пользователю как мужчине или женщине в зависимостиот его иконки.
LepreconSTR
Сообщения: 74
Зарегистрирован: 22:19, 11.11.2009

Re: Игра "Викторина"

Сообщение LepreconSTR »

ОреЛ писал(а): 3) Сообщение о превышение лимита ответов. Не занесена во фразы, не вижу смысла. Но если надо...
Бот не игнорирует себя на клиенте. В конфиге имя бота прописано правильно.
Но все равно получается вот такая вот дребедень :)
Изображение

И кажется лИмит :)
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

LepreconSTR писал(а): Бот не игнорирует себя на клиенте. В конфиге имя бота прописано правильно.
Но все равно получается вот такая вот дребедень :)
И кажется лИмит :)
А вы ник меняли после того как запустили плагин или зашли на сервер с запущенным плагином? Предупреждал же, что не с конфигов тянется имя бота...
В таком случае, как у вас, пришлось включить проверку по конфигам...
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
LepreconSTR
Сообщения: 74
Зарегистрирован: 22:19, 11.11.2009

Re: Игра "Викторина"

Сообщение LepreconSTR »

ОреЛ писал(а):
LepreconSTR писал(а): Бот не игнорирует себя на клиенте. В конфиге имя бота прописано правильно.
Но все равно получается вот такая вот дребедень :)
И кажется лИмит :)
А вы ник меняли после того как запустили плагин или зашли на сервер с запущенным плагином? Предупреждал же, что не с конфигов тянется имя бота...
В таком случае, как у вас, пришлось включить проверку по конфигам...
Да зашел с включенным плагином. Т.к. мне так гораздо удобней. Нельзя ли этого как то избежать?
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

Подскажите, пожалуйста, или укажите, где было уже сказано, как лучше всего реализовать систему бонусов. Потому что у меня пока что только одна идея: при включенной системе бонусов, когда человек набирает подряд N-количество ответов, ему дается надбавка M, за каждый следующий ответ в цепочке правильных ответов надбавка увеличивается на M.
Пример: N=3, M=5, С-цена ответа
1 = С; 2 = С; 3 = С + М; 4 = С + 2*М; 5 = С + 3*М;... и так далее...
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Игра "Викторина"

Сообщение ОреЛ »

LepreconSTR писал(а): Да зашел с включенным плагином. Т.к. мне так гораздо удобней. Нельзя ли этого как то избежать?
Вы не поняли моего вопроса. Происходила ли смена ника после того, как подключились к серверу. Потому что при подключении к серверу (авторизация) устанавливается имя бота внутри плагина. Нельзя уследить момент смены ника и перезадать имя бота. Для вас я уже переделал плагин и выложил в посте выше, вот прямая ссылка на скачивание: http://www.commfort.com/ru/forum/downlo ... hp?id=2801. Должно работать в любом случае (конфига имени бота тянется как и с того пользователя, которым вы подключились к серверу или на котором запустили плагин, так и с файла конфигов)
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Аватара пользователя
Al3xandr0
Сообщения: 118
Зарегистрирован: 12:58, 22.11.2007

Re: Игра "Викторина"

Сообщение Al3xandr0 »

Запускаю плагин на клиенте. Пока есть несколько замечаний:
1. Количество подсказок всегда одинаковое, не зависящие от количества букв в вопросе. Это так и задумывалось?
2. Бот заносит себя в таблицу статистики. В конфиге имя бота задано верно, после запуска клиента ник не менялся.
3. Почему бы фразы не перенести в настоящее время? Т.е. вместо
XXX немного подумав, угадал(а) и заработал(а) 10 балл(а,ов)
выводить
XXX немного подумав, угадывает и зарабатывает 10 балл(а,ов)
4. Настройки, судя по всему, считываются каждый раз при выдаче вопроса... Почему бы их не считывать при запуске игры?
Ответить