Форум программистов, компьютерный форум, киберфорум
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246

Направьте новичка в нужное русло :)

18.02.2017, 23:42. Показов 3232. Ответов 31

Студворк — интернет-сервис помощи студентам
Собственно сразу к вопросу. Имеется очень большое желание начать писать игры на C++. Вот... Пока что всё.
Проблема в том, что пока что прочитал только 100-150 страниц учебника Р.Лафоре 4-е издание. Дошел примерно до классов.
Знаю, что сначала следует выучить язык, а потом только, спустя много времени практики, пробовать что-то делать. Но есть ли возможно учить С++ и делать одновременно, как позволяют на данный момент мои знания, игру? Может кто посоветовать что в этом русле? В идеале хочется сделать игру жанра RPG. Для игры ведь нужен движок? Хочу взять какой-нибудь за основу, пока приглянулся UE4 - из-за блупринта (blueprint) и возможности писать на языке С++. Но вот проблема - скачал я все: Visual Studio + UE4 - а дальше что делать не знаю, могу копипастить видеуроки - но разве это считается разработкой? Я понимаю, что изначально должен быть, в игре жанра RPG, редактор персонажей допустим - то есть одна из сцен, вторая сцена - сам мир, в котором происходят действия? Ну вот как это с помощью текста вывести на экран? Какие команды использовать? Я только и знаю, что cout или cin
В общем , я понимаю, что до разработки игры мне далеко еще ой как! Но может для начала мне кто-нибудь посоветовать что-нибудь дельное? За 2D не хочу браться. Не знаю почему... Может потому,что много спрайтов нужно будет рисовать - а я этого не умею.
Если я что-то не так написал, то просто не разбираюсь в этом еще - поправьте как надо , если что.
Заранее спасибо, жду вашего мнения и советов.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2017, 23:42
Ответы с готовыми решениями:

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

Направьте меня в нужное русло :)
Здравствуйте! Я студент уже 2-ого курса....по специальности электроника автомобилей...но вот на нашей специальности первый год шло...

Пожалуйста, направьте в нужное русло!
Всем привет. Есть вопросы по поводу реализации проекта (вопросы в конце). Появилась необходимость в разработке собственного ПО....

31
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
19.02.2017, 22:53
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Abomination_25 Посмотреть сообщение
По поводу Б.Страуструпа - показалась тяжеловатой для начала мне - пишет для тех, кто уже знаком видимо с С++ или другими языками. Там сразу же почти появляются структуры, постоянно везде в примерах функции использует,даже есть какие-то функции push() и pop() - просто резко вводятся они и он примеры на них решает - ничего не понятно( Так же уже контейнеры какие-то пошли почти в начале...
Don't panic! (c)
Это только первый раздел такой - краткий обзор того, что и как в языке. Его можно читать до тех пор, пока понятно, а как только становится непонятно - бросать это дело, и переходить ко второму разделу (где описание начинается с типов, которые есть в языке). Первый раздел - чисто ознакомительный, штудировать его до конца сразу вовсе не обязательно. Не забудьте только время от времени к нему возвращаться, по мере продвижения по материалу основной книги.

В общем, просто переходите ко второму разделу, и до поры не беспокойтесь о том, что оставили в первом.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
19.02.2017, 23:18  [ТС]
Спасибо, буду пробовать еще раз тогда его читать) Пошел разбираться) Спасибо всем, буду по мере продвижения своего писать сюда или так нельзя на форуме?
0
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
19.02.2017, 23:41
Можно в принципе, если будут какие-то общие вопросы в развитие общей темы.
Если будут конкретные вопросы "не понял вот это место, как ни пытался, подскажите", то лучше создавать отдельную тему в соответствующем разделе.
0
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
20.02.2017, 23:38  [ТС]
Можно вопросы по классам?
Тут придумал такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Player
{
private:
int hp;
public:
int setHP(int damage, int armour)
{
int newHP=-damage+armour*0.01;
hp=newHP;
}
void getHP()
{
cout << "Players HP is << hp << "now" << endl;
}
}
Вопрос:1) Объявление, как я понимаю, переменных класса происходит в private? Можно ли и нужно ли там присваивать значение переменных там? Или же это делается в public с помощью set и get? Так ли сильно нужны эти set и get - смысла их пока не очень понимаю, может какой конкретный пример у кого есть - почему они важны? Я понимаю, что с помощью set мы может менять значение переменной, записанной в private, иначе ведь ее не поменяешь, я прав? А с помощью get мы может в любой момент получить значение этой переменной?
2) private - только инициализация переменных и никакого доступа к ним никто не имеет, кроме разве что все, кто внутри класса? То есть в классе можно менять значения, которые в private? А вне класса работает только set?
3) По поводу конструкторов и деструктуров - какой смысл их работы? Как они записываются ?
Я как вроде его записывать - но для чего он?
Мой же код с конструктором и деструктур., так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Player
{
private:
int hp;
public:
Player() // Тут конструктор начал
{
int newHP=100;
hp=newHP;
} ~Player() // тут деструктор сработал - зачем он?)
void getHP()
{
cout << "Players HP is << hp << "now" << endl;
}
}
Добавлено через 15 минут
Ошибка в 13 строке: должно быть
C++
1
2
3
cout << "Players HP is"<< hp << "now" << endl;
}
}
Написал новый код:
Добавлено через 1 час 13 минут
Написал новый код:
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
 
class Player
{
private:
    int hp;
public:
    Player()
    {
        hp = 50;
        cout << "Player Have " << hp << " HP\n";
    }~Player() {}
    void setHP(int damage, int armor)
    {
        int newHP = -damage + armor;
        hp += newHP;
        if (hp < 0) hp = 0;
    }
    void getHP()
    {
        cout << "Players HP is " << hp << " now :o" << endl;
    }
};
int main()
{
    Player me;
    int ZombieAttack = 10;
    int armor = 5;
    cout << "You have been attacked by Zombie\n";
    cout << "You take " << ZombieAttack << " damage\n";
    me.setHP(ZombieAttack, armor);
    me.getHP();
    system("pause");
    return 0;
}
Чем отличается вот эти два метода объявления?

Assembler
1
2
private:
int hp=50;
от
C++
1
2
3
Player(){
hp=50;
}~Player(){}
Что лучше использовать?
0
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
21.02.2017, 00:05
Лучший ответ Сообщение было отмечено Abomination_25 как решение

Решение

0. Такие довольно конкретные вопросы по языку стоит задавать в разделе C++.

1. Есть такое понятие в ООП, как инвариант. Инвариант - это некоторая "аксиома", которая должна выполняться для объекта класса в любой момент времени (если инвариант не выполняется, то это значит, что в программе произошла ошибка и данные некорректны). Инварианты того или иного класса будут свои для каждой конкретной программы - это вопрос бизнес-логики программы. Примеры инвариантов: "строка имени персоны должна быть непустой", "сумма характеристик сила-ловкость-выносливость персонажа должна быть не меньше 10", "вершины треугольника не должны лежать на одной прямой", "название города может быть одним из вариантов - Нью Москва или Старые Васюки". Существует множество других примеров инвариантов, в т.ч. более сложных и вообще с трудом выражаемых в виде фразы на русском языке.

У некоторых классов в программе есть такие инварианты, у некоторых их нет. Первые - это типичные классы из ООП, которым присуща т.н. инкапсуляция. Вторые - это просто способ сгруппировать данные (например, класс анкеты, содержащей три текстовых поля для ответа на три вопроса в свободной форме; причем можно отвечать как угодно, а можно вообще не отвечать - здесь нет инвариантов).

Так вот, классы без инвариантов могут спокойно предоставить public доступ ко всем своим данным - для них не существует некорректного набора значения полей.

Классы же с инвариантами должны защищать эти самые инварианты - поля, для которых есть эти инварианты заносятся в private секцию. Код, который находится вне класса, либо вовсе не знает о наличии этих переменных (и не может с ними работать), либо ему предоставляются public-функции, которые он может вызывать. И вот уже эти функции работают с приватными переменными таким образом, чтобы инварианты соблюдались.

Например, при создании персонажа вы распределяете характеристики и вызываете функции изменения характеристики:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Hero::increaseStrength()
{
 if (statSum == MAX_STAT_SUM)
  return;
 if (strenth == MAX_STRENGTH)
  return;
 ++strength;
 ++statSum;
}
 
void Hero::decreaseStrength()
{
 if (strength == 0)
  return;
 --strength;
 --statSum;
}
 
bool Hero::readyToStart() const
{
 return statSum == MAX_STAT_SUM;
}
Нельзя неограниченно менять значения характеристик - таковы наши инварианты. И функции построены таким образом, что при работе через них вы не нарушите инварианты. Обратите также внимание, что сами эти функции полагаются на следующие инварианты: "вначале все характеристики имеют нулевые значения" (это обеспечивается в конструкторе), "значения характеристик не меняются в других функциях" (программист должен написать класс так, чтобы это было верно). Если эти два инварианта не будут работать, то вместо проверок на равенство мы вынуждены были бы писать >= и <=.

Что касается геттеров и сеттеров, не работающих с такими инвариантами, то часто вам нужно дать возможность внешнему коду читать значение переменной класса - для этого вы предоставляете геттер к переменной. При этом возможности устанавливать ее значения снаружи класса может либо не быть вовсе - вы не пишете сеттер; либо они ограничены только использованием функций, обеспечивающих не просто установку значения, но и соблюдение инвариантов.

А вот если у нас есть приватная переменная и тривиальные геттер и сеттер, которые просто задают и возвращают значение переменной без всякой доп. работы, то это значит, что с точки зрения ООП здесь допущена ошибка. Такая пара дает возможность внешнему коду произвольно менять значение переменной, никак не отличающуюся от помещения переменной в public-секцию, зато гордо называет себя "инкапсуляцией" (врет и не краснеет!)
(Нужно, впрочем, отметить, что для создания такой пары тривиальных геттера и сеттера могут быть специальные причины - например для реализации property - но это относится не к ООП, и вам пока не стоит об этом думать)

2. Вроде про это тоже ответил.

3. Конструктор и деструктор - это специальные функции, которые вызываются при создании и уничтожении объектов класса. Создать объект можно двумя способами - на стеке (просто объявив переменную в теле функции) и динамически (с помощью оператора new). Объект, созданный на стеке, уничтожается в тот момент, когда программа вышла из того блока из фигурных скобок, где была объявлена переменная. Объект, созданный с помощью new, уничтожается только когда его удаляют с помощью delete.

В момент создания объекта вызывается его конструктор, который задает все стартовые значения переменных, при необходимости выделяет память, открывает сокеты и производит разную другую инициализацию. В момент уничтожения объекта вызывается деструктор, который должен освободить память и другие ресурсы, которые были захвачены за время жизни объекта (в конструкторе или позже) - иначе программа будет работать неправильно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void f(bool merlinNeeded)
{
Hero hero{"Arthur"}; // Здесь объект создан статически; вызывается конструктор
if (merlinNeeded)
 {
 Hero anotherHero("Merlin"); // Вновь создан статически
 } // достигли конца блока - Мерлин покидает нас, вызывается деструктор
} // Достигли конца блока - теперь и Артур уходит, вызывается деструктор
 
void g(bool wrongHero)
{
Sword* mySword = new Sword("BUR"); // Создаем объект динамически; вызван конструктор
if (wrongHero)
 delete mySword; // Удаляем через delete - объект уничтожается, вызывается деструктор
else
 {
 mySword -> killEnemy();
 delete mySword; // Вновь удаляем - объект уничтожается, деструктор вызывается уже прямо здесь
 allHailTheKing();
 }
}
Обычно, если в классе у вас нет объектов, владеющих памятью через указатели, или другими системными ресурсами, которые нужно как-то явно освобождать, то деструктор вам не нужен (вы не будете его писать, но неявно будет создан деструктор с пустым телом).
Это, конечно, далеко не все, что можно сказать про конструкторы и деструкторы.

Добавлено через 8 минут
Вот объявление (и одновременно реализация) конструктора:
C++
1
2
3
4
Player()
{
hp = 50;
}
Вот объявление и реализация (пустого) деструктора:
C++
1
2
3
~Player()
{
}
Чем отличается вот эти два метода объявления?
Второй вариант равнозначен следующему (если переменная не должна инициализироваться значением из аргументов конструктора):
C++
1
2
3
Player(): hp(50)
{
}
который является более правильным (прочитайте про списки инициализации).
1
 Аватар для Abomination_25
4 / 4 / 0
Регистрация: 13.12.2016
Сообщений: 246
21.02.2017, 00:23  [ТС]
Спасибо за быстрый и полный ответ) Правда еще не совсем разбираюсь в такие моментах как Hero::increaseStrength() - про эти "::" не знаю еще. А еще про статический способ создания объектов почитаю.
И не очень понял код ваш, можете рассказать,что имелось в виду?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Hero::increaseStrength()
{
 if (statSum == MAX_STAT_SUM) // если переменная statSum равна MAX_STAT_SUM, то выходим из первого if? Не понимаю порядок реализации просто :( И statSum++ Разе не после первого if Должен быть?
  return;
 if (strenth == MAX_STRENGTH)
  return;
 ++strength;
 ++statSum;
}
 
void Hero::decreaseStrength()
{
 if (strength == 0)
  return;
 --strength;
 --statSum;
}
 
bool Hero::readyToStart() const
{
 return statSum == MAX_STAT_SUM;
}
и по поводу public и private - я должен сделать так, чтобы никто не смогу менять private с помощью сеттера? или я не так понял? Я понимаю, что к private не должно быть доступа, даже через сеттер, но для чего тогда нужен сеттер? Я запутался чего-то)
0
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
21.02.2017, 23:08
Hero::increaseStrength() {/* ... */} - это реализация функции-члена класса Hero вне тела этого класса. Объявление класса вместе со всей его начинкой (списком переменных и функций) обычно сидит в заголовочном файле (*.h), а реализация функций-членов - в файле исходного кода (*.cpp). Про работу в нескольких файлах почитаете в соответствующей главе Страуструпа.

Что касается первого if - то если условие выполняется, то выходим из функции. Опять же, прочитаете про это в главе про функции.

Сначала вам нужно более-менее освоиться с базовыми вещами вроде if, циклов, функций и переменных. Слишком сильно в это не стоит погружаться - а то привыкнете писать только в процедурном стиле (как в Си), а потом придется переучиваться на ООП. Но нужно с листа читать чужой код, написанный такими средствами (не слишком замороченный, а обычный). После этого можно изучать классы, ООП и сопутствующие вещи.
0
7 / 7 / 9
Регистрация: 20.11.2016
Сообщений: 120
03.03.2017, 00:33
Даёшь С++ мозговым Штурмом!

Abomination_25, Лафоре - это Отличная книга. В ней много вопросов и упражнений. Автор никогда не забегает вперёд, и не бежит впереди поезда. Все ответы - и решения к упражнениям присутствуют. Двигаться в изучении С++ нужно последовательно. ВЫПОЛНИТЕ ВСЕ УПРАЖНЕНИЯ.

Второй пункт - это Стандартная библиотека С++. С ней нужно знакомиться отдельно, как минимум - прочесть книгу.
Нельзя забывать про QT

В том что касается сферы игр -
Можно начинать программировать на Action Script3, и "переезжать" на более актуальный HTML5/
лучшая книга по теме - это Колин Мук.

Запомните 3 Золотых правила обучения программированию:
"1. Набирать в день не меньше 100 страниц кода"
"2. Лучше набирать 250 страниц"
"3. 1000 страниц в день"
0
 Аватар для Гром
212 / 131 / 28
Регистрация: 20.03.2009
Сообщений: 1,123
Записей в блоге: 16
03.03.2017, 19:17
Цитата Сообщение от art-evgeniy Посмотреть сообщение
Лафоре - это Отличная книга
Возможно (не читал, поэтому не могу сказать), но, судя по двухминутному гуглингу, более нового издания, чем четвертое от 2004 года, у него нет. А если так, то эта книга почти наверняка уже безнадежно устарела. Учить C++ начиная с первого стандарта (98/03) сейчас просто нецелесообразно, т.к. после новых (мажорного 11-го, минорного 14-го и грядущего непонятно какого 17-го) язык очень сильно преобразился. Поэтому последовательность "сначала выучить 98/03, потом - нововведения 11/14" - примерно то же самое, что сначала изучить, как имитировать циклы с помощью goto во всех подробностях, потом открыть для себя классический for, а потом - и range based for. Это займет больше времени, чем понадобится комитету по стандартизации для выпуска C++ 17 и 2a; кроме того, есть реальный шанс привыкнуть, например, лепить указатели, new и delete где только можно, в т.ч. и в тех местах, где можно обойтись ссылками, умными указателями и стандартными контейнерами.

Цитата Сообщение от art-evgeniy Посмотреть сообщение
Второй пункт - это Стандартная библиотека С++.
Я бы не стал выделять стандартную библиотеку в отдельный пункт. Она - часть стандарта (т.е. языка), и ее нужно изучать одновременно с ядром языка.

Цитата Сообщение от art-evgeniy Посмотреть сообщение
Запомните 3 Золотых правила обучения программированию:
Для того, чтобы научиться слепой печати, можно перепечатывать любые тексты на соответствующем языке (лучше художественную литературу). А вот программировать это не поможет вообще никак, только помешает, т.к. не оставит времени для изучения и написания своего кода (а перепечатывать чужой - не поможет вообще никак). Ну да об этом вам в отдельной теме уже сказали.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
04.03.2017, 07:13
Цитата Сообщение от Гром Посмотреть сообщение
Для того, чтобы научиться слепой печати
По поводу слепой печати десятью пальцами, я научился по курсу: http://ergosolo.ru/
0
7 / 7 / 9
Регистрация: 20.11.2016
Сообщений: 120
04.03.2017, 14:19
Тоже проходил курс эргосоло!
Сколько у вас ушло времени освоения метода слепой печати полностью?

- у меня это заняло три недели. Через три недели - владел методикой на стандартной скорости.

Слепой метод - помогает, например, Изучению Иностранных Языков. Слова и построение предложений - становятся частью механического набора.
Помимо иностранных языков - есть также ТРАНСЛИТ.


Помешает ли слепой метод в освоении программирования? РЕЧЬ ИМЕННО О СВОЁМ КОДЕ.
На сайте спидкодер - можете потренироваться в наборе Кода. http://www.speedcoder.net/

Опеределённо и точно могу сказать ОДНО: Многим это поможет
Разные типы мышления.
Соображать легко и быстро так же важно - как и глубоко и усидчиво размышлять
0
04.03.2017, 18:37

Не по теме:

Цитата Сообщение от art-evgeniy Посмотреть сообщение
Сколько у вас ушло времени освоения метода слепой печати полностью?
Там написано, что можно за неделю, но я занимался урывками, забрасывал и несколько раз начинал с начала. Может месяц, чтобы медленно печатать всеми всеми пальцами. А скорость потом нарабатывается. Но я хочу ещё проходить, чтобы скорость повысить. Сейчас я так себе медленно печатаю. Может 150 знаков в минуту.

Цитата Сообщение от art-evgeniy Посмотреть сообщение
Помешает ли слепой метод в освоении программирования? РЕЧЬ ИМЕННО О СВОЁМ КОДЕ.
Конечно, помогает везде, где нужно набирать текст, в том числе тексты программ.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2017, 18:37

Направьте в русло
Добрый вечер. Упрощу задачу до примитива: 1 сервис, много клиентов. ПО клиентов должно быть мультиплатформенным. Сервис буду...

Направте в нужное русло
Здравствуйте, подскажите в какую сторону двигаться, какие функции мне понадобятся, по какому принципу вообще строить программу Тема...

Направте в нужное русло...
Люди добрые! Прошу Вашего внимания и помощи(подсказки). Имеется сайт, оптимизирован под Google. Хотелось бы услышать Ваше мнение, а...

В нужное русло направить. Двойной интеграл
Здравствуйте. Помогите пожалуйста дорешить двойной интеграл: \int \int y^2cos(\frac{xy}{2})dxdy ограниченный кривыми y=x/2 и...

Перестал работать монитор ноутбука)Направьте новичка)
Взял ноутбук на ремонт модель samsung np-355v5x-901v ru.материнка qmle4 la-8863p.процессор amd a6-4400m series.видео AMD Mobility Radeon...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru