Вырываемся в top10. Бот для игры в Telegram
Предыстория
Все началось с того, что мне прислали ссылку на бота в Telegram с предложением поиграть.
Выглядит он примерно так.

После моей первой игры я заработал 28 балов, не сильно впечатляющий результат. Значит нужно всего ничего — программа, которая находит слова из букв исходного слова и база существительных русских слов.
Поехали
Для базы решил использовать sqlite3, он мобильный и для этой задачи самое то.
Стурктура базы выглядит так.
CREATE TABLE IF NOT EXISTS words (
word VARCHAR(225) UNIQUE NOT NULL,
length INTEGER NOT NULL
);
- word — из название понятно что это хранимое буквенное значение слова.
- length — символьная длина.
Структура есть, для ее заполнения воспользовался списком существительных русских слов.
Заполнение базы и поиск слов было решено реализовать в одном коде, обработку разделить флагами.
Так же само создание файла базы и создание таблицы реализовываются в init()
func init() {
var err error
connetion, err = sql.Open("sqlite3", "./words.db")
if err != nil {
log.Fatalf("Failed connection: %v", err)
}
_, err = connetion.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
if err != nil {
log.Fatalf("Failed create database table words: %v", err)
}
}
Читать полностью »