Пытаюсь сделать игру... для двух игроков! Игра "Ключевое слово", думаю помните, когда из одного слова, надо составить другие... Отсюда два вопроса 1) Как научить программу этой мултиплеерности? т.е. что бы играть могли два человека. 2) как научить программу разобрать слово по буквам (я так понял length+slovo[0,1,2...x]), а после этого выбрать из базы слово которое можно составить из этих букв (можно использовать не все буквы, но только то кол-во раз. сколько она используется) При этом вывести общее кол-во составленных слов (числом) и использовать составленые слова для игры... Спасибо!
1)Каждое действие записываем в БД. Каждый раз получаем состоянии игры из БД. Загружаем рабочую область в фрейм, обновляем каждые N секунд (например заголовоком в скрипте - Refresh: 3) 2) PHP: $var="word"; while (!empty($var)) { $arr[]=substr($var,0,1); $var=substr_replace($var,null,0,1); } print_r($arr); ЗЫ. С массивом можно удобно работать. Ничего не могу сказать о выборке из БД всех слов, ИМХО надо сначала составить все возможные комбинации и проверить на наличии в БД, или сначала выбрать все слова из БД и проверить на соответствие условиям.
А еще лучше не пытаться делать на PHP то, для чего он не предназначен Concurrent programming тебе в помощь на Java или C#.
Про линукс тоже говрили не для игрушек А счастливые владельцы Nvidia счас гамают в то время как я на Ати месяц уже без игр после неудной смены битности с 32 на 64. Если это можно сделать игру на PHP,то почему бы нет?Новое развитие языка может будет Может PHP наконец станет немного интерактивней
Можно писать и на PHP, но будет 2 весомых минуса по сравнению с языками, поддерживающими concurrency: 1 - асинхронность получения пользователями информации 2 - повышенная нагрузка PS: в территорию не играл
лично я считаю недостатки архитектуры вполне поправимыми. это требование времени. иначе ajax и ко будет тяжело завалить им.
Алгоритмический прием почти стандартный, но может не пойти при сильно большой базе: 1. Вытягиваем из базы слово. 2. Упорядочиваем буквы этого слова по алфавиту. К примеру из PHP получаеться HPP, а из слова "программист" -> "агиммопррст". 3. В нашем исходном слове делаем тоже самое (для удобство оформляем это функцией). 4. Далее узнать можно ли из исходного получить слово из базы намного легче - можно или оба перевести в ассоциативный массив и сравнить массивы (долго и некрасиво), или просто по позициям сравнить два слова - это намного легче. К примеру, чтобы из исходного слова получить программист, его переделанная версия должна содержать внутри себя "агиммопррст", т.е. "а*г*и*мм*о*п*рр*с*т*", где * - любой набор букв.
Появилась одна идея. Если база слов очен большая - то можно приделать дополнительное поле, в которое записать упорядоченный по алфавиту набор букв. Далее берем наше исходное слово, к примеру тот же "агиммопррст" и выбираем из базы [sql]SELECT * FROM `mytable` WHERE `convert_word` REGEXP 'а{0,1}г{0,1}и{0,1}м{0,2}о{0,1}п{0,1}р{0,2}с{0,1}т{0,1}'[/sql]