На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока.
Дата отправки отчёта:
26 сентября 2015 г.
Задание выполнено: за
3 час. 00 мин.
Чему научился:
Передавать данные по сети
Что было сложным:
Реализовать обмен данными через сокеты
Комментарии:
Переписал наш класс Phone, чтобы программа работала через сокеты. По сути то же, только работает вроде более стабильно и передаю строки. Так можно и мини час сделать!!! =) Еще переделал автоходы, они работают у каждого для своего персонажа. Ну и картинку для 2 персонажа поменял. Ну а то, что они при хотьбе разворачиваются в нужную сторону, это конечно не окончательный вариант. В идеале нужно сделать плавное перемещение. Благо картинок для анимации хватает.
Научился: Передавать данные по сети. Общаться из программы с консолью Трудности: Сфотографировать два компьютера) Или это я пропустил, или это сделано преподавателем намеренно - но я не увидел объяснения, как непосредственно соединить два РАЗНЫХ компьютера по сети. Во всех сетевых уроках мы работали на IP 127.0.0.1 (т.е. на localhost'е). Поэтому для разных компьютеров я придумал решение сам(скорее всего дико неоптимальное) - при инициализации сервера программа открывает консоль и посылает туда запрос "ipconfig", считывает ответ, находит строку, в которой написан IP-адрес, вытаскивает его из этой строки и вставляет в текстовое поле. Далее при нажатии на кнопку запуска игры появляется сообщение о том, какой IP-адрес нужно сообщить клиенту. Как-то так.
P.S. Не очень получилась фотография двух компьютеров.
Научился: Очень интересно исследовать, как работают классы между собой. Трудности: Так писать программу - совсем просто. Но так все соединить вместе - очень сложно.
Интересно придумано с синхронной сменой уровней! Ух! Вот это урок! Столько всего важного и интересного. Удивительно, что класс phone передает всего то по одному байтику. А наши человечки бегают уже вместе! Спасибо за замечательный курс. Все очень понравилось!