theJam.ru

ИгрыColobot - для тех кто только познаёт программирование

10 марта 2009 | Добавил: aleg940

Помню школьные времена, когда учили pascal, учили программированию, алгоритмам. Много всего было интересного. Да, несомненно, многое даётся самообучением, причём настойчивым.

Но у многих часто возникает вопрос, с чего начать? Ведь книжки читать не интересно? Есть интересный способ.


Но ещё расскажу немного личного опыта. Интерес к программированию проснулся у меня в классе 4, в то время компьютеры были очень мощные, 386 с мегабайтом оперативной памяти и 40 мегабайтным жёстким диском и MS DOS. В то время у меня не было ни одной игрушки, по этому они писались вручную. Первый компьютер, так бывает :) На этом моменте прерывать ностальгию не хочу, по этому расскажу об одной программе, которая новичкам поможет вникнуть в программирование, а программисты могут просто получить удовольствие от программирования ботов-роботов. Не забудьте оставить софт подрастающему поколению.

Игра называется Colobot (скачать, установки не требуется, просто распаковать в отдельную папку).

Всё просто, пишите программы для роботов, в идеальном случае на миссию один запуск программы. Роботы могут ездить, летать, что-то подбирать, строить здания, обороняться и воевать (+ некоторые специфичные действия для некоторых ботов).

Язык программирования СИ подобный. Есть обучающая часть, всё полностью русифицировано. Обучающие упражнения, и миссии. Может затянуть :)

Новичкам colobot рекомендую, по себе скажу, частенько в СЕО без азов программирования сложно. Да и бывают случаи, когда без собственно разработанного софта вообще сложно.

Хотите регулярно получать новые задачи и познавательные топики? Подпишитесь на рассылку

Комментариев: 7

  1. Serge пишет:

    Спасибо!

  2. Tantros пишет:

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

    extern void object::Двигаться()
    {
    object item;
    jet(0.2);
    while (position.z20)
    motor(1,1);
    while (distance(position, item.position)>20)
    {
    wait(0,1)
    }
    motor(0,0)
    aim(-20);
    turn(direction(item.position));
    fire(1);
    }
    }
    С Си я вообще не знаком, объясните ещё пожалуйста что значит самая первая строчка. Каждое слово и значение. Спасибо.

  3. Myst 5 пишет:

    Tantros
    Инструкция extern определяет function(функцию), которая служит основной программой для робота
    Object item-ты ввёл item, как переменную(вместо неё может быть: x, y, cat, qwerty и др.)
    jet(0.2)-ты поднимаешься вверх на джетпаке со скоростью 0.2 (отрицательные значения опускают джетпак)
    while(position.z20)-циклический повтор
    motor(1,1)-включает мотор бота(левый двигатель;правый двигатель). Значения идут от -1 до 1.
    while (distance(position, item.position)>20)
    {
    wait(0,1)

    }-если дистанция до переменной item>20, то ждать 0,1 сек, пока значение не изменится
    motor(0,0)-ты уверен, может надо было эту функцию добавить в фигурные скобки для while?
    aim(-20)-прицел наклонён вниз на 20
    turn(direction(item.position))-повернуться к переменной item
    fire(1)-стрелять на протяжении 1сек.
    Вывод: видимо, тебе надо было, чтобы бот взлетел, полетал над одинаковом расстояние над землёй и перебил кого-то. Если нужна подсказка по программированию, нажми в игре F2 :)

  4. Tantros пишет:

    Я неточно сформулировал вопрос, имел в виду слово и значение в самой первой строке. я не в слепую копировал программку и знал что от робота хочу. Помощь в игре достаточно подробна для всех команд, переменных и категорий, КРОМЕ того что пишется в самой первой строке. я не нашёл там значение и слова extern. а ещё интересует синтаксис первой строки. Если extern объявляет функцию, то что значит void и object? Ведь эти слова определяют тип переменных? Два двоеточия видимо разделитель, затем идёт название функции, а потом что значат скобочки? раз они стоят, значит, видимо, можно указывать какие-то параметры? :)
    Ну и интересует что может значить сама ошибка: "Слишком много параметров"

  5. Myst 5 пишет:

    Короче, это значит, что код выполняется для всего блока "Двигаться". На более высоких уровнях нужно будет писать несколько команд и чтобы не запутаться используется такая схема. А фигурный скобки значат, что команды выполняются для всего блока.

    Ну и интересует что может значить сама ошибка: "Слишком много параметров"

    чесн говоря, у меня такого никогда не выпадало. Посмотри Solution(4) и сравни :lol:
    P.S. Говорят, что у нас до сих пор есть в далёких сибирских деревушках старообрядцы, использующие ассамблер :)

  6. ELF пишет:

    Tantros, Ошибка слишком много параметров возникает, если в функции перечислено для использования больше параметров, чем это возможно. В игре есть баг: эта ошибка вместо нужной строки выделяет заголовок. В вашем примере ошибку вызвала строка
    Wait(0,1) вместо Wait(0.1). Числа с дробной частью записываются через точку, частая ошибка, тоже на этом постоянно горю. ;)

    extern - указатель на возможность вызова описанной подпрограммы "извне", т.е. из главного цикла.

    void - указатель "пустого" класса, т.е. данная функция возвращает значине класса "ничего", таким образом, не возвращает ничего. Это логика Си, с ней придется смириться.

    Myst 5, По поводу Асма: многие люди используют ассемблер, поскольку например для программирования микропроцессорных систем на низком уровне ничего лучше нету. Я постоянно имею с ним дело по учебе (Кафедра промышленной электроники ЭФФ ТПУ).

  7. SM пишет:

    Интересная игрушка. Существенный недостаток - ограничение количества строк программы. Увлекает процесс обучения роботов, порой хочется автоматизировать не самих роботов, а написание и внедрение в них программ =).
    Когда в свободной игре роботы добывали титан/аккумуляторы, дошло до того, что цикл уперся в ограничение (не появится новый, пока не уничтожишь существующий объект).
    Разумеется, в игре невозможно предусмотреть все случайности, как и в жизни, поэтому довольно часто происходят сбои в программах при разных начальных условиях (в частности, это касается рельефа местности), нельзя составить универсальный алгоритм. =(

Комментировать!

Друзья, обращаю ваше внимание, что все бессмысленные и пустые сообщения будут удаляться, ровно как и комментарии с заведомо не существующми e-mail адресами. Спасибо!


Случайное:
ОБЗОР ИГРЫ ASSASIN’S CREED ROGUE
Assassin’s Creed Rogue, последняя на сегодняшний день «полноценная», если так можно сказать, часть и
Полезные советы перед началом прохождения The Witcher 3
Относительно недавно состоялся выход, наверное, одной из самых ожидаемых игр как в жанре RPG, так
История возникновения компьютерных игр
Многие пользователи интересуются феноменом огромной популярности индии - игр, несмотря на то, что мн
Обзор Игры FAR CRY 3
Far Cry 3 – это игра, которая у многих ассоциируется всего лишь с одним словом – «безумие». Мы играе
Какие бывают на данный момент типы компьютерных игр?
Классификация компьютерных игр – это достаточно спорный вопрос, поскольку на данный момент предостав


 
2005-2011 theДжем.ru - сайт для тех, кто умеет читать и думать. ↑ вверх
полезно знать