|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
nepster |
|
|||
Опытный Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Задача сделать игру - камень, ножницы, бумага.
Следовательно принцип такой: я создаю заявку на игру, и жду. ко мне заходит 2 игрок и начинается игра. Хочу получить советы по проектированию и структуре базы данных и реализации на php/ |
|||
|
||||
Another |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 17.6.2006 Репутация: нет Всего: -2 |
Первая таблица - Игры.
Структура - ID | Пользователь 1(ID) | Пользователь 2(ID) | Пользователь 1 - отправил заявку, пользователь 2 - NULL Если не NULL то подключиться к игре невозможно. Вторая таблица - пользователи. Третья таблица - лог игр. Структура - ID | ID игры | Пользователь 1 (что выбрал) | Пользователь 2 (что выбрал) | Этап (если нужно несколько этапов) Далее уже остается только php. Первый пользователь выбирает заявку, заходит в игру и обновляется ячейка Пользователь 2(ID). Далее он выбирает действие (1,2 или 3 (камень, ножницы или бумага)), ищет в бд этап 1 с ID игры, если находит то обновляет ячейку, если нет то создает запись. Там же и проверки что бы знать куда писать (приглашенный или пригласивший(если ID совпадает с...)) Принцип такой, я думаю. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Откуда возьмется второй игрок? Это может быть случайный посетитель сайта, увидевший надпись "игра ждет второго участника", а может быть знакомый, которому заслана ссылка по скайпу. Нужна ли регистрация пользователей? Если собираемся хранить рейтинг и результаты турнира, то да, без нее не обойтись, а если игра - замануха на сайт, то регистрация только отпугнет. Нужна ли база? Для сохранения состояния такой игры достаточно ключика в мемкэше. Вот результаты сохранять для истории - база нужна. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
georgiy11 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Node.js и без БД, по соединениям, если конечно не нужна статистика.
|
|||
|
||||
nepster |
|
|||
Опытный Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Изначально планировка такая:
Пользователь заходит на сайт (сайт игр). Регистрируется. К примеру у нас есть 10 пользователей на сайте и несколько игр. Будем приводить пример на "Камень ножницы бумага". Например я захожу в игру КНЖ, создаю новую заявку и ожидаю второго игрока. примерная таблица "заявки"
Итак заходит 2 пользователь в заявке дописываем поле пользователь 2, а первый пользователь меняет статус заявки, на режим игры. Все в режиме игры пользователям не доступен сайт, они сидят конкретно в игре. Теперь вопрос по логам: по сути если вести логи всех игр, это будет полный завал базы бесполезной инофрмацией. Представте 100 человек играет в КМЖ и по серверу атакая с воздуха бесполезной информацией, кто чтомпоставил. Поэтому договариваюсь так, когда начинается игра, мы создаем временную таблицу в которой и будет эта статистика, а после игры мы запишим в основную статистику, просто сколько раз выиграл пользователь 1 и сколько раз выиграл пользователь 2, а временную талицу удалим после окончания игры. Итак в идеале у нас выходит: Я захожу в КМБ, создаю заявку и указываю, что играем до 10 например. (кто наберет 10 очков, тоесть выиграет 10 раз считается победителем игры) Заявка создана, ожидаем 2 пользователя или 3 или 4. (допустим могут играть от 2 до 4) Все пользователи на месте, 1 пользователь подтверждает игру Начинается игра, создана временная таблица, идет игра. К примеру пользователь 1 набирает 10 очков и выигрывает. Игра закончена. Делаем запись в истории, что по заявке номер такой-то, такие то пользователи сыграли столько-то игр, из них выиграл пользователь 1. Временную табилцу удаляем. Получается например они за час сыиграли 200 раз. Вместо 200 записей в базе, разместим 1 запись для общей статистики. Временная таблица нужна, что бы пользователи видели статистику во время игры. |
|||
|
||||
Elfet |
|
|||
Белый и Пушистый Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
||||
|
||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |