|
|
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
Стоит задача сделать on-line шахматы (очень похоже на то). Предположительно одновременно может быть до 1000 игроков. Как порекомендуете это реализовать? Подойдет ли для этого WCF? Удастся ли обойтись без клиентских приложение силами JS? Планирую сделать WCF сервис, UI игроков на JS. Координаты фигур отправлять на сервер Ajax в виде JSON (не накладно получиться)? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 10:33:34 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
WCF - лишнее, используйте хендлеры (.ashx). А так - всё нормально. Не от балды говорю. У меня имеется некоторый опыт в реализации подобных задач. Сама фигура на доске выградит так: 1. таблица. 2. в ячейках таблицы квадратные дивы (чёрные и белые клетки), у которых position:relative/ 3. внутри этих дивов квадратные картинки фигур такого же размера, что и сами дивы с прозрачным фоном, или тоже дивы с бекграундом с картинками фигур, с position:absolute;z-index:100;top:0px;left:0px;. 4. на mousedown увеличиваете z-index до 200, после перетаскивания и отпускания, возвращаете z-index в 100. Для того, чтобы перетаскиваемая фигура была сверху. 5. После перетаскивания (mouseup), смотрите, что за фигура, в какую клеточку походила (appendChild), возможно, что там уже есть фигура, то тогда или удалить ту, что была(removeChild), и appendChild в этот div новой фигуры. Аппендчилдить надо только тогда, когда ход правильный. После чего фигуре явно установить style.left="0px" и style.top="0px"; 6. Послать аяксный запрос хендлеру в виде JSON с новым состоянием доски. Этот JSON записать в БД, для того, чтобы другой игрок смог его прочитать. А до этого тот другой игрок дёргал по таймеру (setInterval) хендлер и проверял, был ли ход противника. После Того, как он прочитал новую конфигурацию, таймер останавливается. После того, как он сделает ход, таймер надо опять запустить. Вот, в кратце, и всё. Успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 12:08:16 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
ShSergeАппендчилдить надо только тогда, когда ход правильный. Наверное отслеживание правильных ходов, реализованное на js - не самая тривиальная задача. Следить нужно не только за тем, чтобы не было других фигур в клетке, но и по ходу движения (кроме коня). Отдельная песня - рокировка и вообще король, он не должен быть под ударом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 13:12:27 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
Если делаете шахматы не ради спортивного интереса, делайте на WPF Browser application, xbap приложения в таких случаях рулят. Пример можно посмотреть здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 13:28:32 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
Starlex, А на чём проще на сишарпе или визуалбейсике? Очень сомнительно, что получится проще. Тем более, что ТС спрашивал можно-ли обойтись без клиентской программы. Ответ - да, однозначно. Шахматы в этом случае проще шашек. У меня шашки реализованы по описанной выше технологии. Конкретно сейчас делаю одну оригинальную игру. От шашек и шахмат она отличается тем, что фигуры разборные и могут ходить по частям. Правда, аспнетом там и не пахнет - MySQL+PHP+HTML+DOM+CSS+Javascript. Впрочем, MySQL+PHP за час-другой вполне можно заменить на MS SQL+C#, потому что код на сервере несущественный. Типа, получить данные, записать в БД и наоборот - взять и отдать в виде JSON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 13:37:54 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
n_stringЕсли делаете шахматы не ради спортивного интереса, делайте на WPF Browser application, xbap приложения в таких случаях рулят. Пример можно посмотреть здесь . Н-стринг, Вы вопрос-то читали? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 13:42:55 |
|
||
|
Онлайн шахматы - как реализовать
|
|||
|---|---|---|---|
|
#18+
ShSergeStarlex, А на чём проще на сишарпе или визуалбейсике? Очень сомнительно, что получится проще. Тем более, что ТС спрашивал можно-ли обойтись без клиентской программы. Ответ - да, однозначно. Да я не спорю, проверку лучше делать на клиенте. Неплохая тренировка для тех, кому нужно подтянуть свои скиллы в js. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2011, 13:49:25 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37483466&tid=1360492]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
260ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 583ms |

| 0 / 0 |
