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

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

08.11.2018, 09:25. Показов 19913. Ответов 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
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 20:54  [ТС]
Студворк — интернет-сервис помощи студентам
8Observer8, я конечно не понял в чём подсказка. Но понял, что за пределы. Делал путём подбора.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <GL/freeglut.h>
 
#include <iostream>
using namespace std;
 
void draw()
{
    string score = "Score:";
    double x = -0.9, y = 0.9;
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)score.c_str());
    string live = "Lives:";
    x = 0.6, y = 0.9;
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)live.c_str());
    glutSwapBuffers();
 
    
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 20:58
Теперь можно отрефакторить этот код:
Цитата Сообщение от CyberGame Посмотреть сообщение
C++
1
2
3
4
5
6
glRasterPos2f(x, y);
glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)score.c_str());
string live = "Lives:";
x = 0.6, y = 0.9;
glRasterPos2f(x, y);
glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)live.c_str());
Добавьте выше функции "void draw()" новую функцию drawText(double x, double y, string text)

Результат на скрине должен быть тот же, покажите код, как вы сделали.
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 21:10  [ТС]
8Observer8, Что означает -09f - f?
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 21:17
Цитата Сообщение от CyberGame Посмотреть сообщение
Что означает -09f - f?
Означает, что число типа float, а если это double, то f не нужно писать. float и double отличаются точностью и количеством места занимаемым в оперативной памяти.

Посмотрите, всё ли понятно с выводом чисел на экран? Глобальные переменные (lives и score) - это конечно, считается плохо, но в маленьком проекте нормально.

Переделайте, как у меня:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <GL/freeglut.h>
 
#include <iostream>
#include <string>
using namespace std;
 
int lives = 3;
int score = 0;
 
void drawText(float x, float y, string text)
{
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void draw()
{
    string text = "";
    float x = x = 0.4f, y = 0.9f;
 
    drawText(x, y, "Lives: " + to_string(lives));
 
    glutSwapBuffers();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 21:19  [ТС]
8Observer8, Кхм. Нельзя ли вместо flat x = x..., просто в функции указать параметры?
Для чего string text = ""?
Что означает запись - + to_string(lives));
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 21:27
Чтобы в draw() не тратить места. Удобно же:

C++
1
2
3
4
5
6
7
8
9
10
11
void draw()
{
    int counter = 0;
    for (float y = 0.9f; y > -0.9; y = y - 0.1f)
    {
        counter++;
        drawText(0.4f, y, "Text: " + to_string(counter));
    }
 
    glutSwapBuffers();
}
Название: Text.png
Просмотров: 81

Размер: 4.3 Кб
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 21:28
Вам нужно вывести эти переменные на экран:
C++
1
2
int lives = 3;
int score = 0;
Тогда нарисуем квадрат.
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 21:30  [ТС]
8Observer8, Что в итоге означает-то?
Для чего string text = ""?
Что означает запись - + to_string(lives));
Еще раз спасибо за всё! Завтра продолжим.
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 21:45
Цитата Сообщение от CyberGame Посмотреть сообщение
Что в итоге означает-то?
Просто пример.

Цитата Сообщение от CyberGame Посмотреть сообщение
Для чего string text = ""?
Забыл удалить, это не нужно.

Цитата Сообщение от CyberGame Посмотреть сообщение
Что означает запись - + to_string(lives));
to_string - это библиотека из <string>, которая переводить число в строку, потому что в C++ нельзя складывать строку и число. Нам нужно сложить строку "Lives: " + чило lives.

Цитата Сообщение от CyberGame Посмотреть сообщение
Еще раз спасибо за всё! Завтра продолжим.
Я считаю, что с выводом чисел score и lives разобрались.

Кратно объясню, как рисуется квадрат в старом OpenGL:
C++
1
2
3
glBegin(GL_QUADS); // Начало рисования квадрата
// ... здесь перечисляются координаты вершин квадрата: glVertex(x1, y1); glVertex(x2, y2); и т.д.
glEnd(); // конец рисования квадрата
Исходя из этого описания, вам нужно подумать, как нарисовать квадрат (просто расставить его вершины в обходе против часовой стрелки)

В следующем примере все вершины квадрата рисуются в одной точке.

Должно получиться примерно так:
Название: Snake.png
Просмотров: 77

Размер: 1.9 Кб

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <GL/freeglut.h>
 
#include <iostream>
#include <string>
using namespace std;
 
int lives = 3;
int score = 0;
 
void drawText(float x, float y, string text)
{
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void draw()
{
    drawText(-0.9f, 0.9f, "Score: " + to_string(score));
    drawText(0.4f, 0.9f, "Lives: " + to_string(lives));
 
    // Выставляем цвет рисования в зелёный
    // Формат цвета (r, g, b), то есть (red, green, blue)
    glColor3f(0.0f, 1.0f, 0.0f);
 
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f); // Эту вершину не нужно менять, пусть она будет в точке (0, 0)
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glEnd();
 
    glutSwapBuffers();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 22:06
То есть в примере выше (не на скрипншоте, а в коде) вершины находятся в одной точке (0, 0)
C++
1
2
3
4
5
6
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f); // Эту вершину не нужно менять, пусть она в точке (0, 0)
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glEnd();
Вам нужно расставить точки так (последовательно, против часовой стрелки), чтобы получился квадрат.

Добавлено через 10 минут
Цитата Сообщение от 8Observer8 Посмотреть сообщение
glutBitmapString(GLUT_BITMAP_8_BY_13, ...);
По поводу GLUT_BITMAP_8_BY_13

Если гугле поискать: docs glutBitmapString

то по первой ссылке: http://freeglut.sourceforge.net/docs/api.php

можно найти GLUT_BITMAP_8_BY_13 (через поиск по странице Ctrl+F)

Очень полезно искать и читать кратко про каждую используемую незнакомую команду.

GLUT_BITMAP_8_BY_13 - A variable-width font with every character fitting in a rectangle of 13 pixels high by at most 8 pixels wide.
Здесь написано, что эта константа задаёт шрифт, в котором каждый символ имеет размер 13 пикселей в высоту и 8 пикселей в ширину.
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
15.11.2018, 22:22  [ТС]
8Observer8, не очень понял, что нужно сделать.
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 22:53
Сделать так, чтобы выводился квадрат, используя те подсказки, которые я выше описал.

Чтобы в итоге получилась такая картинка:


Добавлено через 1 минуту
Внимательно почитайте, что я в предыдущих сообщениях написал, и почитайте этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <GL/freeglut.h>
 
#include <iostream>
#include <string>
using namespace std;
 
int lives = 3;
int score = 0;
 
void drawText(float x, float y, string text)
{
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void draw()
{
    drawText(-0.9f, 0.9f, "Score: " + to_string(score));
    drawText(0.4f, 0.9f, "Lives: " + to_string(lives));
 
    // Выставляем цвет рисования в зелёный
    // Формат цвета (r, g, b), то есть (red, green, blue)
    glColor3f(0.0f, 1.0f, 0.0f);
 
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f); // Эту вершину не нужно менять, пусть она в точке (0, 0)
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glEnd();
 
    glutSwapBuffers();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 23:35
Цитата Сообщение от CyberGame Посмотреть сообщение
не очень понял, что нужно сделать.
Нужно было этот код:

C++
1
2
3
4
5
6
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.0f, 0.0f);
    glEnd();
заменить на этот:
C++
1
2
3
4
5
6
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.4f, 0.0f);
    glVertex2f(0.4f, 0.4f);
    glVertex2f(0.0f, 0.4f);
    glEnd();
Я в Paint'е подписал заданные координаты:
Название: Square.png
Просмотров: 69

Размер: 3.2 Кб

Скопируйте себе в проект, это будет текущий проект:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <GL/freeglut.h>
 
#include <iostream>
#include <string>
using namespace std;
 
int lives = 3;
int score = 0;
 
void drawText(float x, float y, string text)
{
    glColor3f(1.0f, 1.0f, 1.0f);    // Задаём текущий цвет рисования - белый
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void draw()
{
    drawText(-0.9f, 0.9f, "Score: " + to_string(score));
    drawText(0.4f, 0.9f, "Lives: " + to_string(lives));
 
    // Выставляем цвет рисования в зелёный
    // Формат цвета (r, g, b), то есть (red, green, blue)
    glColor3f(0.0f, 1.0f, 0.0f);
 
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.4f, 0.0f);
    glVertex2f(0.4f, 0.4f);
    glVertex2f(0.0f, 0.4f);
    glEnd();
 
    glutSwapBuffers();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
1
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
15.11.2018, 23:50
Помимо draw() в проекте должна быть функция update() которая бы вызывалась по таймеру с определённой периодичностью. В FreeGLUT есть функция glutTimerFunc. Она вызывает указанную функцию (в нашем случае - функцию update()) с указанным интервалом времени.

Например, после добавления следующего кода в проект, в консоль будет выводиться слово "update" каждые 500 милисекунд, то есть каждые полсекунды. Добавьте этого код и убедитесь, что слово "update" выводится в консоль:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void update(int time)
{
    cout << "update" << endl;
    glutTimerFunc(500, update, 0);
}
 
int main(int argc, char** argv)
{
    // ...
    // ...
    // ...
    glutTimerFunc(500, update, 0);
    glutMainLoop();
    return 0;
}
1
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
16.11.2018, 20:11  [ТС]
8Observer8, прости что тяну время. Очень занят, на выходных постараемся сделать больше.
0
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
16.11.2018, 21:08
Сделайте очень простое быстрое задание. Оно займёт у вас 30 секунд вместе с созданием скриншота.

Скопируйте этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void update(int time)
{
    cout << "Hello, World!" << endl;
    glutTimerFunc(500, update, 0);
}
 
int main(int argc, char** argv)
{
    // ...
    // ...
    // ...
    glutTimerFunc(500, update, 0);
    glutMainLoop();
    return 0;
}
И вставьте в следующий код и запустите. У вас должно в консоль выводиться "Hello, World" через каздые пол секунды. Покажите скриншот.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <GL/freeglut.h>
 
#include <iostream>
#include <string>
using namespace std;
 
int lives = 3;
int score = 0;
 
void drawText(float x, float y, string text)
{
    glColor3f(1.0f, 1.0f, 1.0f);    // Задаём текущий цвет рисования - белый
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void draw()
{
    drawText(-0.9f, 0.9f, "Score: " + to_string(score));
    drawText(0.4f, 0.9f, "Lives: " + to_string(lives));
 
    // Выставляем цвет рисования в зелёный
    // Формат цвета (r, g, b), то есть (red, green, blue)
    glColor3f(0.0f, 1.0f, 0.0f);
 
    glBegin(GL_QUADS);
    glVertex2f(0.0f, 0.0f);
    glVertex2f(0.4f, 0.0f);
    glVertex2f(0.4f, 0.4f);
    glVertex2f(0.0f, 0.4f);
    glEnd();
 
    glutSwapBuffers();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256); // 256x256 пикселей
    glutCreateWindow("Snake");
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
16.11.2018, 23:20
8Observer8, Как у тебя еще терпения хватает
1
9953 / 2954 / 497
Регистрация: 05.10.2013
Сообщений: 8,053
Записей в блоге: 242
17.11.2018, 08:03
Цитата Сообщение от SuperKir Посмотреть сообщение
Как у тебя еще терпения хватает
Меня только один момент напряг немного. Когда я распинался объяснял, расписывал, и вдруг вижу это сообщение:
Цитата Сообщение от CyberGame Посмотреть сообщение
8Observer8, не очень понял, что нужно сделать.
Видно, что в этом моменте не пытался понять, не с просил, что конкретно непонятно, а проще было не вдумываться, а просто переспросить, мол того объясни это задание сначала. Хотя до этого всё нормально шло, когда, наприме, надписи правильно расставил.

CyberGame, на самом деле осталось всего показать вам 2 маленьких шага, а дальше я буду помогать вам экспериментировать, чтобы вы пришли к пониманию в каком направлении изучать C++ на практике, чтобы змейка двигалась, ела еду и росла, сталкивалась со стенами и с собой, чтобы росли очки и уменьшались жизни, как стены, бонусы, звуки, ООП и т.д. Вот эти два маленьких технических шага осталось сделать. Они отделяют от творчества изучения C++ на примере создания простых "квадратных" игр:
  • Считывание данных с клавиатуры
  • Изменение координатной сетки так, чтобы начало координат было не в середине окна, а в нижнем левом углу. И чтобы координаты были не в диапазоне [-1, 1], а, например, в диапазоне [0, 10] или [0, 20], то есть, чтобы координаты были целыми числами, а ячейки змейки, то есть квадраты из которых состоит змейка были размером 1x1 (то это не пиксель). Когда покажу будет понятней.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
17.11.2018, 09:38
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Меня только один момент напряг немного. Когда я распинался объяснял, расписывал, и вдруг вижу это сообщение:
8Observer8, да на том сообщении даже меня бомбануло
До мелочей всё расписано, даже картинка результата приложена, а он говорит - не понимаю что делать)

Мне кажется с таким подходом он не то, что игры, даже программировать в будущем не будет
1
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
17.11.2018, 15:39  [ТС]
SuperKir, Почему такое унижение? Я не понял конкретно, что от меня хотят. То что написали я понял, не понял только задание.
8Observer8, Всё, я тут. Сейчас всё сделаю.
Что означает запись
C++ (Qt)
1
float x = x = 0.4f, y = 0.9f;
Почему нельзя просто написать:
C++ (Qt)
1
float x = 0.4f?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2018, 15:39

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru