Version: 1
Навигатор по разделам:
| Summary: This project is a very small 2D game. Its purpose is to make you work with textures, sprites, and some other very basic gameplay elements. | Резюме: Этот проект представляет собой очень маленькую 2D-игру. Его цель — заставить вас работать с текстурами, спрайтами и некоторыми другими базовыми элементами игрового процесса. | | --- | --- |
| Being a developer is a great thing for creating your own game. But a good game needs some good assets. In order to create 2D games, you will have to search for tiles, tilesets, sprites, and sprite sheets. Fortunately, some talented artists are willing to share their works on platforms like: itch.io In any case, try to respect other people’s work. | Быть разработчиком — отличная вещь для создания собственной игры. Но для хорошей игры нужны хорошие активы. Чтобы создавать 2D-игры, вам придется искать плитки, наборы плиток, спрайты и листы спрайтов. К счастью, некоторые талантливые художники готовы делиться своими работами на таких платформах, как: itch.io В любом случае старайтесь уважать чужой труд. | | --- | --- |
| The goals of this project are similar to every other goal for this first year: being rigorous, level up in C programming, use basic algorithms, do some information research, and so forth. | Цели этого проекта аналогичны всем остальным целям на этот первый год: быть строгим, повысить уровень программирования на C, использовать базовые алгоритмы, провести некоторое информационное исследование и так далее. |
|---|---|
| so long is a graphic design project. It will help you improve your skills in the following areas: window management, event handling, colors, textures, and so forth. | пока это проект графического дизайна. Это поможет вам улучшить свои навыки в следующих областях: управление окнами, обработка событий, цвета, текстуры и так далее. |
| • Your project must be written in accordance with the Norm. If you have bonus files/functions, they are included in the norm check and you will receive a 0 if there
| is a norm error inside. | Ваш проект должен быть написан в соответствии с Нормой. Если у вас есть бонусные файлы/функции, они включены в проверку нормы, и вы получите 0, если внутри есть ошибка нормы. |
|---|---|
| • Your functions should not quit unexpectedly (segmentation fault, bus error, double | |
| free, etc) apart from undefined behaviors. If this happens, your project will be | |
| considered non functional and will receive a 0 during the evaluation. |
| Ваши функции не должны завершаться неожиданно (ошибка сегментации, ошибка шины, двойное освобождение и т. д.), за исключением неопределенного поведения. Если это произойдет, ваш проект будет считаться неработоспособным и получит 0 баллов при оценке. | | • All heap allocated memory space must be properly freed when necessary. No leaks will be tolerated. | При необходимости все пространство памяти, выделенное в куче, должно быть правильно освобождено. Никаких утечек не допустимо. | | • If the subject requires it, you must submit a Makefile which will compile your source files to the required output with the flags -Wall, -Wextra and -Werror, use cc, and your Makefile must not relink. | Если тема требует этого, вы должны отправить Makefile, который скомпилирует ваши исходные файлы в требуемый результат с флагами -Wall, -Wextra и -Werror, используйте cc, и ваш Makefile не должен перелинковываться. | | • Your Makefile must at least contain the rules $(NAME), all, clean, fclean and re. | Ваш Makefile должен как минимум содержать правила $(NAME), all, clean, fclean и re. | | • To turn in bonuses to your project, you must include a rule bonus to your Makefile, which will add all the various headers, librairies or functions that are forbidden on the main part of the project. Bonuses must be in a different file _bonus.{c/h}. Mandatory and bonus part evaluation is done separately. | Чтобы включить бонусы в свой проект, вы должны включить бонусное правило в свой Makefile, которое добавит все различные заголовки, библиотеки или функции, запрещенные в основной части проекта. Бонусы должны быть в другом файле _bonus.{c/h}. Обязательная и бонусная части оцениваются отдельно. | | • If your project allows you to use your libft, you must copy its sources and its associated Makefile in a libft folder with its associated Makefile. Your project’s Makefile must compile the library by using its Makefile, then compile the project. | Если ваш проект позволяет вам использовать ваш libft, вы должны скопировать его исходники и связанный с ним файл Makefile в папку libft с соответствующим файлом Makefile. Makefile вашего проекта должен скомпилировать библиотеку с помощью Makefile, а затем скомпилировать проект. | | • We encourage you to create test programs for your project even though this work won’t have to be submitted and won’t be graded. It will give you a chance to easily test your work and your peers’ work. You will find those tests especially useful during your defence. Indeed, during defence, you are free to use your tests and/or the tests of the peer you are evaluating.
| Мы рекомендуем вам создать тестовые программы для вашего проекта, даже если эту работу не нужно будет отправлять и она не будет оцениваться. Это даст вам возможность легко проверить свою работу и работу ваших коллег. Вы найдете эти тесты особенно полезными во время вашей защиты. Действительно, во время защиты вы можете использовать свои тесты и/или тесты коллеги, которого вы оцениваете. | | • Submit your work to your assigned git repository. Only the work in the git reposi- tory will be graded. If Deepthought is assigned to grade your work, it will be done after your peer-evaluations. If an error happens in any section of your work during Deepthought’s grading, the evaluation will stop.
| Отправьте свою работу в назначенный репозиторий git. Оцениваться будет только работа в репозитории git. Если Deepthought будет назначен для оценки вашей работы, это будет сделано после вашей коллегиальной оценки. Если во время оценивания Deepthought произойдет ошибка в каком-либо разделе вашей работы, оценка будет остановлена. |
| Program name
| so_long | |
| --- | --- | --- |
| Turn in files
(Сдать файлы) | Makefile, *.h, *.c, maps
| |
| Makefile | NAME, all, clean, fclean, re | |
| Arguments
| A map in format *.ber | Карта в формате *.ber |
| External functs
(Внешние функции) | • open, close, read, write, printf, malloc, free, perror, strerror, exit
• All the functions of the MiniLibX | Все функции MiniLibX |
| Libft authorized | Yes | |
| Description
(Описание) | You must create a small 2D game in which a dolphin escapes Earth after eating some fish. Instead of a dolphin, fish, and the Earth, you can use any hero, any collectible and any place you want. | Вы должны создать небольшую 2D-игру, в которой дельфин убегает с Земли, съев немного рыбы. Вместо дельфина, рыбы и Земли вы можете использовать любого героя, любой коллекционный предмет и любое место. |
| Your project must comply with the following rules: | Ваш проект должен соответствовать следующим правилам: |
|---|---|
| • You must use the MiniLibX. Either the version available on the school machines, | |
| or installing it using its sources. | Вы должны использовать MiniLibX. Либо версия, доступная на школьных машинах, либо установка из исходников. |
| • The management of your window must remain smooth (changing to another win- | |
| dow, minimizing, and so forth). |
| Управление вашим окном должно оставаться плавным (переход в другое окно, свертывание и т. д.). | | • Although the given examples show a dolphin theme, you can create the world you want.
| Хотя в приведенных примерах показана тема дельфинов, вы можете создать мир, который захотите. | | • The map has to be constructed with 3 components: walls, collectibles, and free space.
| Карта должна быть построена из 3 компонентов: стены, предметы коллекционирования и свободное пространство. | | • The player’s goal is to collect every collectible present on the map, then escape chosing the shortest possible route.
| Цель игрока — собрать все предметы коллекционирования на карте, а затем выбрать кратчайший путь. | | • At every move, the current number of movements must be displayed in the shell.
| При каждом перемещении в оболочке должно отображаться текущее количество перемещений. | | • The player should be able to move in these 4 directions: up, down, left, right.
| Игрок должен иметь возможность двигаться в этих 4 направлениях: вверх, вниз, влево, вправо. | | • You have to use a 2D view (top-down or profile).
| Вы должны использовать 2D вид (сверху вниз или профиль) | | • The game doesn’t have to be real time.
| Игра не обязательно должна быть в реальном времени. | | • The player should not be able to move into walls.
| Игрок не должен иметь возможности перемещаться по стенам. |
| Your program has to display the image in a window and must comply with the following rules: | Ваша программа должна отображать изображение в окне и должна соответствовать следующим правилам: |
|---|
| • The W, A, S, and D keys must be used to move the main character. | Клавиши W, A, S и D должны использоваться для перемещения главного героя. |
|---|---|
| • Pressing ESC must close the window and quit the program in a clean way. |
| Нажатие ESC должно закрыть окно и выйти из программы в чистом виде. | | • Clicking on the red cross on the window’s frame must close the window and quit the program in a clean way.
| Щелчок по красному крестику на рамке окна должен закрыть окно и выйти из программы в чистом виде. | | • Using the MiniLibX images is strongly recommended.
| Настоятельно рекомендуется использовать образы MiniLibX. |