C CLI игровая концепция - PullRequest
1 голос
/ 19 мая 2010

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

По сути, я создаю две программы - клиент и сервер для игры на линкорах. Я уже написал реальную программу, которая играет в игру линейных кораблей. Я написал программу, в которой читается файл карты и правил, и пользователь пытается угадать местоположение кораблей, пока они не потопят все корабли.

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

Вот о чем я думал ..

Как только клиент присоединяется - проверьте, к какой игре он хочет подключиться. Если это новая игра - создайте новый поток для этой игры и дайте дескриптор сокета для первого клиента. В противном случае, если в игре уже есть один человек, оповестите игровую ветку о новом участнике, и он может начать игру.

Когда игра запускается - игровая нить должна породить еще две нити ... по одному экземпляру игры на линкоре для каждого игрока. Экземпляр для каждого игрока будет там, где размещены его корабли. Затем поток по очереди будет прослушивать ввод от каждого клиента и передавать эту информацию в соответствующую игру.

Правильно ли это истолковано? Что мне понадобится 3 темы на запущенную игру? А также, возможно ли использовать exec () в потоке для запуска нового экземпляра линкора, а затем передать информацию в стандартный поток этого экземпляра с помощью потоков (и получить стандартный вывод)?

Пожалуйста, дайте мне знать, если я что-то затуманил, и я уточню. Заранее большое спасибо за любую помощь!

1 Ответ

1 голос
/ 19 мая 2010

Я бы использовал столько потоков, сколько подключенных клиентов, и использовал бы их только для обработки соединений. Сами игры являются просто данными / объектами и не нуждаются в какой-либо конкретной теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...