IPB
ЛогинПароль:

> Scrabble
Reflex
сообщение 31.10.2006 21:06
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 118
Пол: Женский

Репутация: -  0  +


Давайте всем форумом напишем вот эту игру. Причем так, что бы в ней были режимы как одно пользовательской ( с ИИ ) так и много пользовательской игры, желательно еще и игру по локалке.
сделать все вместе согласны такой общий проект?


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 2.11.2006 9:31
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Что касается ИИ, то мне кажется, что особых проблем нет. Если есть словарь, то нужно составить из имеющихся на руках букв всевозможные сочетания, затем приставлять их к буквам на доске и сверять со словарем, что получится. Алгоритм дубовый, и работать он будет долго, но это уже второй вопрос smile.gif.

Reflex, первое и главное замечание: при совместной работе хорошо было бы иметь словесное описание как данных, так и алгоритмов. Интерфейс не является исключением. Если в лом делать отдельное описание (что я вполне понимаю), то по крайней мере все должно быть прокомментировано, и без этого никак! Хотя, я бы все же предпочел сначала обсудить..

Например, в том коде, что ты привела, в глаза бросается набор констант. Он зачем? Мне кажется, такие вещи, как ценность буквы, нужно иметь отдельно, в файлах ресурсов. Сами же буквы естественно заменить на номера, занеся их реальные значения (типа А, Б ..) в массив (который, кстати, может зависеть от выбранной кодировки). Если следовать такому плану, то игру можно сделать многоязычной: русская, английская, украинская, французская.. - смена языка производится заменой файлов. Тогда мумба-юмбафикация игры могла бы заключатся в простом добавлении файлов (словарь можно позаимствовать у Ильфа с Петровым smile.gif).

Затем, давайте договоримся о выборе стандарта языка. Я предлагаю Object Pascal, но можно и сразу на Дельфи. Суть в том, чтобы задействовать объекты - они, как известно, хороши при совместном осуществлении пректа. Чисто процедурный подход я бы не рекомендовал.. Но можно и его, если есть возражения против объектов.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 2.11.2006 12:53
Сообщение #3


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
Если есть словарь, то нужно составить из имеющихся на руках букв всевозможные сочетания, затем приставлять их к буквам на доске и сверять со словарем, что получится. Алгоритм дубовый, и работать он будет долго, но это уже второй вопрос smile.gif.


Алгоритм не дубовый, и он будет летать. Только лучше, наверное, сначала смотреть, куда будем ставить, а потом уже ставить.

На поле 15х15 всего 225 клеток. От каждой клетки пытаемся проложить слово вправо, и слово вниз.

Пусть словарь у нас отсортирован лексикографически, и пусть в нем n слов. У нас есть клетка на доске, и мы идем от нее вправо. Хотим получить список всех возможных слов (учитывая, хватит ли у нас фишек, чтоб достроить недостающие буквы).

Рекурсивный перебор такой:

Сначала считаем, что нам подходят все слова: [0; n). Смотрим на первую букву (т.е. на начальную клетку). Если там уже стоит фишка с буквой, скажем, К, то нас уже устраивает не [0; n), а [x; y), где x - первое слово на букву К, а y - первое слово на букву Л. Если же там - пусто, то пытаемся туда поставить одну из букв, имеющихся на руках (всего их 7?). И опять-таки, сужаем интервал соответственно. И теперь рекурсивно переходим ко второй букве. Опять, если там не пусто, сужаем интервал однозначно, если же пусто - перебираем и сужаем, и т.д.

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

Используя префиксное дерево, мы будем сужать интервалы за O(1), и перебор будет работать неприлично быстро smile.gif

Эту часть могу взять на себя.

Сообщение отредактировано: Michael_Rybak - 2.11.2006 12:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Reflex   Scrabble   31.10.2006 21:06
Vasya!   Для начала что за игра опиши. Хоть в кратце. :yes2...   31.10.2006 22:32
Reflex   Ура :) :) :) Появился хоть один заинтересовавшийся...   31.10.2006 22:55
Vasya!   Типа кроссворд? А что делать надо а то я непонял?...   31.10.2006 23:16
Reflex   Нет... не кроссворд ... Ну давай сначала обсудим и...   31.10.2006 23:18
Reflex   или я не то понисмаю под словом кроссворд   1.11.2006 0:59
lapp   или я не то понисмаю под словом кроссворд Эта иг...   1.11.2006 1:32
Reflex   А ты не мог бы рассказать Алгорим ИИ? а то я что-т...   1.11.2006 13:55
Vasya!   Так как я в игру не играл, то тоже не знаю алгорит...   1.11.2006 18:12
arhimag   Готов помочь, предлагаю интерфейс сделать текстовы...   1.11.2006 14:25
Reflex   ну вот что-то такое правдо это только часть. prog...   2.11.2006 1:35
lapp   Что касается ИИ, то мне кажется, что особых пробле...   2.11.2006 9:31
Michael_Rybak   Алгоритм не дубовый, и он будет летать. Только л...   2.11.2006 12:53
lapp   Только лучше, наверное, сначала смотреть, куда бу...   2.11.2006 13:37
arhimag   В написании игр объектный подход очень удомен и мн...   2.11.2006 12:03
lapp   Я тут набросал примерно костяк структуры данных, к...   2.11.2006 14:11
Michael_Rybak   Тут у меня есть 2 соображения. Во-первых, понятно...   2.11.2006 14:45
Michael_Rybak   Еще, если уж на то пошло, то давайте кто-то начнет...   2.11.2006 16:50
arhimag   как - то давно вы мне давали чат по локалке, и я о...   2.11.2006 15:36
lapp   я предлагаю взять сделать чат, потом добавить функ...   3.11.2006 1:30
Michael_Rybak   ОК :) Но если что - без проблем.   3.11.2006 1:36
lapp   Наткнулся на неожиданное препятствие: неизвестно, ...   3.11.2006 14:14
Reflex   Привет всем, я просто даувно не была в интернете. ...   4.11.2006 11:09


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 15.07.2025 10:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"