Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> камень, ножницы, бумага для двоих 
:(
    Опции темы
nepster
Дата 26.9.2013, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Задача сделать игру - камень, ножницы, бумага.

Следовательно принцип такой:
я создаю заявку на игру, и жду. 
ко мне заходит 2 игрок и начинается игра.

Хочу получить советы по проектированию и структуре базы данных и реализации на php/ 
PM MAIL   Вверх
Another
Дата 27.9.2013, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 совпадает с...))

Принцип такой, я думаю.
PM MAIL   Вверх
ksnk
Дата 27.9.2013, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(nepster @  26.9.2013,  23:52 Найти цитируемый пост)
я создаю заявку на игру, и жду. 
ко мне заходит 2 игрок и начинается игра.

Откуда возьмется второй игрок? Это может быть случайный посетитель сайта, увидевший надпись "игра ждет второго участника", а может быть знакомый, которому заслана ссылка по скайпу. 

Нужна ли регистрация пользователей? Если собираемся хранить рейтинг и результаты турнира, то да, без нее не обойтись, а если игра - замануха на сайт, то регистрация только отпугнет. 

Нужна ли база? Для сохранения состояния такой  игры достаточно ключика в мемкэше. Вот результаты сохранять для истории - база нужна.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
georgiy11
Дата 27.9.2013, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



Node.js и без БД, по соединениям, если конечно не нужна статистика.
PM MAIL   Вверх
nepster
Дата 27.9.2013, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Изначально планировка такая:

Пользователь заходит на сайт (сайт игр). Регистрируется. К примеру у нас есть 10 пользователей на сайте и несколько игр. Будем приводить пример на "Камень ножницы бумага".

Например я захожу в игру КНЖ, создаю новую заявку и ожидаю второго игрока. 

примерная таблица "заявки"
Код

id 
тип игры, возможно игр будет несколько 
пользователь, который создал заявку
время создания заявки
для скольки пользователей игра, для 2, 3 или 4 
пользователь 2 
пользователь 3 
пользователь 4
метка: заявка в ожидании, режим игры, игра закончена 
 

Итак заходит 2 пользователь 
в заявке дописываем поле пользователь 2, а первый пользователь меняет статус заявки, на режим игры.

Все в режиме игры пользователям не доступен сайт, они сидят конкретно в игре. 

Теперь вопрос по логам: по сути если вести логи всех игр, это будет полный завал базы бесполезной инофрмацией. 
Представте 100 человек играет в КМЖ и по серверу атакая с воздуха бесполезной информацией, кто чтомпоставил. 

Поэтому договариваюсь так, когда начинается игра,  мы создаем временную таблицу в которой и будет эта статистика, а после игры мы запишим в основную статистику, просто сколько раз выиграл пользователь 1 и сколько раз выиграл пользователь 2, а временную талицу удалим после окончания игры. 


Итак в идеале у нас выходит:

Я захожу в КМБ, создаю заявку и указываю, что играем до 10 например. (кто наберет 10 очков, тоесть выиграет 10 раз считается победителем игры)

Заявка создана, ожидаем 2 пользователя или 3 или 4. (допустим могут играть от 2 до 4)

Все пользователи на месте, 1 пользователь подтверждает игру 

Начинается игра, создана временная таблица, идет игра. 

К примеру пользователь 1 набирает 10 очков и выигрывает. Игра закончена. 

Делаем запись в истории, что по заявке номер такой-то, такие то пользователи сыграли столько-то игр, из них выиграл пользователь 1. Временную табилцу удаляем.

Получается например они за час сыиграли 200 раз. Вместо 200 записей в базе, разместим 1 запись для общей статистики. Временная таблица нужна, что бы пользователи видели статистику во время игры.  
PM MAIL   Вверх
Elfet
Дата 2.10.2013, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ну нет.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1280 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.