Пятница, 26 Апреля 2024, 15:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 30
  • 1
  • 2
  • 3
  • 29
  • 30
  • »
Форум игроделов » Записи участника » froex [595]
Результаты поиска
froexДата: Пятница, 20 Марта 2015, 23:54 | Сообщение # 1 | Тема: Классы и объекты
Руководитель Froexilize team
Сейчас нет на сайте
Цитата alkemist ()
extern ( анахронизм из C ??? )

Это далеко не анахроизм из Си. Человек спросил решение его задачи, я предложил один из вариантов. Также мы все предложили варианты лучше. Что именно подойдёт как решение, автор топика сам выберет наилучший ему вариант.
Цитата alkemist ()
в каких ситуациях жизненно необходим и единственно возможен данный вариант? мне кажется, что количество таких задач стремится к нулю. так что лучше изначально продумать архитектуру классов и data flow в них.

Согласен, просто, опять же - предложил вариант решения для той постановки задачи, что просили (а там уже была неудачная архитектура).
Цитата alkemist ()
singleton применим в больших командах/проектах, когда ты хочешь быть абсолютно уверен, что студент Вася, не знающий архитектуры проекта, не создаст больше 1 экземпляра важной подсистемы.

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


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


Сообщение отредактировал froex - Пятница, 20 Марта 2015, 23:54
froexДата: Пятница, 20 Марта 2015, 09:56 | Сообщение # 2 | Тема: Набор энтузиастов в новую студию “Ruevit Stunning Games”!
Руководитель Froexilize team
Сейчас нет на сайте
Aevien, по художественному отделу я не руководствуюсь - просто скинул скрин наработки одного из моделеров. Могу пока-что сказать, что разработка идёт. Апдейтер готов, лаунчер готов, сервер потихоньку пишем.

Добавлено (20 марта 2015, 09:56)
---------------------------------------------


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Пятница, 20 Марта 2015, 09:50 | Сообщение # 3 | Тема: Лут со сбора травы(Вопрос)
Руководитель Froexilize team
Сейчас нет на сайте
Эргалон, следуя логическим выводам, собирая траву, ты получаешь просто траву. Если знаешь, что это за трава, то ты собрал известную траву. Поэтому можно и разделить лут для простых смертных как сбор неизвестной травы, а лут для травников как целебная/ядовитая/иная трава. Такой метод является предпосылкой для торговых отношений, когда неизвестную траву хочется отнести травнику (другой игрок или NPC) и узнать, что именно это за трава.
Для каждой собранной травинки можно скрытно хранить информацию, какая трава получится при опознании травником. Тогда после опознания будет получено несколько разных видов трав. Другой вариант - сделать шанс, что опознается определённый вид травы. Допустим, шанс, что ты собрал целебную траву 70%, ядовитую - 30%.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Четверг, 19 Марта 2015, 22:46 | Сообщение # 4 | Тема: Классы и объекты
Руководитель Froexilize team
Сейчас нет на сайте
Цитата Nedname ()
Можно ли создать класс в одном файле, создать объект класса в другом, а использовать объект в третьем?

Да
Цитата Nedname ()
Если да, то как?

Переведу немного.
Создать класс в одном файле: описываешь класс в одном файле с помощью ключевого слова class.
Создать объект класса в другом: объявляешь переменную типа класса, который описал в предыдущем файле. При этом в текущем файле ты должен подключить предыдущий с директивой include либо описать класс вручную (возможно дублирование кода).
Использовать объект в третьем: для этого надо подключить файл с помощью директивы include, в котором объявлена переменная типа того класса.
Правильней, конечно, будет, как описал alkemist с объявлением объекта непосредственно в той области, где будет использоваться сам объект, а описание и реализацию методов класса отдельными файлами. Но... если необходим именно заданный вариант, то можно, опять же, воспользоваться принципами раздельной компиляции:
file1.cpp - содержит описание класса и его реализацию.
file2.cpp - содержит предопределение класса (заголовок). Желательно разделить file1.cpp с "созданием класса" на два файла - один содержит описание, другой - реализацию методов. По заданным условиям придётся обойтись без подключения файла
file3.cpp - т.к. объект создан в file2.cpp, то надо объявить его ещё раз, но со спецификатором extern, чтобы указать, что данный объект уже создан, но в другом месте. Компоновщику надо будет скормить все эти файлы, чтобы избежать ошибок.
Цитата shizofren ()
может не объект, а экземпляр?

Лол. Объект, по определению, и есть экземпляр. Если дословно: объект - это экземпляр класса.
Цитата alkemist ()
статические переменные - это плохо, не пользуй их

Лол.

Повторюсь, правильно сказал alkemist в посте #9 - используй правильное разделение описаний и объявлений. Если хочешь использовать объект, объявленный в другом файле, который потенциально будет скомпилирован в иной объектный файл, то тебе придётся объявить этот объект ещё раз, но со спецификатором extern. Такие случаи допустимы при использовании глобальных переменных, но желательно избегать этого и объявлять все переменные непосредственно в местах использования.


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


Сообщение отредактировал froex - Четверг, 19 Марта 2015, 22:47
froexДата: Суббота, 14 Марта 2015, 07:15 | Сообщение # 5 | Тема: Вывод ссылки в "a href" средствами JS
Руководитель Froexilize team
Сейчас нет на сайте
Присвой управляемым элементам уникальность путём добавления уникального имени или идентификатора. После этого ищи элемент по имени или идентификатору семейством функций getElementBy[вставить_нужное]. Для полученных объектов можно исправлять поля .src, .innerHTML, .href и т.п. (в зависимости от полученного объекта).
Код
<html>
<head>
</head>
<body>
<script type="text/javascript">
function chgImg(image_name) {
        if(document.images) {
            document.getElementById("big_image").src = image_name;
        }
}
</script>
<img id="big_image" src="image1.png">
<br/>
<a href="javascript:chgImg('image1.png')">1</a>
<a href="javascript:chgImg('image2.png')">2</a>
<a href="javascript:chgImg('image3.png')">3</a>
</body>

Поиграйся также с .innerHTML и .href полями.
Например, для ссылки:
document.getElementById("link_id").href = "/image_link.php";


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


Сообщение отредактировал froex - Суббота, 14 Марта 2015, 07:20
froexДата: Пятница, 13 Марта 2015, 21:26 | Сообщение # 6 | Тема: Набор энтузиастов в новую студию “Ruevit Stunning Games”!
Руководитель Froexilize team
Сейчас нет на сайте
Скрин выше - одна из игровых моделей.

Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Пятница, 13 Марта 2015, 19:23 | Сообщение # 7 | Тема: Набор энтузиастов в новую студию “Ruevit Stunning Games”!
Руководитель Froexilize team
Сейчас нет на сайте
Просто оставлю это тут:


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Четверг, 27 Ноября 2014, 13:16 | Сообщение # 8 | Тема: Промокоды и скидки на Игры, Софт и пр. товары
Руководитель Froexilize team
Сейчас нет на сайте
Промо-код для скидки 5% на услуги хостинга Yutex

При любом заказе скажите этот промо код и получите скидку 5% на любую услугу.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Четверг, 27 Ноября 2014, 12:51 | Сообщение # 9 | Тема: Ввод элементов через пробел
Руководитель Froexilize team
Сейчас нет на сайте
Цитата Ramilyanamana ()
ReadLine()

Как видно из названия, это функция чтения строки. Чтение будет выполнено до символа переноса строки (Enter). Замени на Read()


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


Сообщение отредактировал froex - Четверг, 27 Ноября 2014, 12:51
froexДата: Четверг, 27 Ноября 2014, 12:02 | Сообщение # 10 | Тема: Ввод элементов через пробел
Руководитель Froexilize team
Сейчас нет на сайте
Ввод строк с консоли происходит до символа переноса строки (Enter), ввод значений простых типов происходит до пробельного символа (пробел, перенос строки), поэтому можно вводить значения в консоли через пробел и не писать дополнительный код при вводе.

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


Сообщение отредактировал froex - Четверг, 27 Ноября 2014, 12:03
froexДата: Среда, 26 Ноября 2014, 18:21 | Сообщение # 11 | Тема: Задачка по Borland'y.
Руководитель Froexilize team
Сейчас нет на сайте
Цитата LetsOffBrains ()
Мой вариант: *mas + index = z
А может так: *(mas + index) = z

Слева от знака равенства должно быть что-то, куда можно поместить значение. По-любому, какая-то зпеременная. В приведённом примере будет ошибка lvalue required, т.к. слева от знака равенства стоит значение, а не переменная.
Цитата Ramilyanamana ()
ввод данных выполняется с клавиатуры

При работе с указателями очень наглядно работает функция scanf(), которая позволяет ввести значение с клавиатуры и занести его по определённому адресу в памяти. Оператором взятия адреса можно взять адрес требуемой переменной, либо подставить сразу указатель, который этот адрес содержит.
Пример:
Код
int value; // обычная переменная, содержит значение
int *pValue; // переменная-указатель, содержит адрес
// ...
scanf("%d", &value); // ввод целого числа с клавиатуры. Помещаем по адресу переменной value
scanf("%d", pValue); // ввод целого числа с клавиатуры. Помещаем по адресу, хранимому в переменной pValue

Обратите внимание, что я между объявлением и заданием значения с клавиатуры пропустил некоторое место. Изначально указатель никуда не показывает. Мы его объявили, чтобы потом хранить в нём адрес области памяти, которую запросим у операционной системы.
Пример-сравнение: в отеле Вам выдают ключ от номера с биркой. На бирке написано число. Это число является адресом номера, который Вам выделен. Сама бирка (не число) является указателем. Опять же: указатель содержит адрес, как бирка содержит номер комнаты. Чтобы получить значение, надо проследовать по адресу.
Вывод на экран будет таким:
Код
printf("%d", value); // вывод значения переменной value в формате целого числа
printf("%d", *pValue); // вывод значения, которое хранится по адресу, а этот адрес находится в переменной pValue

Прибыв в отель в первый раз, нельзя взять свою бирку и последовать в номер, указанный на ней, ведь бирка может быть с другого отеля, а может быть пустой. Поэтому надо подойти с биркой к менеджеру и попросить номер, куда можно поселиться. Менеджер напишет номер на бирке. Это и есть процесс выдачи комнаты, процесс выделения памяти: у вас есть бирка (указатель), на которую надо нанести номер комнаты (присвоить адрес), которую выдал менеджер (выделила операционная система). Как вариант, вы можете уже для заказанной комнаты использовать свою бирку и написать на ней номер, когда подойдёте к двери (узнаете, что это тот номер, что надо).
Процесс взятия адреса переменной уже был показан выше с использованием оператора & (амперсенд). Допустимо писать так:
Код
int value = 5;
int *pValue = &value;

Процесс взятия значения по указанному адресу называется разыменованием указателя и обозначается символом * (звёздочка) перед именем переменной-указателем.
Код
printf("%d", *pValue);

Т.к. наша бирка до запроса номера комнаты может содержать неправильный номер комнаты (тот, что нам недоступен или не существует), то надо обращаться к менеджеру. При необходимости хранения какого-либо значения в памяти, надо запросить операционную систему выделить эту память. Операционная система старается выделить столько памяти, сколько мы попросим. Когда мы попросим память, операционная система скажет, где она её выделила.
Код
int *pValue;
// стиль C
pValue = (int *)malloc(sizeof(int)); // просим выделить память размером sizeof(int) и сообщаем, что получаемый адрес указывает на целое число
// стиль C++
pValue = new(int);

Когда мы решим, что нам больше не нужен номер отела, мы говорим об этом менеджеру, тогда он сможет выдавать его другим постояльцам. В нашем случае просто надо сообщить операционной системе, что область памяти нам не нужна.
Код
// стиль С
free(pValue);
// стиль C++
delete pValue;


Накалякал решение в стиле Си. Можно было короче, но тогда менее наглядно будет.

Результат выполнения:
Код
Enter array size: 10
Enter all 10 values: 3 -5 6 7 3 0 -1 0 -7 5            
Array before:
3 -5 6 7 3 0 -1 0 -7 5         
Array after:
3 -5 6 7 3 -7 -1 0 0 5         
2 elements between


Результат выполнения для других данных:
Код
Enter array size: 6
Enter all 6 values: -1 1 1 1 1 0
Array before:
-1 1 1 1 1 0     
Array after:
0 1 1 1 1 -1     
4 elements between




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


Сообщение отредактировал froex - Среда, 26 Ноября 2014, 18:49
froexДата: Пятница, 21 Ноября 2014, 19:51 | Сообщение # 12 | Тема: Вопрос-Ответ (C++)
Руководитель Froexilize team
Сейчас нет на сайте
Цитата Alkosha ()
Похоже, что такая функция есть в вижуал студии и борландовском билдере.
Я же использую кодблокс mingw gcc

Библиотеки и функционал языка, на сколько мне правильно мама объясняла, не зависят от среды разработки. Код, написанный в одной среде, можно скомпилировать и в другой.
Работа с wchar - часть возможностей стандартной библиотеки.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Четверг, 20 Ноября 2014, 22:05 | Сообщение # 13 | Тема: Вопрос-Ответ (C++)
Руководитель Froexilize team
Сейчас нет на сайте
Цитата Alkosha ()
Где переменная text - та самая const char*.

При работе с UTF8 желательно хранить строки как массивы wchar. Не могу по памяти сказать - найди функции для преобразования UTF8 в ANSI (wchar в char). Читаешь с файла UTF8 в wchar*, после чего используешь функцию, которая переведёт в char*, потом подаёшь в RenderText функцию.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Четверг, 20 Ноября 2014, 20:14 | Сообщение # 14 | Тема: Вопрос-Ответ (C++)
Руководитель Froexilize team
Сейчас нет на сайте
Цитата Alkosha ()
теперь какая-то фигня с кодировками.
Латиница правильно отображается, а кириллица - нет. Фонты TTF содержат в себе русскоязычный алфавит.
Пробовал файл сохранить в UTF8 и в ANSI - всё равно кракозябры, только в разной кодировке по-своему.
Файл редактирую через notepad++
Если выводить буквы непосредственно из программы [print1.display("Аллаху акбар")] , то с кодировкой проблем нет.

Отображается где? На какой платформе?
Если вывод в консоль, то можно использовать несколько вариантов:
Код
setlocale(LC_ALL,"Russian");

Есть костыльный вариант в случае использования dos-кодировки:
Код
system("chcp 1251");

Code page по умолчанию, если не ошибаюсь, 866, для возврата к ней, используется системный вызов "chcp 866".

При использовании UTF-8 возникает ещё затруднение, т.к. каждый символ кодируется двумя байтами - номером кодовой таблицы и кодом символа в этой таблице. Из-за использования двух байтов, надо хранить их не как char, а как wchar. Кстати, например, вывод тоже отличаеться будет: wcout вместо cout.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Среда, 19 Ноября 2014, 23:55 | Сообщение # 15 | Тема: Вопрос-Ответ (C++)
Руководитель Froexilize team
Сейчас нет на сайте
Alkosha,
строка представляет из себя массив символов, последний из которых должен оканчиваться символом конца строки, или нулевым символом.
Цитата Alkosha ()
print1.display(input[0][i]);

Полагаю, что input - массив строк. Хорошо. Тогда каждый элемент этого массива является массивом символов. По сути, input - это массив указателей типа char*. Поэтому можно передавать таким образом:
Код
print1.display(input[i])

где i - номер строки в массиве input (начиная с нуля), которую нужно передать.

В случае использования стандартных контейнеров типа std::string, взять указатель на строку можно, воспользовавшись методом c_str():
Код
std::string input[N];
//...
char *s = input[i].c_str();


Цитата Alkosha ()
Што за?

Цитата
E:\TURBO\platform3\main.cpp|974|error: invalid conversion from 'const char*' to 'char*' [-fpermissive]|

Не нравится ему, что константное значение.

метод c_str() возвращает константный указатель по причине закрытия возможности управлять содержимым контейнера вручную. Контейнер std::string считает длину хранимой строки и прочую другую информацию. Если будет доступ к хранимой строке по указателю с возможностью замены, то данные контейнера будут фальсифицироваться, что нарушит правильную его работу.

Могу предположить, что метод display() написан вручную, а по названию можно судить, что он не будет менять принимаемый параметр. Так не проще ли подставить квалификатор const в списке параметров?
Код
void display(const char* src);


Цитата Alkosha ()
Диалоги хранятся в файле.
Каждая реплика отделяется ключевым словом (допустим "next").
И при считывании из файла, нужно каждую реплику расфасовать по отдельным строковым массивам

Могу предложить не просто чтение по словам, а сразу же поиск ключевого слова функцией find. Нашлась позиция - можно точно определить количество необходимых символов для хранения реплики. Сохраняем, идём далее - до конца файла.


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


Сообщение отредактировал froex - Четверг, 20 Ноября 2014, 00:02
froexДата: Пятница, 14 Ноября 2014, 11:48 | Сообщение # 16 | Тема: Обучение программированию Си, С++
Руководитель Froexilize team
Сейчас нет на сайте
Цитата AleVerDes ()
Babuka, значит, froex смотрит тред, увидел эти рабочие ссылки и наконец-то решил залатать дыры в своей суперской системе TEAM ONLY.
Ссылки: #1, #2 и #3.





Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Вторник, 11 Ноября 2014, 11:44 | Сообщение # 17 | Тема: Обучение программированию Си, С++
Руководитель Froexilize team
Сейчас нет на сайте
Ещё актуально.

Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Понедельник, 10 Ноября 2014, 14:00 | Сообщение # 18 | Тема: Обучение программированию Си, С++
Руководитель Froexilize team
Сейчас нет на сайте
Цитата AlexRabbit ()
И где написанные Вами приложения можно посмотреть?

Цитата rrrfer ()
Ну а реально, я написал ТС, но учиться не стал


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
froexДата: Суббота, 08 Ноября 2014, 22:58 | Сообщение # 19 | Тема: Как правильно передать переменную(php + mysql + unity3d)
Руководитель Froexilize team
Сейчас нет на сайте
zisX, valueName заключи в другие кавычки (обратные, гравис) на клавише ~, ё, `

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


Сообщение отредактировал froex - Суббота, 08 Ноября 2014, 23:04
froexДата: Суббота, 08 Ноября 2014, 22:56 | Сообщение # 20 | Тема: Поле
Руководитель Froexilize team
Сейчас нет на сайте
zisX, valueName заключи в другие кавычки (обратные, гравис) на клавише ~, ё, `

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


Сообщение отредактировал froex - Суббота, 08 Ноября 2014, 23:04
Форум игроделов » Записи участника » froex [595]
  • Страница 1 из 30
  • 1
  • 2
  • 3
  • 29
  • 30
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг