Школьные забавы или мультиплеерная игра без сокетов и p. Хабрахабр. Здравствуйте, дорогие Хабражители! Сразу хочу оговориться, что эта статья создана just for fun, и не претендует на какое- либо обучающее свойство. В нашей школе информатику преподают с 6 класса, но ничему практически не научили, ибо мы так дружно и старательно форматировали тексты в Word'e, что закончили его изучать только к 9 классу. Было несколько уныло, и я занялся программированием. Помню, как копипастил «Hello, World!» из книжки по С++, потом первый калькулятор, потом еще калькулятор, затем познал Action. Script, сделал пару жутких игр, ну а потом обленился. После очередного скучного задания по Excel, мы с другом решили воплотить нашу давнюю идею — сделать мультиплеерную игру. На школьных компьютерах стоял еще Macromedia Flash 8, Borland Delphi 7, и в другом конце класса на мониторе блестела эмблема Windows Server 2. Мы пытались использовать стандартный компонент сокет сервера из Делфи, но тут сказался наш малый опыт в программировании и у нас не получилось даже подключиться. Даже тот поиск возможных проблем в Интернете не помог — жутко мешал бесполезный. Интернет- цензор. Порядком отчаявшись, мы уже подумывали бросить нашу затею, как вдруг другу в голову пришла странная мысль: «А что если нам все сделать с помощью текстовых файлов?!». Turbo Basic — компилятор языка Бейсик, а также его диалект, первоначально созданный Робертом «Бобом» Зейлом и впоследствии выкупленный у него компанией Borland. Роберт «Боб» Зейл в 1987 году на основе своей многолетней разработки BASIC/Z создал Turbo Basic. Ваши запросы поисковикам: Turbo Pascal School Pak - скачать Turbo Pascal School Pak 1.3, за программу долго мучился в windows7 без привычного Паскаля. Среда позиционируется в качестве переходной версии к Microsoft BASIC Professional Development System. Закачка Microsoft QuickBASIC бесплатна, не требует никакой дополнительной регистрации или отправки СМС. Сначала, я посмотрел на него, как на сумасшедшего, а потом понял, что в его идее что- то есть. В итоге, мы сошлись, что надо бы попробовать разместить текстовые файлы на общем диске, любезно предоставленным сервером, и посмотреть, что из этого выйдет. Выбор языка. Я придал этому большое значение, хоть выбор был совсем небольшой: старый Action. Script, Delphi или Pascal. Отстаивая Флеш, я долго и упорно пытался сделать чтение файлов, но(опять же из- за моего малого опыта) он не хотел открывать текстовый файл. Долго я бесился, успокаивался, думал, что же не так, но все без толку. В конце концов, бросил это дело, и мы опять с счастливыми рожами приступили к Excel'ю. Спустя около половины четверти, выдался свободный урок — учителя не было. Сели мы за компьютер, открыли Turbo Pascal и решили написать «что- нибудь с Win. Api». Порывшись в справке, мы нашли такие штуки, как Set. Cursor. Pos() и Get. Cursor. Pos(). С хитрым выражением лица, мы написали программки, которые синхронизировали курсоры мыши на двух компьютерах. Впрочем, не обошлось и без субъективных факторов: значительную. Посмотрим на Паскаль, а также на Си и Бейсик с точки зрения обучения. Так что теперь за Turbo/Borland Pascal приходится платить и частным. Кстати, написан Free Pascal на Паскале, так что для него проблема не . Программирование » Среда разработки » Скачать бесплатно без регистрации. Главная · Каталог файлов · Регистрация Вход. Turbo Basic v 1.0 / Турбо Бейсик - Компилятор для написания программ на языке Turbo Basic.Происходило это примерно так: Для «засыпания» использовали костыль: while (true) do. Set. Cursor. Pos()*/. По неизвестной нам причине, не работала функция засыпания, и пришлось грузить компьютер лишними вычислениями. Невозможно передать нашу радость, когда курсор на другом компьютере двигается без помощи мыши! Исходники можно найти здесь. Водушевленные, мы приступили к создания пинг- понга. Собственно, создание. Итак, мы, окрыленные своим маленьким, но жизнеутверждающим Win'ом, приступили к созданию пинг- понга. Клином стал вопрос визуализации. Решили использовать двумерный массив символов, в котором пробелами заполняется поле, несколькими символами ' . Программы вышло 3 — управляющая первым игроком, управляющая вторым игроком и управляющая мячом и его физикой. Управление. Управление осуществляется мышкой, с помощью все той же Get. Cursor. Pos(). Первая неприятность, с которой встретились — масштабирование координат курсора относительно нашей «сетки»- массива. Если наша сетка имеет атрибуты 7. Мы узнали соотношение атрибутов «сетки» и монитора, и делили координаты мыши на полученное отношение: get. Cursor. Pos(cursor. Pos). py : = cursor. Pos. y div 2. 0. if(py > h - 5) then py : = h - 5. В нашем случае, отношение получилось равно 2. Также мы блокируем выход нашего курсора за пределы координат массива (h- высота поля, 5 — высота игрока). Физика мяча. Как я заметил выше, вся физика мяча просчитывается в отдельной программе. Физика простейшая — при достижении мячом границ поля или столкновения с игроками вектор его скорости меняется на противоположный. При столкновении с игроками для придания геймплею хоть какого- то интереса, увеличиваем скорость нашего мяча. При выходе мяча за пределы массива, помещаем его в центр нашего поля и придаем случайную скорость. Отлично, с мячом закончили. Синхронизация. Пожалуй, самое забавное в этой игре — синхронизация. У нас есть три текстовых файла: ball. В ball. txt записываются координаты мяча, в файлы игроков — верхняя граница игрока. Каждый файл одновременно держат открытым сразу три программы, что существенно тормозит весь игровой процесс. Но тем не менее, существенных лагов не обнаружено. Если нечего делать, то можно создать даже такую ерунду, как эта. Разумеется, что мы только самое обычное школоло и восхищаемся всему (как в свое восхищались «Hello World'ом»), что хоть как- то связано с программированием, но мне кажется, что мы не зря потратили время. P. S. Исходники лежат здесь. Комментариев мало! P. P. S Совсем забыл. Программы у нас запускались сразу в общей папке, так что они заточены под то, чтобы лежать в одной папке с текстовыми файлами.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |