У меня другая ситуация такая)) Конечно, может и неважно, что я планировал, но скажу - это была бы гама бродилка с интересными уровнями, редактор левелов svg-edit, гама на qb64. Вышла бы очень неплохой. Однако, как раз за 2 дня до НГ мне выслали тестовое задание, отправлял запрос на джава-разрабы, хоть его не знал. Узнал)) Начал изучать его с нуля и писать этот проект на новогодних праздниках.
Этот проект - крестики и нолики. Я не сливаюсь из-за того, что планировал, поэтому выкладываю. Хоть тема и изъезжанная, но для меня как первый проект в портфолио по жабе норм. Интересной эта игра может показаться тем, что она - серверная, но и битва с компом тоже есть.
Проект состоит из клиента Игры, и Сервера для неё (то бишь как бы 2 проекта, сервер легко можно приспособить и для другой игры, писал его универсальным).
Сервер многопользовательский, написал на старых добрых сокетах, ибо я только начал жабу изучать, решил с самых основ. Сервер эмулирует множество серверов для игры, куда можно зайти с напарником и погамать. Было бы скучно при подключении к серваку иметь один игровой стол. Игровые столы на серваке представляются как список ключевых имён, которые выбирает клиент. Клиенты с одинаковыми ключевыми именами могут общаться между собой, вот так гениально и просто.
Логика игры прописана на клиенте, сервер представляет собой автобота, который просто отвечает на запросы, логики там нету. Чтобы сервер не перегружать количеством клиентов и трафиком, сделал фиксированный пул потоков для клиентов сервера, т.е. 32 клиента максимум, остальные встают в очередь на сервере, и когда количество станет меньше 32-х, стоявший в очереди подключится.
Управление по игре описано в пункте Information (для игры с соперником должна быть включена цифровая нумерная клавиатура, которая справа (вкл/выкл Num Lock))
Настройка клиента игры - файл setClient.txt (редачите в блокноте параметры - своё имя, айпи адрес и порт сервака). Настройка сервера игры - файл setServer.txt (порт сервака и список игровых столов). Замечания по тому, как редактировать - описаны в файле README - прочтите!
Теперь на счёт, как опробовать игру в Онлайн-режиме:
Те, кто подключены к сети напрямую, без роутера, тех проблема не застанет. Для желающих потестить остальным пользователям, которые подключены к сети через роутер, следующие рекомендации:
1) Игра неудалённо, если к вашему роутеру подключены вы и ваши друзья, тогда можете спокойно подключаться к серверу, используя "локальный айпи", который выдаёт сервер.
2) Игра удалённо, если вы у себя запускаете сервак, то сначала нужно настроить роутер. Операции простые - нужно перебросить порты с локальной сети на доступ из Интернет. У меня роутер Asus rt-n12. Настройка (Интернет - переадресация портов - включить(да) - добавить в список ниже - диапазон портов(27015 - я его использовал и советую тоже, не со всяким портом прокатит) - локальный ip адрес из рабочей группы(workgroup, у меня, например 192.168.1.127) - локальный порт(27015) - протокол(tcp/upd)) и примените все настройки. Вход в настройки роутера у моего был по локальному адресу 192.168.1.1 - в адресную строку браузера.
P.S. по удалёнке лучше запускать на порту 27015. Если для удалёнки запустили сервак, подождите хотя бы минутку, прежде чем обнаруживать его клиентом. С подключением к серваку Контры также было.
Если вы не разберетёсь, как для удалённого соединения через интернет настраивать роутер, напишите мне, я запущу серв у себя и вышлю координаты к нему (у себя потестил, с другом играли)
По исходникам, кому интересно, написал универсальные классы меню и пуш-уведомлений, можете позаимствовать
Ссылка на весь этот проект на Яндекс диске:
Проект_Крестики_и_Нолики.zip __________________
Прикрепленные файлы:
скрин1.jpg (21.29 кб.) Скачано 333 раза
скрин3.jpg (18.25 кб.) Скачано 334 раза
скрин4.jpg (20.55 кб.) Скачано 327 раз
скрин5.jpg (20.97 кб.) Скачано 346 раз
скрин7.jpg (16.35 кб.) Скачано 339 раз