|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
|
Что изучать для совершенствования знаний по C++08.11.2018, 09:25. Показов 21502. Ответов 361
0
|
|
| 08.11.2018, 09:25 | |
|
Ответы с готовыми решениями:
361
Что изучать после получения базовых знаний по c# Какой язык и технологию изучать после получения средних знаний
|
| 13.12.2018, 11:03 | ||||||
|
Я нашёл эту задачу, вбив в гугле название задачи: codewars sum of a sequence. Надо же, легко нашлось. Вот эта задача: https://www.codewars.com/kata/... /train/cpp
Первое, что я увидел на твоём скриншоте - красная рамка вокруг результатов прохождения тестов. Это говорит о том, что есть какая-то проблема. Второе - надпись: "Time: 1778 ms". Это почти две секунды на выполнение тестов, а это очень много. Это может говорить от том, что твой алгоритм работает слишком долго. Третье - надпись: "Exit Code: 132". Я не знал, что это означает, поэтому просто вбил в гугле: exit code 132 codewars. Я нашёл, что это "Segfault", то есть Segmentation Fault. А это уже знакомо, потому что практически все с этим сталкивались. Это ошибка возникает при пропытке записи или чтения данных, к которым у программы нет доступа. Например, если у тебя массив из 10 элементов, а ты пытаешься записать по индексу за пределом массива: arr[1001] = 123; Либо когда указатель указывает на то, что он не должен указывать и ты пытаешься либо прочитать данные, на которые указывает указатель, либо пытаешься записать данные, куда указывает указатель. Теперь вопрос: почему у тебя возникает "Segfault"? Ведь ты не используешь ни массивов, ни указателей. Ошибка связана с тем, что ты сам добавил дополнительный параметр в функцию. Я позже попробую у себя. Сейчас нужно поправить, чтобы было так:
0
|
||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
||
| 13.12.2018, 13:31 | ||
|
Один из самых мерзких классов ошибок.
1
|
||
| 13.12.2018, 15:45 | ||||||
|
CyberGame, не пояснишь, что ты хотел сделать, когда добавил дополнительный параметр в функцию?
В первоначальном виде заготовка функции была такая:
Зачем ты добавил четвёртый параметр поумолчанию: Кликните здесь для просмотра всего текста
0
|
||||||
|
60 / 45 / 15
Регистрация: 06.03.2018
Сообщений: 202
|
||
| 13.12.2018, 16:34 | ||
|
сори... не заметил что это давняя история...
1
|
||
| 13.12.2018, 18:26 | |||||||||||||||||
|
CyberGame, ты плохо понимаешь как работает змейка, потому что ты не прокручиваешь время от времени код, как она работает. Не читаешь документацию по непонятным командам. Не пытаешься развивать. Не составляешь список, того, что можно добавить или изменить. Но ещё что плохо, то что весь код в функции main. Нужно будет растащить его на небольшие файлы. Я подумаю, как это лучше сделать. Как добавить генерацию новой еды в случайном месте в момент поедания еды змейкой. Бедём крайний код из сообщения #222 Сейчас еда хранится в списке std::list. Удаляем список с едой
Давай по очереди что-то добавлять. Сделай чтобы счёт (Score) увеличивался, когда съедается еда. main.cpp
0
|
|||||||||||||||||
| 14.12.2018, 12:37 | |
|
0
|
|
| 15.12.2018, 12:20 | ||||||||||||||||||||||
|
Вернёмся с Score. У нас в программе есть глобальная переменная для хранения Score:
Текущий код нашей змейки: main.cpp
0
|
||||||||||||||||||||||
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
||||||
| 20.12.2018, 09:17 [ТС] | ||||||
|
8Observer8,
0
|
||||||
| 20.12.2018, 10:04 | |
|
CyberGame, скинь весь код.
Добавлено через 17 минут Я хотел посмотреть, есть ли у тебя хранилище для еды foods. По идее его не должно быть. Мы договорились, что еда на поле всегда появляется одна, как в классической змейке. Когда игра начинается, то еда на поле одна. Когда змейка съедает еду, то еда появляется в другом месте. Всегда одна еда на поле. Поэтому я не понимаю, зачем оставил хранилище еды foods от прошлой версии. Тем более, я думал, что ты внимательно читал это сообщение, где я генерацию еды уже сделал. Добавлено через 3 минуты Раз мы совместно разрабатываем змейку, то зачем делать туже работу снова? Предложи, что ещё должна или не должна делать змейка. Проблем ещё много. Например, классическая змейка при врезании в свой хвост начиналась сначала, а одна жизнь убавлялась. Добавлено через 2 минуты Подумай, как сделать так, чтобы при врезании головы в одно из звеньев тела змейки происходил сброс игры на начало. Если это для тебя сложно, то придумай, что ещё можно изменить в игре.
0
|
|
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
|||||||||||
| 20.12.2018, 10:15 [ТС] | |||||||||||
|
8Observer8,
Давай я попробую решить всё самостоятельно если не получиться обращусь. Единственное я не понимаю, как работает вот это.
Добавлено через 6 минут 8Observer8,
0
|
|||||||||||
| 20.12.2018, 10:15 | |
|
Массив snake состоит из элементов cell (ячеек). Каждая ячейка cell представляет из себя пару пару двух чисел: { x, y }. Здесь в коде логика такая. Пробегаемся по массиву элементов еды (по координатам элементов еды). Проверяем, если текущая координата головы змейки совпала с один из элементов еды, то нужно в массив элементов змейки добавить cell ({x, y}) с координатами еды.
0
|
|
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
|
| 20.12.2018, 10:23 [ТС] | |
|
8Observer8, За голову змейки отвечает - coordHead
?
0
|
|
| 20.12.2018, 10:42 | ||||||||||||||||||||||
|
У тебя в коде нарушена логина. Посмотри все места, где у тебя используется переменная coordHead.
Я перечислю. Сначала ты создаёшь переменную coordHead типа Vector2i. Это переменная хранит два числа: { x, y }
Добавлено через 4 минуты
0
|
||||||||||||||||||||||
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
||||||
| 20.12.2018, 19:54 [ТС] | ||||||
|
8Observer8,
Вроде всё
Что дальше?
0
|
||||||
| 20.12.2018, 20:55 | ||
|
- Добавить то-то + Убрать это + Заменить вот это - Добавить это - Реализовать то Глобальная задача, чтобы была играбельная версия игры, то есть, чтобы в ней была победа и проигрыш. Я предлагаю сделать пока простейший вариант победы - съесть три штуки еды. Вместо трёх можно будет любое число поставить потом, но три будет нормально, чтобы проще отлаживать. Когда змейка съедает три еды пусть выводится в середину экрана "You won the game". Не знаю, правильно ли это по английский: "Вы выиграли эту игру!". В общем-то и по русски не очень звучит. Надпись можно будет тоже потом поменять. Из важных вещей можно будет добавить квадраты вокруг игрового поля, чтобы при врезании в них игра начиналась сначала, как у меня. У меня бесконечная змейка на максимальный результат. Её бы расположить на хостинге с базой данных, чтобы сохранялись рекорд и имя.
0
|
||
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
|
| 20.12.2018, 20:59 [ТС] | |
|
8Observer8,
Выведется надпись, а змейка должна будет остановиться или что?
0
|
|
| 20.12.2018, 21:01 | |||||||
|
http://www.cplusplus.com/reference/cstdlib/srand/
0
|
|||||||
|
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
|
|
| 20.12.2018, 21:58 [ТС] | |
|
8Observer8,
Размеры поля - От координаты 0 ( включительно ), до 20 ( включительно ), да?
0
|
|
| 20.12.2018, 22:22 | |
|
0
|
|
| 21.12.2018, 13:21 | |||||||
Добавлено через 55 минут Некоторые текущие недоработки в змейке. Список можно корректировать: изменять, добавлять, удалять пункты:
А вообще, хорошо бы сделать перевод на актуальный шейдерный OpenGL 3+, в 3D и импортом 3D моделей из редактора Blender. Я начинающий 3D моделлер. Могу сделать простые 3D модели и наложить текстуры на них. Но это если ты не решишь, что изучение линейной алгебры, OpenGL и т.д. - это не твоё. Из линейной алгебры нужно знать для змейки только правило умножения матрицы на вектор для перемещения объектов. В интернете очень много туторов для начинающих по линейной алгебре в OpenGL 3+, по языку шейдеров GLSL, в целом по OpenGL 3+ и написании простых игр на нём. Особенно, на английском, а так же много видео уроков, книг, статей. Рекомендую искать, изучать и практиковаться в шейдерном OpenGL на простых играх. На простых играх интереснее изучать программирование, алгоритмы и ООП.
0
|
|||||||
| 21.12.2018, 13:21 | |
|
Подскажите, как лучше всего изучать язык, ежели в академии не дают достаточный объем знаний Какие паттерны можно использовать для совершенствования приложения Что изучать для работы Что изучать для создания сайтов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|