Здравствуйте дорогие товарищи!
Поделюсь с вами, пмаешь, очередными успехами на ниве программирования. Если это можно назвать успехами.
читать дальше
Когда я начал писать, то знал, что некоторые функции требуют инфу в классах CRect и CPoint. И создал соотвецтвующие массивы. Но на этом - всё. Инициализировал я их поэлементно, в результате чего получилось дофига строк когда и прога стала выглядеть угрожающе. Примерно так:
m_ScrCoord[0][0].x=INITX;
m_ScrCoord[0][0].y=INITY;
m_ScrCoord[0][1].x=(long)(INITX+CELLSIZE*k);
m_ScrCoord[0][1].y=INITY+CELLSIZE;
m_FlatCoord[12][0].top=INITY2;
m_FlatCoord[12][0].left=INITX2;
m_FlatCoord[12][0].bottom=INITY2+FLATSIZE*2;
m_FlatCoord[12][0].right=INITX2+FLATSIZE*12;
m_FlatCoord[i][0].top-=FLATSIZE*2;
m_FlatCoord[i][0].left-=FLATSIZE*6;
m_FlatCoord[i][0].bottom-=FLATSIZE*2;
m_FlatCoord[i][0].right-=FLATSIZE*6;
И так много раз. При этом я плевался, матерился и думал, что же это за ООП такое, что писать так неудобно. Потом почитал специальную литературку. Оказывается, в этих классах есть специальные функции, которые, скажем так, сильно упрощают чтение кода. Насчёт ускоряют не знаю, но как бы там ни было, они всё равно есть - прикомпилируются к коду. Поэтому стоит их использовать. После оптимизации тот же кусок кода выглядит так:
m_ScrCoord[0][0]=CPoint( INITX, INITY);
m_ScrCoord[0][1]=CPoint( (long)(INITX+CELLSIZE*k), INITY+CELLSIZE );
m_FlatCoord[12][0]=CRect( INITX2, INITY2, INITX2+FLATSIZE*12, INITY2+FLATSIZE*2 );
m_FlatCoord[ i ][0].OffsetRect( -FLATSIZE*6, -FLATSIZE*2 );
Щитаю, эта прарыф!
Ещё при отладке там надо нажимать клавишу F11. Сначала она у меня работала, потом хуяк, чо-то случилось - перестала. Пришлось использовать экранные кнопки (с панели инструментов). А это офигенно неудобно - пока мышью прицелишься, пока нажмёшь. Ещё перестали работать F9, F10. Я поискал в тырнете - нет ничо похожего. Ну, думаю - клавиатура накрывается. Сегодня даже нашёл в сети тест клавиатуры. Запустил - ни одна F не работает. Оказалось, у меня в конце F-ряда есть клавиша F-lock. Видимо, я её по ошибке нажал и всё вырубилось. Вот же ж нахуевертили хз чего, нормальному человеку не разобраться. Нажал, теперь опять работает, ура товарищи! Слава мне!
Ещё сегодня впервые в жизни перегрузил оператор присваивания! Звучит круто, но на самом деле херня, конечно. Вот есть у вас структура данных некоего класса: два числа и строка. Надо вам её скопировать в такую же.
Традиционный способ:
структ1.число1=структ2.число1; структ1.число2=структ2.число2; структ1.строка=структ2.строка;
Но эт всё долго и теряется весь смысл упаковки в структуры. В С++ можно такую херню делать - переопределяешь оператор присваивания для класса. В нём пишешь, чего присваивать - то есть: структ1.число1=структ2.число1; структ1.число2=структ2.число2; структ1.строка=структ2.строка;
А в тексте программы пишешь просто структ1=структ2; Компилятор когда это встречает, делает то, что было описано выше, но тебе об этом теперь знать необязательно.
Ещё проблема обнаружилась - клинит её, падлу, периодически. Бывает, нажимаешь "build", он пишет "Linking..." и тишина, на Ctrl+C не реагирует, приходится снимать задачу и среду перезапускать. Иногда на компиляции тоже клинит. Нечасто, один раз из десяти, но потихоньку заёбывает.
А что же программа? - спросит догадливый четатель. Добавился ли к ней какой-то функционал за это время?
Увы, вынужден разочаровать. Ничего не добавилось. С другой стороны, ничего и не убавилось Кубик можно крутить и сбрасывать в начальное состояние. Но в самом ближайшем будущем мы чо-нибудь к нему прикрутим.
Программа Кубика Рубика
Здравствуйте дорогие товарищи!
Поделюсь с вами, пмаешь, очередными успехами на ниве программирования. Если это можно назвать успехами.
читать дальше
А что же программа? - спросит догадливый четатель. Добавился ли к ней какой-то функционал за это время?
Увы, вынужден разочаровать. Ничего не добавилось. С другой стороны, ничего и не убавилось Кубик можно крутить и сбрасывать в начальное состояние. Но в самом ближайшем будущем мы чо-нибудь к нему прикрутим.
Поделюсь с вами, пмаешь, очередными успехами на ниве программирования. Если это можно назвать успехами.
читать дальше
А что же программа? - спросит догадливый четатель. Добавился ли к ней какой-то функционал за это время?
Увы, вынужден разочаровать. Ничего не добавилось. С другой стороны, ничего и не убавилось Кубик можно крутить и сбрасывать в начальное состояние. Но в самом ближайшем будущем мы чо-нибудь к нему прикрутим.