Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Сокобан / Сокобан - Телефон - TCP/IP протокол

  • На этом видеоуроке мы создадим три класса, которые удобно
    использовать для передачи данных между двумя компьютерами.
  • Дата отправки отчёта: 19 сентября 2017 г.
  • Задание выполнено: за 2 час. 28 мин.
  • Чему научился: Повторил работу с TCP/IP ;)
  • Что было сложным: Найти время ;)
  • Комментарии: Очень классно получилось. / Люблю такие чтуки(сетевые технологии) ;) / Написал более лучший алгоритм(Почему?) - потому, что я сразу сделал отдельно библиотеку(Phone) и в ней не делал таких команд - типо - Console.Write("Hello"), но вы забыли добавить самое (почти) главное - проверку состояния подключения - я сделал это через Enum, в котором различные состояния(Connecting, Connected, ConnectionBreak, Sleep) - Эти состояния изменяются когда ты подключаешься или соединение разрывается, при каждом изменении состояния вызывается делегат(сделано через аксессор SET), а в основной программе(Не Phone) - вызывается метод  - void ChangeConnectionState(State State), в котором есть SWITCH-CASE и он определяет, что делать, например если соединение разорвано, игра поставится на паузу и будут ждать другого игрока. Состояние очень важно, оно облегчит процесс добавление адекватного мультиплеера :))) И при разрыве соединения у меня нет спама, у меня появится надпись ;( Connection Breack ;( и (клиент или сервер) снова будет пытаться подключится - выведет сообщение <<<Connecting>>> и не будет ими спамить ;)))))))))
    Жалко, что я анимации и цвета не добовил в консоль (не подключил свою библиотеку - ConsoleR - времени не хватило) ;) Так например можно былобы за секунды 2-5 используя один метод в моей библиотеке (Waiter) который бы вывел сообщение нужного мне цвета(аргумент), так ещё и количество точек ('.') и скорость анимации указать можно, анимация в стиле - Connecting... - и эти 3(или сколько душе угодно) точки будут двигаться туда - сюда, указаное кол-во времени(Или вечно висеть, пока мы не законектимся) ;) Что уж сказать люблю консольную графику(большие игры делал и довольно красивые, но кривые по коду(я тогда ещё мало чего знал), а сейчас занят делать крупные проекты ;) ) ;)))))
    Хотел даже в стим игру сделать (Консольную игру - симулятор хакера + головоломки + приближенная реальность) и за месяцев 5-6 сверстал 3-6 % от всей игры - даже в этот момент у моей игры было больше функционала чем когда-либо в хакерском жанре ;))) И это я 5-6 месяцев писал прямо в Program.cs боже мой.... - вот поэтому я её долго так делал ;) / Иногда бывает сяду и делаю новый аналог моей игры(с классами ООП, библиотеки, как положено + больше функционала - НАМНОГО - даже есть провайдеры, твой ПК, носитили, диски и папки), но делать это тяжело, но интересно - прогресс медленно идёт и времени мало ;)))) Кстати та игра не совсем консольная, там и формы есть и свой скриптовый язык Links - я мучался 1 месяц с синхронизацией и придумыванием компиляции и синтаксиса(скриптовый язык в игре? Это просто шикккк - можно автоматизировать действия, не проверять сервера на уязвимости, а написать скрипт, который это делает - в Links есть и условия, но до циклов не дошёл ;) ) ;) / Короче кто хочет в неё поиграть или просто посмотреть, я предаставлю полный исходник этого проекта, чтобы не посылать вам exe файл, а вы в страхе открывали его ;))) / И к тем более это старый код ;) / Игра головоломка + жанр хакинг ;) Надеюсь вам понравится ;)/
    Полный исходник игры HACK GAME будет чуть ниже :) Эх настальгия нахлынула по этим 6600 строчкам кода в Program.cs ЭХ..... Её даже проходил топ(3) ответов по тематике "программировние" в MailRu - и ему понравилось ;)))))
  • Архив проекта: Ссылка доступна после самостоятельного выполнения этого урока
  • Оценка видео-уроку:
Отчёт от 12230 за Сокобан / Сокобан - Телефон - TCP/IP протокол


Отчёт от 12230 за Сокобан / Сокобан - Телефон - TCP/IP протокол




Оцени работу

 
Сохранить страницу:

10558. --
Иван Воронин
Иван Воронин
ответить
→  LINKI  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-19 19:50

Молодец, хорошо попрактиковался.
з.ы.
Смотрю у тебя на втором скрине пакет с числом 53 отправился, а на первом скрине, принялся но цвет серый, а не жёлтый, я то думал вначале, что серое, значит не удалось отправить, а по факту видимо баг с выбором цвета консоли вовремя =)


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  LINKI  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-20 06:50

Я поначалу подумал, что создана прога для матрицы.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  LINKI  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-20 10:02

Я не делал состояний, потому что хотел сделать эту библиотеку ПРОСТОЙ.
И долго думал, что ещё из неё убрать. И очень доволен результатом.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  LINKI  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-20 10:23

скачал твою программу, поиграл.
прикольно сделал, молодец, очень классно получилось.
была игра "Президент" на БК компьютере, похожего склада.


12230. --
LINKI
LINKI
ответить
→  Евгений Волосатов  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-20 10:59

;))))) Понятно :) / Я вообще её доделать хотел и в Steam, но я сейчас не могу старый код продолжать - он ужасен :) Так что переписывать придётся... Кстати я подумал. И понял. Что можно даже OS сделать :) / Я это и сделаю + реализовал уже папки, глубокое сканирование файлов(индексирование), получение доступа в интерент через провайдера и тд. Получается псевдо реальность ;))))))
Мне ещё и друг сюжет начал писать :)
Костыль буду долго делать - ведь это двигатель игры.
Потом велосипед (история, наполнение контентом)
В то что ты играл - это обучение - для обычного человека - это ГОЛОВОЛОМКА.
Так что позже нужно будет реально думать головой - ведь будет оч много уязвимостей, а иногда даже действовать по другому :)
Забавное то, что ты будешь прокачивать свою OS - сам писать программы - например - программа в которой можно будет смотреть файлы, открывать и изменять, не используя команды, а всего лишь кликая мышкой.
Я хочу сделать порог вхождения минимальный - чтобы обычные люди тоже могли поиграть :)


12230. --
LINKI
LINKI
ответить
→  Иван Воронин  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-20 11:00

Ага, точно. Но это не ошибка в классе Phone :) / А в тестовой консоли, порядок нарушен был при отключении :)


8275. --
Tekashnik
Tekashnik
ответить
→  LINKI  # Сокобан / Сокобан - Телефон - TCP/IP протокол / 2017-09-21 15:11

Серъёзное движение))



Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Немножко стал понимать консольные приложения, я в них слабоват. А так все интересно, получилось
Трудности: Простая часть выбивала ошибку, понял причину, когда запустил всю программу
Спасибо большое!


Научился: Первые шаги в проектировании Клиент-Серверных приложений
Трудности: Ничего. Все очень подробно объяснено.
Отличный урок! Новые знания! Никогда раньше не приходилось работать с TCP/IP протоколом. Самое близкое, что приходилось делать - это подключать устройство через виртуальный USB-порт (видимый как COM) для обмена данными. Поэтому с COM-портом работать умею (кстати, делала проект на C#, используя стандартный класс), а вот связывать между собой компьютеры ... теперь тоже умею :)