Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/76: Рейтинг темы: голосов - 76, средняя оценка - 4.72
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323

Что изучать для совершенствования знаний по C++

08.11.2018, 09:25. Показов 19527. Ответов 361

Изучил уже до ООП, вопрос что делать дальше? Могу ли я уже писать программы, с чего начинать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2018, 09:25
Ответы с готовыми решениями:

Что изучать после получения базовых знаний по c#
В каком направлении дальше двигаться? Или попытаться устроиться стажером для начала? А там дальше скажут в каком направлении двигаться...

Какой язык и технологию изучать после получения средних знаний
Здравствуйте! Я сейчас в 9 классе, буду поступать в техникум...Хорошие знания C#.NET, LINQ, ADO.NET, скоро буду начинать учить ASP.NET, и...

Ссылки для изучения и совершенствования
Ha всякий случай, несколько ссылок, больше на Rutracker. He знаю других трекеров c поиском в этих категориях. Темы c наибольшим спросом...

361
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 05:31
Лучший ответ Сообщение было отмечено Nishen как решение

Решение

CyberGame, я вижу вы активно решаете задачи в разделе Python. Это очень похвально. Можно и на C++ время от времени решать. Можно одну задачу решить на Python, а следующую на C++.

Но что вас отпугнуло от продолжения писать змейку? Может те туторы, на которые я дал ссылки? Так они малюсенькие, микроскопические. В них не пишется игра с самого начала до конца. В них просто показаны самые базовые вещи, которые будут необходимы в других играх. Если вам не нравится, что за вас начинают делать змейку, то возьмите туториал ещё более простой, чем змейка: C++ 2D Pong Game. Там очень простой английский. За одно в английском потренируетесь. Нужно как можно быстрее становиться с английским на "ты". Стараться как можно больше читать на английском, смотреть английские туториалы. А если у вас английский в школе есть, так это вообще замечательно! У меня в школе и универе был немецкий, но ничего, я стал читать книги только на английском, смотреть только английские видео, пишу комментарии на английском, читаю/пишу на английских форумах. Сейчас я полностью отказался от любой информации на русском. Если у вас в школе тоже немецкий или французский и ваш английский на полном нуле, то можно нагуглить огромное количество туторов по OpenGL на русском.

В туторах, что я скинул выше показаны такие базовые вещи как:
  • создание окна
  • рисование и стирание цветных квадратов (это всё нужно знать об OpenGL на данный момент)
  • игровой цикл
  • обработчики нажатий клавиш
  • вывод текста для вывода: количества жизней, набранных очков, номера уровня, надписи "Game Over"
  • запуск фоновой музыки и звуки поедания еды с помощью библиотеки irrKlang (easy!)

Когда вы сделаете несколько первых играбельный уровней, то весь код у вас, скорее всего, будет в одном файле в main.cpp. Ничего страшного, с этого момента можно начать рефакторить код под ООП.

После переделки проекта под ООП можно перейти к следующему этапу. Либо сделать самому ещё одну игру, например, Арканойд, на базе полученных знаний. Должно получиться три игры: Понг, Змейка, Арканойд (можно ещё Тетрис, но он сложнее этих игр). Либо после Понга или Змейки заменить рисование квадрата со старого OpenGL (glBegin/glEnd) на рисование квадрата с помощью актуального шейдерного OpenGL. Есть много хороших туторов, где можно подглядеть, как рисовать треугольники и квадраты, например: https://learnopengl.com/ Моё мнение, что лучше как можно раньше перейти на актуальный шейдерный OpenGL 3. На OpenGL можно рисовать графику на разных языка: Python, JavaScript, TypeScript, C#, Java и т.д. Один раз вы поймёте базовые вещи OpenGL и и без проблем переведёте свой код на другой язык. На OpenGL можно делать игры и приложения с интерактивной графикой для различных платформ: Android, iOS, Mac, Window, Linux.

Свои игры можно и нужно развивать по мере роста полученных знаний. Можно будет в какие-то игры внедрять алгоритмы на графах, например, алгоритмы поиска пути (A*, волновой и т.д.). Можно экспериментировать с Паттернами, описывая их с помощью UML-диаграмм классов. Паттерны + UML = ООП.

Кстати, хорошая онлайн книга по игровым Паттернам:
CyberGame, если у вас возникнут какие-либо трудности или вопросы в процессе создания игр на OpenGL, то пишите здесь в своей теме. Постараюсь ответить на любые вопросы. Самое главное - практикуйтесь, пишите код руками, а не копируйте его. Пытайтесь понять, что делает команда, гуглите её описание, и примеры, как её использовать.
1
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 09:26  [ТС]
8Observer8, решаю задачки по пайтон, потому что мне их задают. А про с++ вообще ничего не знаю.
Поставил себе цель написать змейку. Сразу встал вопрос, а что нужно знать чтобы ее написать. Смотрю разные туторы, там ничего не понятно.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 09:37
Цитата Сообщение от CyberGame Посмотреть сообщение
Поставил себе цель написать змейку.
Я вам помогу её достигнуть, если вы будете следовать моим инструкциям.

Цитата Сообщение от CyberGame Посмотреть сообщение
Сразу встал вопрос, а что нужно знать чтобы ее написать.
Всё что нужно вы уже знаете.

Цитата Сообщение от CyberGame Посмотреть сообщение
Смотрю разные туторы, там ничего не понятно.
Давайте вместе разбираться.

Какая версия Visual Studio у вас установлена? У меня 2015.

Добавлено через 44 секунды
Главное, чтобы у вас было: 2012 - 2017
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 09:40  [ТС]
8Observer8,
Тоже VS2017.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 09:56
Чтобы нарисовать змейку нужно создать окно. Чтобы создать окно нужно подключить к VS библиотеку, например, FreeGLUT. Ещё нужно подключить библиотеку для звуков irrKlang. Сейчас вам рано разбираться как подключать библиотеки к VS - это не относится к змейке, это можно разобраться потом. Я подключил FreeGLUT и irrKlang сам, а вам скину архив проекта, который нужно будет открыть и запустить: Snake.zip

После запуска ("Кнопка с зелёным треугольником") должна начать играть музыка. Если появятся ошибки, то скопируйте текст ошибок сюда на форум.

В проекте следующий код. Я потом поясню, что он означает. Главное, чтобы музыка заиграла у вас.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
#include <irrKlang.h>
using namespace irrklang;
 
int main()
{
    ISoundEngine *soundEngine = createIrrKlangDevice();
    soundEngine->play2D("Audio/background.mp3", true);
 
    std::getchar();
    return 0;
}
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:14  [ТС]
8Observer8,
getchar() - индефекатор не определен.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 10:17
Цитата Сообщение от CyberGame Посмотреть сообщение
У меня вопрос - зачем использовать std::, если уже есть using namespace std;
У меня нет. Там using irrKang

Цитата Сообщение от CyberGame Посмотреть сообщение
getchar() - индефекатор не определен.
Вот это поворот. А вы пробовали до этого какие-нибудь "hello, world" запускать?
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:18  [ТС]
8Observer8, Да, я и программы писал. Правда я пустой проект создавал.
0
 Аватар для COKPOWEHEU
4057 / 2692 / 432
Регистрация: 09.09.2017
Сообщений: 11,990
15.11.2018, 10:25
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ещё нужно подключить библиотеку для звуков irrKlang.
А стоит ли с самого начала распыляться на две незнакомых библиотеки? Может лучше было сначала графику, потом к ней прикручивать звук или наоборот?
Ну и чем примечательна именно ваша библиотека irrklang ? В каких случаях она предпочтительнее других звуковых библиотек?
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:27  [ТС]
COKPOWEHEU, Я тоже думаю, то что эта библиотека пока не нужна.
8Observer8, Может начнем непосредственно с самой графики и логике?
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 10:38
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну и чем примечательна именно ваша библиотека irrklang ? В каких случаях она предпочтительнее других звуковых библиотек?
Она проще всего в использовании в FreeGLUT проекте из тех, что я нашёл. Я умею работать с OpenAL, то она требует больше кода.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А стоит ли с самого начала распыляться на две незнакомых библиотеки? Может лучше было сначала графику, потом к ней прикручивать звук или наоборот?
А никто и не распылялся. Две строчки добавлены, музыка играет, она не мешает. Если надоест во время разработки, её можно временно закомментировать. Потом ещё одну строчку добавим при съедании еды. Про музыки и звуки можно забыть, это уже сделано.

Добавлено через 3 минуты
Цитата Сообщение от CyberGame Посмотреть сообщение
Я тоже думаю, то что эта библиотека пока не нужна.
Хорошо. Удалите пока эти строки. Точнее оставьте вот это:

C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    std::cout << "hello, world" << std::endl;
    std::getchar();
    return 0;
}
Эта программа работает?
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 10:39
Цитата Сообщение от CyberGame Посмотреть сообщение
VS2017
Так как у вас 2017, а у меня 2015, то порядок следующий:
  • Скачиваете архив: Snake.zip
  • Извлекаете из архива
  • В папке кликаете два раза по файлу Snake.sln
  • После открытия проекта в VS вы кликаете правой кнопкой мыши по проекту, то есть по Snake
    Название: Snake Project.png
Просмотров: 106

Размер: 8.9 Кб
  • Выбираете "Свойства" (или "Properties" - в самом низу списка)
  • В свойствах меняете на вашу версию VS тут:
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:45  [ТС]
8Observer8, нету у меня VS 2015 там. А ошибка вся та же.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 10:51
Цитата Сообщение от CyberGame Посмотреть сообщение
нету у меня VS 2015 там.
Это потому что у меня 2015, а у вас 2017, поэтому вы должны там в списке выбрать 2017

Цитата Сообщение от CyberGame Посмотреть сообщение
Да, я и программы писал. Правда я пустой проект создавал.
Попробуйте создать новый пустой проект и вывести "hello, world", как у меня выше. Скорее всего, что-то испортилось. В общем, если не заработает нужно будет переустановить VS.

Добавлено через 3 минуты
Цитата Сообщение от CyberGame Посмотреть сообщение
нету у меня VS 2015 там. А ошибка вся та же.
Может даже заработает, когда вы выберите VS 2017.
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:51  [ТС]
8Observer8,
Создал новый пустой проект.
C++ (Qt)
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main()
{
    cout << "hello, world" << endl;
    getchar();
    return 0;
}
Работает.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 10:52
Цитата Сообщение от CyberGame Посмотреть сообщение
Работает.
А если в моём проекте в настройках выбрать VS2017, работает?
0
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
15.11.2018, 10:55
CyberGame, пиши на питоне, если язык знаком, в чем проблема?
PyGame самое то для начала.
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 11:01  [ТС]
8Observer8, нет, я выбирал.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
15.11.2018, 11:05
Можно скриншот ошибки?
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 11:09  [ТС]
8Observer8,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2018, 11:09

Какой язык изучать или что изучать?
Здравствуйте форумчане. какой язык программирования изучать чтоб работать дома через интернет? может 1с? я сам живу в деревне работы нет,о...

Подскажите, как лучше всего изучать язык, ежели в академии не дают достаточный объем знаний
хожу на курсы в академию уже 3 месяца, изучаем С++ по либерти, практики нету вообще, просто примеры по книге набираем...в общем туго идет,...

Какие паттерны можно использовать для совершенствования приложения
Доброго времени суток! У меня есть приложение реализованное на Qt C++ - тестирование студентов. Суть приложения заключается в...

Что изучать для работы
Всем здравствуйте. Ребята, такой вопрос. Какие технологии сейчас лучше изучать, чтобы было проще и быстрее, и при этом чтобы можно было...

Что изучать для создания сайтов
Привет всем, всех с новым годом! кто занимается web - разработкой, создание сайтов , хотелось у вас узнать ко э что. В каком порядки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru