[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: -(14 KB, 619x391)
14 No.4111750  

Привет, Ычан. У всех, кто начинал программировать на C++, был консольный период. Это когда твои программы очень простые и не требуют полноценного интерфейса. Генератор случайных чисел, разнообразные уравнения etc. А я ещё пытался сделать (и всё хорошо получалось) компьютерный роман, рогалик (дошел до этапа, когда можно свободно перемещать символ '@' с помощью клавиш, симулятор собеседника, квесты и ещё что-то с ASCII-рисунками. И всё это в консольке. Дальше консоли я, кстати, не дошел.
И знаешь, вчера у меня перед сном в голове загорелась лампочка, и я понял, как сделать порталы в моём околорогалике. Сейчас я качаю C++-компилятор, и на меня нахлынула та самая романтика бакования, творчества и безграничной свободы.

>> No.4111762  

>>4111750
Ичаю, дальше классов забаковал как-то

гуманитарий же

>> No.4111769  

>>4111750>>4111762
Я когда-то тоже хотел написать свой рогалик! Сначала на C++ с ncurses, потом, кажется, на сишке, потом опять на C++. Очень долго думал, как же сохранить состояние игры в файл, что-то придумал, не помню уже. Реализовал карту, «рейтрейсинг», даже врагов, которые могли перемещаться с отличной от игрока скоростью. И забил, лол.

>> No.4111776  

>>4111769
Вывод как сделал? Я повторами символами; кол-во повторов определяла переменная

>> No.4111785  

>>4111776
Через ncurses же, это такая библиотека для никсов. Под Windows планировалось пускать под cygwin, кажется, не помню.

>> No.4111790  

>>4111750
Как-то давным-давно писал Game of life на ассемблере, тоже с выводом в консольку. Хотелось сделать, чтобы в каждый следующий ход просто перерисовывался экранный вывод, но не знал да и никак не смог отыскать, как и через что же это реализовать. В итоге выдача результатов ходов потоком была "замаскирована" тщательно подобранным размером окна консоли. Наверное, хорошо, что я так и не стал программистом.

>> No.4111799  

>>4111790
Это по-сложнее всего, что я делал.

Никогда не хотел углубляться во все сложности программирования, а просто делал интересные вещи для себя

>> No.4111807  
Файл: -(35 KB, 640x480)
35

А кто-нибудь для Нотчевского 0х10с писал?

Я под него Game of Life со стильным стартовым меню в стиле ◀【режим】▶ для выбора между рандомом и несколькими захардкоженными полями со всякими крабами и глайдерами, а потом Нотч отменил игру и как-то пропал интерес.

>> No.4111810  

Собрались тут /dev/щики! Это тред для бак!

>> No.4111821  

>>4111807
Тоже самое в креативном режиме игры Hacked делал, только там уже не ассемблер, а что-то Си-подобное.

https://play.google.com/store/apps/details?id=com.hackedapp

>> No.4112246  

>>4111810
Тебя послушать, так и весь ычан для бак.

>> No.4112730  
> Дальше консоли я, кстати, не дошел.

Я тоже. Более того, я и до плюсов так и не дошёл, застрявши на Няшной, но при этом даже не пытаясь углубляться в её тонкости. Тоже когда-то в последних классах школы написал какой-то суперпростой текстовый рогалик в вакууме. Он у меня даже сохранился до сих пор.
Программистом я тоже так и не стал разочаровался в этом добре в универе, дропнул его на последнем курсе, прохиковал два года, а теперь жду ответа на кривоватое тестовое задание на должность вэб-макаки потому что больше-то ни на что и не способен.

>> No.4112789  
>имплаинг, что консоль - это что-то плохое и всем обязательно требуется гуй на каждый чих

А ещё есть программы вообще без интерфейса. Круто, да?

>> No.4112798  
> У всех, кто начинал программировать на C++, был консольный период.

У меня этот период и не заканчивался.

>> No.4112907  
Файл: -(194 KB, 600x750)
194

Ычую. TUI/CUI — лучшее вообще. Хотя есть конечно определенные задачи, где графический интерфейс или сильно помогает или без него не обойтись.

А сейчас вообще эра, когда данные засовывают в веб, обильно приправляя мигающей рекламой, тонной нереревантных стомегабайтных картинок, автоматизированный доступ затрудняют, а самый простой формат — текстовый, считается какой-то особой услугой, за которую можно драть деньги, "за доступ к каким-то там API". Отвратительно.

По теме же треда, вот вам змейка (код не мой):
https://my.mixtape.moe/txvhtw.tar.gz

>> No.4113188  

Я вот opengl мучаю чтобы свой крузис сделать. И если в гл понимание понемногу пришло и все оказалось не так путанно, как по началу казалось, то в плюсах все максимально СЛОЖНА.
Не понимаю как мне классы организовать и данные хранить.

>> No.4113192  

>>4111790
Я на шарпе дико угорел по консольном интерфейсу, сделал хорошо настраиваемая таблицу (отдельно добавляются столбцы, строчки, привязка данных гибкая) с селектором и скроллингом и реакцией на нажатие пробела и перерисовкой содержимого консоли на каждый ввод.
Потом понял, что я [х] вникуда и лучше было всю эту прорву времени на wpf спустить.

>> No.4113193  

>>4113188

> крузис
> СЛОЖНА

Отвратительно.

>> No.4113194  

>>4113188

>Не понимаю как мне классы организовать и данные хранить.

Так тут плюсы ни при чём. Просто подумай сколько и чего у тебя может быть на сцене. Это половина решения.

>> No.4113204  

>>4113194
Конкретная проблема заключается не в отдельных сущностях сцены, их внутренностях и иерархии, а в классах-контроллерах или менеджерах. Мне необходимо хранить ссылки на конкретные объекты, например, на активную камеру, чтобы получать от нее данные для шейдера. Ну и тут встает вопрос - где хранить эту ссылку? Я думал, что решу все некоторыми контролирующими классами, которые будут иметь ссылки друг на друга, но на деле вышло, что си++ не дает такой возможности потому что нельзя делать круговое включение заголовков.
Я надумал несколько решений:
1) К каждому менеджеру прикрутить свой интерфейс (костыльно, так как интерфейсы не для этого предназначены вообще)
2) Делать глобальные переменные (отдает полным пораженчеством)
3) Хранить в статических полях (идея уже лучше, но вдруг понадобится иметь нестатические экземпляры в дальнейшем)
4) Сделать как-то еще (а как - я не знаю, потому как тред то про консольные приложения, дальше которых я не двинулся и саморазвиваюсь по справкам в интернете)
Книгу про объектные паттерны я бегло просмотрел, но так и не выяснил из нее подсказок, которые я мог бы реализовать. Еще дело в том, что я узнаю о разных вещах по мере их поступления и заранее не могу толковую схему всего представить из-за недостатка знаний.
>>4113193
Можешь пойти глаза помыть.

>> No.4113234  
Файл: -(1214 KB, 1777x1887)
1214

>>4113204

>Ну и тут встает вопрос - где хранить эту ссылку?

В подсистеме, управляющей камерой и графикой.

>си++ не дает такой возможности потому что нельзя делать круговое включение заголовков.

http://stackoverflow.com/questions/396084/headers-including-each-other-in-c

>> No.4113266  

>>4113234
Не смотря на то, что я пишу "крузис", а не Crysis© мне хватило ума самому погуглить.
Так вот. Как мне поможет эта форвард декларация, если она не раскрывает содержимое класса, а только имя? Зачем мне имя если я не вижу поля.

>В подсистеме, управляющей камерой и графикой.

Ага, а подсистема это объект, а на него ссылку надо тоже где-то хранить чтобы к нему обращаться. Это не решение, это отсрочивание решения.

>> No.4113276  
Файл: -(99 KB, 800x900)
99

>>4111750

>У всех, кто начинал программировать на C++, был консольный период.

У меня не было. Взял учебник, там про формочки было, про обработку событий для их элементов, типа "Сюда кнопочку, потом сюда щёлкнуть и тут написать метод для обработки её нажатия.". Прочитал 10 страниц, проблевался и забросил идею изучать кодинг.

>> No.4113283  
Файл: -(292 KB, 850x1020)
292

>>4113266

>Как мне поможет эта форвард декларация, если она не раскрывает содержимое класса, а только имя?

Можно декларировать хоть весь класс, внезапно. И даже нужно, в хедерах-то. А детали прописываются уже в .cpp
И это тоже легко гуглится.

>Это не решение, это отсрочивание решения.

Просто у меня ощущение, что там у тебя каша из взаимозависимостей, и рефакторинг будет лучшим решением.

>> No.4113293  

>>4113283
В плюсах нельзя организовать взаимозависимость без костылей.
Смотри, я декларирую в заголовке класс А, а в другом заголовке класс Б.
В А я ссылаюсь на Б, а в Б ссылаюсь на А.
В итоге программа просто не скомпилируется, я тебе точно говорю, ведь я так делал, ожидая поведения как в шарпе, где такая ситуация была нормальная.

>> No.4113310  

>>4113293
Learn2Read.

>http://stackoverflow.com/questions/396084/headers-including-each-other-in-c
>> No.4113315  

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

>> No.4113333  
Файл: -(99 KB, 596x113)
99

>>4113310
>>4113234
Господи, да прочти же ты сам уже что постишь. Я эту статью и сам нагуглил сразу когда столкнулся.
Так можно объявить только имя класса.
Смотри на картинке что происходит, когда я собираю пример, который там выложен как решение.
Высокомерные умники, блин.

>> No.4113335  

>>4113333
Теперь я пишу class A; перед определением класса B и проект собирается.
НО ТОЛКУ ТО ОТ ЭТОГО, А?
Я не могу обратиться к ПОЛЯМ класса А через класс Б.

>> No.4113339  
Файл: -(186 KB, 936x450)
186

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

>> No.4113373  
Файл: -(32 KB, 411x930)
32

>>4113333>>4113335>>4113339

>Так можно объявить только имя класса.
>пример, который там выложен как решение.

Какой же ты Сырно. Так и скажи, что не вчитывался в ответ и не знаешь элементарных вещей.
По файлам сам раскидаешь, или мне и это надо объяснять?

>> No.4113389  

>>4113373
Давай ты мне из foo метод из bar вызовешь.
А то я так всю программу могу в мэйне написать.

>> No.4113396  

>>4113389
Вызов из Bar метода Foo тебя не устраивает?

>> No.4113574  

>>4113333
Ты не понимаешь ООП.
Бери-ка ты няша какие-нибудь python или lua. В плюсы тебе рановато.

>> No.4113621  

>>4113574

>ты не понимаешь программирование
>иди-ка ты в киоск работать, да пивка купи

Да, именно так люди и учатся.

>> No.4113654  

>>4113621
Нy да. Как бы вам не хотелось себя уверить, но не каждый может научиться программировать или рисовать на нормальном уровне.

>> No.4113776  

>>4113654
Враки, каждый может, только затрачиваемое время и используемые способы отличаются.

>> No.4113897  
Файл: -(540 KB, 800x1100)
540

>>4113776
Тут ещё дело в способностях. Я где-то уже говорил. У одного мышление ориентировано на объекты реального мира, у другого - на абстрактные сущности. И люди с разным мышлением совершенно по-разному воспринимают мир. Это не гуманитарий или математик, это в другой плоскости.
У одного хорошо получается разбираться в сложных математических выражениях (я говорю уже не про то, чему обычно учат, а про совсем уже нестандартные вещи, которыми занимаются чисто математики), разбираться в алгоритмах и конструкциях ООП. У другого - чинить технику, выполнять точную механическую работу, работать на станке. Проектировать различные машины, установки и прочее - туда же, кстати. Просто более высокий уровень.
С этим ничего не поделать, смирись. Это задавалось в намного более раннем возрасте и менять что-либо уже давно поздно. Так что иди на завод и подгоняй детали напильниками, собирай, точи, фрезеруй. Или, если можешь больше и получил инженерную вышку, разрабатывай технологии производства, проводи расчёты, оформляй документацию, унижай рабочих.
Не надо лезть в ту муть, в которую ты полез. Прекрати убеждать себя в том, что это интересно. Попробуй подумать рационально. Тебе же это не нравится. У тебя наверняка от этого плавятся мозги, клонит в сон от перегрузки, это доводит тебя до истерики. Тогда зачем тебе это? Получается, что ты занимаешься этим только потому, что считается, что "это круто". Не надо тратить впустую своё время. Найди себе другое занятие, если у тебя много свободного времени после работы.

>> No.4113909  

>>4113897
Мне это нравится настолько, что я забываю про еду, сон и туалет и коплю деньги на образование по профилю.
А то, что меня запутала плюсовая ограниченность и неочевидные проблемы в плане классов после шарпа, где проблем не было, не значит, что я не понимаю ООП, алгоритмы и абстракции.
А высокомерные истории с доброхотской ноткой про ограниченность мышления и завуалированные пудрой предложения идти чернорабочим оставь оставь д-чану с его визитным лицемерием.
Решение оказалось простым: включение полной декларации А после декларации Б и перед определением содержимого Б с форвард-декларацией А перед декларацией Б.
Конструкция запутанная, избыточная и не интуитивная, существующая исключительно из-за ограничений языка. Давайте всех, кто сходу не сделал ее запишем в ограниченные и предложим пускать слюни на питоне, а лучше вообще солнышко на листочке рисовать и дом с трубой, а потом на горшок и спать.
Ведь так доброжелатели обращаются к людям, не правда ли? Моментально ставя под сомнение способности по трем постам и предлагая сдаться. Главное все это делать елейным тоном тебе-же-лучше-ведь-я-все-знаю.

>> No.4113961  
Файл: -(100 KB, 1920x1080)
100

>>4113909
Ты просто обиделся.

>> No.4113965  

>>4113909
Это Ёмк)), он поехавший немного. Не обращай внимания.

>> No.4113982  

>>4113965
Зачем вы травите.

>> No.4114006  

>>4113982
Я не травлю, просто хочу, чтобы Ёму упырил мел.

>> No.4114008  
Файл: -(11 KB, 1001x571)
11

>>4111750

> нахлынула та самая романтика бакования, творчества и безграничной свободы

Знакомое чувство... Рекомендую погуглить WinAPI функции для работы с консольной. Например, изменение цвета символов, размера окна и, самое главное, расположения курсора. Вот тогда можно творить с удовольствием.
сам вот первый уровень из зельды создал, результатом остался доволен

>> No.4114152  

>>4113909
C# — язык совершенно другого уровня. Это язык с рантаймом, «батарейками» в комлпекте и многими синтаксическими вольностями. И то что ты, извини, не осилил банальные инклюды в CPP и игнорируешь предупреждения компилятора, говорит только о том, что ты плохо ориентирyешься в абстракциях ЯП, и как из этого складывается программа.
C++, как язык, чрезвычайно строг (потому как системного назначения) и подобного не прощает. Это тебе не JS или PHP, который и типы любовно, молчаливо сконвертирует друг в друга, и в любом месте позволит объявить что угодно, и всю работу с памятью скроет.

>>4114006
А он всё верно говорит.

>> No.4114258  

>>4114008
А где ссылка на гитхаб?

>> No.4114260  

>>4113909

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

Ты бы хоть написал(а), какую задачу ты решаешь, как это работает в шарпе и как не работает в сях. А то сначала говоришь о неочевидных проблемах без конкретики, а потом выдаёшь готовое решение за необходимость.

>> No.4114263  

>>4114260
GOTO >>4113204

>си++ не дает такой возможности потому что нельзя делать круговое включение заголовков.
>> No.4114265  

>>4114152

>А он всё верно говорит.

Полная хрень эта ваша "профориентация".

>> No.4114272  

>>4114263

> круговое включение заголовков.

Это очень тревожный признак в плане архитектуры, на самом деле. Если у тебя есть необходимость реализовать такой цикл, то с вероятностью 95% ты делаешь что-то совсем не то.

>> No.4114275  

>>4113909

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

Знал бы ты, какой кошмарный код я писал в не менее кошмарном окружении из-за legacy и прочих ограничений устаревшей платформы, которая используется на работе (и которая не меняется, потому что это очень дорого).

Впрочем, это не отменяет безблагодатности плюсов.

>> No.4114290  
Файл: -(48 KB, 640x480)
48

>>4111750

> консольный период
> очень простые и не требуют полноценного интерфейса

Вот и выросло поколение, не заставшее BGI.

>> No.4114307  

>>4114265
Профориентация - это когда ты определяешься, кем лучше тебе быть - программистом, тестировщиком, сисадмином, кем-то там ещё (извини, я в этом вашем IT не разбираюсь и разбираться не буду - не моё это, у меня другой профиль). Или если рассматривать другой тип мышления и подходящие ему профессии - инженером-технологом в машиностроении, в полимерном производстве, в химической промышленности, энергетиком, теплотехником, гидротехником, АСУшником, КИПовцем и т.д.. Вот внутри них - это профориентация, да.
То, что между двумя этими типами (а их два всего и разные области раскиданы по этим двум полюсам, я просто привёл пример типичных областей для этого - в первую включено не только IT) разница огромная - это факт. И принадлежность к какой-то из них частично врождённая, а частично формируется в детстве. В любом случае, тебе уже было сказано, что менять что-либо поздно.
Тебе не предлагают идти чернорабочим за 5К. Начнём с того, что практически все квалифицированные рабочие получают, как минимум, среднюю ЗП (ну, на младших разрядах - может быть, немного ниже - 20К - тебя же никто не возьмёт, только отучившегося, без опыта, сразу на 40К, но это, извини меня, нигде ты так не попадёшь - старайся, получай опыт, рекомендации). Это во-первых. Во-вторых, я не говорил, что тебе закрыт путь в инженерные специальности.
Так что думай ещё раз.

>> No.4114321  

>>4114290
А шо это такое

>> No.4114323  

>>4114307

> квалифицированные рабочие
> 40К

Мне одному грустно стало от этого? Напомню, что 40К это примерно $620. Средняя зарплата в Германии — $3430.

>> No.4114324  

>>4114321
Борландовская графическая библиотека для DOS с подключаемыми драйверами для CGA/EGA/VGA режимов. Позволяла делать консольные графические приложения на плюсах и паскале.

>> No.4114331  
Файл: -(59 KB, 640x360)
59

>>4114323
Ого. Выходит, я до падения рубля получал больше средней зарплаты по Германии?! И ведь всё равно же был бесконечно далёк от всяких возможностей типа покупки квартиры... Что-то с этим миром не так. По крайней мере с Германией.

>> No.4114358  
Файл: -(10 KB, 1001x571)
10

>>4114258
Нету.

>> No.4114429  

>>4114323
А что тебе, прости меня, не нравится?
По-моему, вполне неплохая зарплата. Да хоть инженером. Хоть с дипломом магистра. Или ты предлагаешь сразу после получения диплома устраиваться на 80К? Где тебя так возьмут, по-твоему?

>> No.4114575  
Файл: -(35 KB, 500x500)
35

>>4114429

> прости меня

Не прощу.

>> No.4116409  

>>4114575
Не шути так, а то будешь должен миллион йен!

>> No.4117182  

Сырны-программисты тут? Замечательно.
Хочу запрограммировать в Unity3d простую игрушку, в которой можно подбирать и бросать мячик.
Есть объект, который определяет зону досягаемости мячиков, и вот такой скрипт к нему:

public class findball : MonoBehaviour {

public Transform ballspawn;
void OnTriggerStay(Collider other) {
if (other.tag == "Balls") {
if (Input.GetMouseButtonDown (0)) {
other.transform.position = ballspawn.position;
other.attachedRigidbody.isKinematic = true;
}
}
}

}

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

>> No.4117588  

Может создать спец тред для программистов? Ведь у художников свой имеется, даже у жалких 3д-моделлеров свой есть.
Мод-тян, можно?

>> No.4117589  

>>4117588
GOTO /dev/
c: no




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]