Помощник по игре в Балду

13.12.13

Задачи пользователя - Игры

Предлагается программа-помощник по игре в Балду

Скачать исходный код

Наименование Файл Версия Размер
Дистрибутив программы
.rar 447,08Kb
1
.rar 447,08Kb 1 Скачать

Предлагаю программу "Balda prof".

Программа предназначена для подбора слов в игре "Балда".

Написана на C# с использованием .Net Framework.

Поставляется в виде дистрибутива с двоичными данными.

Строит дерево найденный слов (в левой чати программы), по кнопке "Найти".

В правом списке использованные слова.

В центре рабочее поле .

В нижней части алфавит.

Если на найденное слово можно подобрать слово длиннее, то окрашивает в красный.

Если на найденное слово можно подобрать слово короче, то окрашивает в зеленый.

Если на найденное слово можно подобрать слово той же длинны, то окрашивает в синий.

Двойным кликом по слову из левого списка добавляем его в найденные и обновляем рабочее поле.

Одинарный клик по левому списку показывает букву в рабочем поле (для визуального контроля)

Буквы в поле можно вносить 3 способами:

- с клавиатуры

- мышью (нажав на букву, затем на клетку поля)

- перетаскиванием

 

Словарь содержится в файле RusNoun.txt. Это обычный текстовый файл, слова в нем отсортированы по алфавиту.

Можете редактировать его вручную.

 

Немного истории.

Где-то в 2009-2010 году жена увлеклась игрой в балду. Можно найти на mail.ru. И вот мы собирались 3-4 человека с друзьями и устраивали мозговой штурм. С переменным успехом двигались по турнирой лестнице. Но обнаруживались игроки, подбирающие длинные незнакомые слова. Тогда же родилась мысль найти словарь и искать в нем слова. Нашли словарь, я написал мини программу на Visual Basic, работающую с регулярными выражениями. Но это был полуавтомат, он не мог проверить все комбинации, и к тому же поиск запускался вручную. Тогда же задался целью написать программу, которя анализирует поле и ищет куда добавить букву и затем осуществляет поиск в словаре.

На первом этапе была сделана консольная программа на C#, которая в тестовом виде выдавала все найденные слова, отсортированные по убыванию. Методом проб и ошибок и каждодневного тестирования/игры я устранял ошибки в алгоритме. В итоге получилось что-то минимально рабочее. Но существовали недостатки:

Во - первых, рассчет шел ужасно долго, по несколько минут... Проблему удалось решить индексированием словаря. Сделал 2-мерный массив индексов по первым 2-м буквам. В дальнейшем разбил алгоритм поиска по 3-м ситуациям. а) обе буквы известны, б)изветсна первая, в) известна вторая. Это тоже ускорило работу.

Во - вторых, не анализировались уже использованные слова и шаблоны.

В общем, назрела необходимость озаботиться интерфейсом. И я выпустил первую версию - Balda Game.

Она была на .Net Framework 2.0. По сути элементы интерфейса перекочевали и в последний релиз, который и выкладываю.

В ней был массив использованных слов и другие нововведения. Так день за днем добавлял новые опции. На каком-то этапе добавил ограничение по длинне слов, так как 3-х буквенные считались слишком долго. Переработал алгоритм, если слово < макс. длинны, то не рассматриваю.

Продолжая играть и выигрывать большинство партий дошел до определенного предела. Выяснилось, что соперник вероятно использует 2-х уровневый массив слов. Подсмотрел на каком-то сайте скрины балды с раскраской и сделал также. Теперь на первом этапе находит слова, а затем по каждому слову строит второй уровень.

Этот путь был тернист, нужно было восстанавливать первоначальное поле. Кроме того хранить и восстанавливать использованные и отброшенные слова и шаблоны. Но я его преодолел. Параллельно искал наиболее полный словарь существительных в именительном падеже, так как существующие словари были или не полными, или содержали мусорные слова.

Далее озаботился интерфейсом. Сначала работал только с клавиатурой, сделал обработчик нажатий кнопки и перемещение по ячейкам. Затем со временем добавил мышь и в финале перетаскивание (drag & drop). В заключении сделал подсветку подставляемой буквы, что потребовало переделки кода. Ведь раньше я игнорировал расположение букв при построении второго уровня, а это было ошибкой. В итоге работы программа строит дерево достоверно с учетом ситуации и положения добовляемой буквы на первом уровне.

Дойдя до стадии рабочей программы, я охладел к проекту. Так как основную задачу решил. Я оказался в первой сотне игроков. Далее выигрывать было сложно, так как у соперника был более полный и адаптированный к игре словарь. Бывало, что игра на сервере не принимала слова в моем словаре, и наоборот, их словарь содержал слова, отсутствующие в моем. Кроме того, вероятно на рынке есть программы использующие более прогрессивный метод расчета, строящие дерево прогнозирования, или "думающие" на три - четыре хода вперед. Мне это не позволяли вычислительные мощности и пробелы в знаниях. Так или иначе в игре со средними противниками помощник вам обеспечит преимущество.

балда balda

См. также

Пасьянс Паук

Игры Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Классическая игра пасьянс Паук, на платформе 1С.

15.04.2024    839    46    user1693438    1    

14

Классическая игра "Змейка" на 1С (управляемые формы)

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Игра "Змейка" в классическом варианте на управляемых формах в 1С. Собирайте яблоки и ставьте рекорд!

09.02.2024    2951    164    emilyabochkova    12    

24

Ключворды в 1С

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Создавайте новые ключворды или разгадывайте существующие.

1 стартмани

05.02.2024    1659    1    alexpvs    0    

6

Игра "5 букв"

Игры Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Игра "5 Букв", сделанная на 1С. В игре загадано слово, существительное в единственном числе. Нужно отгадать загаданное слово.

1 стартмани

29.12.2023    1128    2    APTEM_SLV    9    

7

Пятнашки

Игры Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Цель - обучение хитростям нашей всеми любимой 1С.

28.11.2023    908    35    user1834118    0    

6

Кар магедон

Игры Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Держись, российский геймдев, я уже еду. Бета тест, можно оформлять предзаказы, будет донатный магазин с модельками российского автопрома (по цене реальных авто).

01.11.2023    1780    39    user1834118    7    

11

Турнир по 1С. Танки на СКД

Игры Платформа 1С v8.3 Абонемент ($m)

Предлагаю свою версию турнира. Особенность этого турнира в том, что тут нет правильных или неправильных решений. Есть твое решение и решение твоих соперников. У кого решение лучше тот и победит.

1 стартмани

09.10.2023    1866    1    opx    1    

13

Плоский "Кубик Рубика"

Игры Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вы можете собрать кубик Рубика? Я - только с помощью инструкции:). Попробуйте справиться с его плоским аналогом.

1 стартмани

29.05.2023    2097    7    Alxby    3    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. _Ramzes 125 13.12.13 00:44 Сейчас в теме
2. polakoff 2 13.12.13 12:26 Сейчас в теме
to: _Ramzes.
Отличий много.
На первый взгляд у него упрощенный вариант игры. Он сам написал, что его программа может добавлять букву в начало или в конец. Моя же анализирует все поле, то есть последовательно перебирает все 25 ячеек поля и ищет куда можно вставить букву. Таким образом создается массив шаблонов, который проверяется словарем. Те шаблоны, по которым найдены слова остаются, остальные отбрасываются.

Второе важное отличие, что моя программа строит дерево найденных слов.
Третье отличие, что она написана на C# с .Net Framework 2.0
3. mikhailovaew 127 17.04.14 16:14 Сейчас в теме
откуда словарик в обработке? и что за слово "пором"? вроде в современном русском такого нет
4. polakoff 2 05.05.14 15:33 Сейчас в теме
Где-то скачал. Сейчас уже не помню. Единственный бесплатный словарь в формате txt, который нашел. Но, к сожалению, в нем попадаются "мусорные" слова которые не принимает сервер балды. Если найдете что-то лучше то можно заменить. Единственно нужно отсортировать слова.
Оставьте свое сообщение