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

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

08.11.2018, 09:25. Показов 20548. Ответов 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,070
15.11.2018, 10:25
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ещё нужно подключить библиотеку для звуков irrKlang.
А стоит ли с самого начала распыляться на две незнакомых библиотеки? Может лучше было сначала графику, потом к ней прикручивать звук или наоборот?
Ну и чем примечательна именно ваша библиотека irrklang ? В каких случаях она предпочтительнее других звуковых библиотек?
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 10:27  [ТС]
COKPOWEHEU, Я тоже думаю, то что эта библиотека пока не нужна.
8Observer8, Может начнем непосредственно с самой графики и логике?
0
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
9986 / 2958 / 497
Регистрация: 05.10.2013
Сообщений: 8,095
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru