parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Рабочий пример в исходниках.

Ipo 25.05.2006 13:27 / 25.05.2006 13:40

немного истории
прототипом послужила игра извесная мне 4-5 лет.
http://alexp.ru/game/pword/
видимо написнная на языке perl, а мене захотелось написать ее на parser. Вот и вся история %)


Как обещал исходники игры рабочий класс с примером и sql с обрезанной таблицей слов.

Описание класса:
^word:game_init[]	инициализация игры

 ^word:game_message[введенное слово;$user_id]	возвращает текущее состояние игры
	1 - Игры активна можно играть и придумывать слова
	2 - Введенное слово ПРИНЯТО и его можно добавить к пользователю в список введенных им слов<br />
	3 - Введенное слово короткое, то есть короче 4 символов (надо изменить ? тогда меняем в word.p переменную $i_Min_len(4))
	4 - Введенное слово слишком большое, т.е. больше заданного слова
	5 - Введенное слово совпадает с заданным в игре словом, а это не хорошо :)
	6 - Введено слово которое есть в списке некорректных слов - game_bad_dictionary
	7 - Введенного слова нет ни в одном словаре (game_dictionary , game_bad_dictionary)
	8 - Невозможно составить анаграмму - Вы смотрите что пишите !
	9 - Слово уже находится в списке Ваших слов !


 $s_InputWord[^word:game_input_word[]]	вернет слово которое было введено пользователем (уже исправленное и перекодированное)

 $s_GameWord[^word:game_word[]]	возвращает заданное в игре слово



 ^word:word_save[$user_id]		сохранение слова для пользователя в текущей игре

 $t_WordsUser[^word:word_user[$user_id]]	таблица введенных пользователем слов
НЕБОЛЬШАЯ МОДЕРНИЗАЦИЯ класса int2str !!!

для этого пришлось немного изменить int2str.p , а точнее добавить средний род (a)
да простят меня создатели ;) + еще добавил возможность
помимо написания слова прописью еще и вставлять свое склонение слов
пример доработки
		$dword[
			$.1[слово]
			$.2[слова]
			$.3[слова]
			$.4[слова]
			$._default[слов]
		] 

   ^int2str:num_decline[1;a;$dword]
   ^int2str:num_decline[2;a;$dword]
   ^int2str:num_decline[6;a;$dword]


  результат:
	1 слово    
	2 слова
	6 слов