На этом уроке мы наконец-таки сделаем сетевую версию программы Sokoban для двоих. Мы будем использовать телефонный класс Phone с прошлого урока.
Дата отправки отчёта:
19 июня 2018 г.
Задание выполнено: за
1 день 43 мин.
Чему научился:
Добавил в проект класс Phone. На форму WelcomeForm добавил режим выбора и поле с подключениями. Добавил 2 конструктора в класс LabirintForm, вызываем нужный конструктор из класса WelcomForm Создал функцию получения данных Recv(byte data) Настроил экземпляр phone и запустить его. В класс LabirintForm добавить переменные my_user и ot_user. Переделал switch обработки нажатых клавиш. Добавил в функцию Recv управление вторым игроком. Добавил в класс Phone добавить параметр IsBackground = true Добавил синхронный рестарт и смену уровня. Вынес вызов функции LoadLevel из Recv Протестировал работу игры на двух ПК.
Научился: Передавать данные по сети. Общаться из программы с консолью Трудности: Сфотографировать два компьютера) Или это я пропустил, или это сделано преподавателем намеренно - но я не увидел объяснения, как непосредственно соединить два РАЗНЫХ компьютера по сети. Во всех сетевых уроках мы работали на IP 127.0.0.1 (т.е. на localhost'е). Поэтому для разных компьютеров я придумал решение сам(скорее всего дико неоптимальное) - при инициализации сервера программа открывает консоль и посылает туда запрос "ipconfig", считывает ответ, находит строку, в которой написан IP-адрес, вытаскивает его из этой строки и вставляет в текстовое поле. Далее при нажатии на кнопку запуска игры появляется сообщение о том, какой IP-адрес нужно сообщить клиенту. Как-то так.
P.S. Не очень получилась фотография двух компьютеров.
Научился: Очень интересно исследовать, как работают классы между собой. Трудности: Так писать программу - совсем просто. Но так все соединить вместе - очень сложно.
Интересно придумано с синхронной сменой уровней! Ух! Вот это урок! Столько всего важного и интересного. Удивительно, что класс phone передает всего то по одному байтику. А наши человечки бегают уже вместе! Спасибо за замечательный курс. Все очень понравилось!