Аватар для Dinkin
748 / 534 / 134
Регистрация: 31.05.2013
Сообщений: 3,075
Записей в блоге: 3
1

ИИ и Builder

25.01.2025, 14:15. Показов 1963. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго, тема не вопрос, а скорее немного информативная =)
Начал замечать, некоторые ИИ научились писать программы именно под Builder, а не просто с++. Притом пишут довольно не плохо. Это конечно радует.
Вот ниже пример ...попросил написать мини игру....ну и текст ответа и скрин

Creating a simple game in C++ Builder with OpenGL support requires a basic understanding of both C++ programming and the C++ Builder IDE. Below, I will guide you through creating a simple OpenGL application that renders a colored triangle.

### Steps to Create a Simple OpenGL Game in C++ Builder:

1. **Setup your C++ Builder Environment:**
Ensure that C++ Builder is installed with support for OpenGL.

2. **Create a New VCL Forms Application:**
- Open C++ Builder.
- Select `File -> New -> VCL Forms Application`.

3. **Add OpenGL Support:**
To utilize OpenGL, you will need to include the OpenGL headers in your project. Make sure to include `GL/gl.h` and `GL/glu.h`.

4. **Design the Form:**
- Drop a `TPanel` on the form to act as the OpenGL rendering surface.

5. **Write the OpenGL Code:**
Below is a simple example code snippet that initializes OpenGL and renders a triangle.

```cpp
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <vcl.h>
#include <GL/gl.h>
#include <GL/glu.h>
#pragma hdrstop
 
#pragma resource "*.dfm"
 
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TPanel *OpenGLPanel;
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall OpenGLPanelPaint(TObject *Sender);
    void __fastcall OpenGLPanelResize(TObject *Sender);
private:    // User declarations
    HGLRC hRC; // OpenGL Rendering Context
    HDC hDC;   // Device Context
    void SetupOpenGL();
    void RenderScene();
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
};
 
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
 
void TForm1::SetupOpenGL()
{
    // Get the device context for the panel
    hDC = GetDC(OpenGLPanel->Handle);
    // Set up pixel format
    PIXELFORMATDESCRIPTOR pfd = {sizeof(PIXELFORMATDESCRIPTOR), 1, 
        PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL, 
        PFD_TYPE_RGBA, 32, 
        0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 
        0, 0, 0};
    int pixelFormat = ChoosePixelFormat(hDC, &pfd);
    SetPixelFormat(hDC, pixelFormat, &pfd);
    
    // Create the OpenGL rendering context
    hRC = wglCreateContext(hDC);
    wglMakeCurrent(hDC, hRC);
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
}
 
void TForm1::RenderScene()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_TRIANGLES);
        glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(-0.5f, -0.5f);
        glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.5f, -0.5f);
        glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(0.0f, 0.5f);
    glEnd();
    SwapBuffers(hDC); // Swap buffers to display the rendered image
}
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    SetupOpenGL();
}
 
void __fastcall TForm1::OpenGLPanelPaint(TObject *Sender)
{
    RenderScene();
}
 
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    wglMakeCurrent(hDC, NULL);
    wglDeleteContext(hRC);
    ReleaseDC(OpenGLPanel->Handle, hDC);
}
 
void __fastcall TForm1::OpenGLPanelResize(TObject *Sender)
{
    glViewport(0, 0, OpenGLPanel->Width, OpenGLPanel->Height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-1, 1, -1, 1);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
 
// Create and show the form
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
    Application->Initialize();
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->Run();
    return 0;
}
```

### Explanation:
- `SetupOpenGL`: Initializes OpenGL, sets up the pixel format, and creates a rendering context.
- `RenderScene`: Clears the screen and renders a colored triangle.
- `OpenGLPanelPaint`: Calls the rendering function when the panel needs to be repainted.
- `FormResize`: Adjusts the viewport and projection when the form is resized.

### Compiling and Running:
- Compile your application and run it. You should see a window with a colored triangle rendered using OpenGL.

### Note:
This is a basic example to get you started with OpenGL in C++ Builder. You can expand upon this by adding more advanced features, textures, lighting, and gameplay mechanics depending on your game's requirements. Also, make sure to handle any cleanup and consider using a game loop for more complex games.
Миниатюры
ИИ и Builder  
2
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2025, 14:15
Ответы с готовыми решениями:

Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010?
Народ! Такая проблема... Есть набор компонентов т.н. Dicom VCL. Сайт производителя - http://www.medicalconnections.co.uk/. У них на...

Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8
День добрый! Есть старый проект С++. Он компилируется на CodeGear™ C++Builder Version 11. Но на это ПО утеряна лицензия, сейчас...

Ошибка печати на принтер после конвертации приложения с C++ Builder 6 в RAD (C++ Builder 10.4)
Добрый день, Это мой первый опыт в C++ и в разработке Windows приложений в принципе:-( поэтому возможно вопрос уж совсем глупый(( ...

6
 Аватар для Dinkin
748 / 534 / 134
Регистрация: 31.05.2013
Сообщений: 3,075
Записей в блоге: 3
25.01.2025, 14:18  [ТС] 2
В ответе подробно описано пошагово что нужно сделать, этж круто

Добавлено через 2 минуты
Ну и добавлю, что перепробовал штук 20 разных ИИ, часть игнорили "Builder" и упорно предоставляли ответ для обычного c++, а кто то просто подставлял ответы с разных форумов.
0
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 1
14.02.2025, 23:39 3
Интересно, что то на подобии Gpt можно интегрировать в builder?
0
 Аватар для Dinkin
748 / 534 / 134
Регистрация: 31.05.2013
Сообщений: 3,075
Записей в блоге: 3
15.02.2025, 00:39  [ТС] 4
tyktyk71, Пока нет и в делфи нет...ну если только кто то самоделки пишет. На вижул студио такого добра хватает, но варианты приходится перепроверять и много корректировать.

Добавлено через 6 минут
А так немного офтопа. Посещаю все презентации embracadero в направлении с++. И вот уже лет 5-6 у меня ощущение что на них преподносят тежи яйки, но с боку. Ну то есть за 5-6 лет у меня не возникло ни разу идеи взять и обновится до новой версии, ну вот прям не чего не задело или йокнуло: "о это охрененая фича, она мне поможет в разработке".
0
 Аватар для Storm Screamer
4269 / 1122 / 94
Регистрация: 21.04.2013
Сообщений: 7,682
15.02.2025, 00:57 5
Цитата Сообщение от Dinkin Посмотреть сообщение
Пока нет и в делфи нет
Есть, через GetIt Manager ставится.
0
 Аватар для Dinkin
748 / 534 / 134
Регистрация: 31.05.2013
Сообщений: 3,075
Записей в блоге: 3
15.02.2025, 01:04  [ТС] 6
Storm Screamer, ну так я выше написал, что это самоделки. Я не говорю что это плохо, просто результат что они выдают хрен знает как применять в боевых задачах.
Я юзал те что с интеграцией Copilot (именно те что через Git)...Возможно Вы или кото то больше приноровились и удачно с ними работает, мне нет.
0
 Аватар для Storm Screamer
4269 / 1122 / 94
Регистрация: 21.04.2013
Сообщений: 7,682
15.02.2025, 01:17 7
Цитата Сообщение от Dinkin Посмотреть сообщение
ну так я выше написал, что это самоделки
Данная позиция мне не ясна. Через GetIt Manager, в частности, и официальный патч накатывается на саму IDE. То есть это вполне легальный метод расширять возможности IDE. Будет ли по дефолту в будущих версия интегрирован ИИ-помощник? Вполне вероятно.

Однако, если говорить в целом про Rad Studio, то она какая-то отсталая по возможностям помогать программисту по сравнению с той же MSVS 2022.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2025, 01:17
Помогаю со студенческими работами здесь

Как открыть проект C++Builder 6 в Embarcadero C++Builder 10.3 Community Edition?
Здравствуйте. Как открыть проект C++Builder 6 в новом Embarcadero C++Builder 10.3 Community Edition?

Как заставить проект Builder 6 загруженный в Builder 2007 отображать новые кнопки
Люди добрые, кто нибудь встречался с такой проблемой: Я установил Builder 2007, загрузил в него проект, сделанный в Builder 6, при этом...

Подключение *.pas-модулей к C++ Builder-проектам, или перегон проектов с Delphi на C++ Builder
Известно, что в *.bpr- проекты приложений имеется возможность подключения обычных pas-модулей Delphi, и использование их совместно с...

Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый
Много раз замечал непонятки с компилятором. Масла в огонь подлил Какой посоветуете?

Перенос программ из Borland C++ Builder 6 в C++Builder 10.4 Community Edition
Приветствую всех! Применяю Borland C++ Builder 6 уже лет 15, в основном для сервис-обслуживания микропроцессорной аппаратуры от ПК по...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Простая нейросеть на КуМир: Создание и обучение
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
Исполнитель Водолей в КуМир: Решение задач
EggHead 16.03.2025
Разработка алгоритмического мышления — одна из ключевых задач для начинающих программистов, и система КуМир предлагает отличный способ погрузиться в этот процесс. Среди множества исполнителей в этой. . .
Исполнитель Чертежник в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы можете рисовать на бесконечной координатной плоскости, перемещая точку, которая оставляет след. По вашей команде она может поднять перо и двигаться, не оставляя следа, или. . .
Исполнитель Робот в КуМир: Решение задач
EggHead 16.03.2025
КуМир (Комплект Учебных МИРов) — это учебная среда программирования, разработанная специально для обучения базовым концепциям алгоритмизации. Её главная фишка — использование русскоязычного. . .
Исполнитель Черепаха в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы впервые учитесь программировать, а перед вами стоит задача заставить маленькую виртуальную черепашку рисовать на экране. Звучит забавно? Эта идея зародилась ещё в 1967 году, когда. . .
Конвейеры данных с Apache Kafka
Javaican 16.03.2025
В мире, где данные стали новой нефтью, Apache Kafka зарекомендовал себя как мощный инструмент для построения надежных и масштабируемых конвейеров данных. Созданный изначально командой LinkedIn в 2011. . .
Deno против Node.js: Будущее JavaScript рантайма
run.dev 16.03.2025
За последнее десятилетие Node. js стал абсолютным лидером среди JavaScript-рантаймов и фактическим стандартом для серверной разработки на JavaScript. Но в 2018 году тот же разработчик, который создал. . .
SwiftUI или UIKit - что выбрать для нового приложения iOS?
mobDevWorks 16.03.2025
Когда Apple представила SwiftUI на WWDC 2019, многим показалось, что дни UIKit сочтены. Новый декларативный фреймворк предлагал радикально иной подход к разработке интерфейсов. Вместо кропотливого. . .
Docker: Руководство для начинающих по созданию первого приложения
Mr. Docker 16.03.2025
Docker — это платформа, которая упаковывает ваше приложение и все его зависимости в стандартизированные блоки, называемые контейнерами. Эти контейнеры изолированы друг от друга и от основной системы,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru