Я делаю эту карточную игру с моим братом, чтобы моя семья могла играть удаленно. Это как сердца в Windows. Давайте предположим, что это сердца, поэтому мне не нужно объяснять скучные правила игры.
Будет 3 или более игрока, и каждый игрок будет бросать карту на пол во время своего хода.
У меня есть база данных и библиотека классов с бизнес-логикой и возможностью чтения / записи в базе данных.
Сейчас у меня есть несколько функций:
- Новая игра
- Добавить игроков
- Начало игры
- Проверить статус игры => Вернуть то, что находится на полу, какие карты находятся на руке вызывающего, сколько карт у каждого из противников, чья очередь, кто хозяин и т. Д.
- Сделать ход => Пользователь уведомляет сервер, что он хочет использовать определенную карту.
У меня есть веб-сервис, который использует библиотеку классов и WebMethods для вызова каждой из функций. Веб-страницы / автономные приложения могут использовать библиотеку классов напрямую или вызвать веб-службу для использования функции.
Я изо всех сил стараюсь придумать, как «уведомить» других пользователей о том, что другой игрок выполнил действие. Возможные логические схемы, о которых я подумал:
- Звоните, проверяйте статус игры каждые x секунд, чтобы узнать, все ли
- Вызовите веб-метод «дайте мне знать, если что-то изменилось» асинхронно с функцией обратного вызова.
- Что делать, если время ожидания истекло?
- Что если пользователь выйдет из игры в середине?
Пожалуйста, помогите мне с этим.