HLFX.Ru Forum
Показать все 64 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Безумно сложный язык программирования (https://hlfx.ru/forum/showthread.php?threadid=2362)


Отправлено Дядя Миша 04-10-2010 в 09:59:

Talking Безумно сложный язык программирования

Так уж исторически сложилось (и мне не кажется, что это правильно), что С\С++ традиционно считаются самими сложными языками высокого уровня.
Этим меня помнится пугали еще хрен знает с какого года: мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.
Но я, как человек, непонаслышке знакомый с булевой алгеброй, и коротавший время в пятом классе за составлением таблиц истинности для очередного цифрового устройства на советских логических элементах, им не поверил. Потом мне конечно приходилось сталкиваться с другими языками и каждый раз они вызывали стойкое отторжение совершенно уродским синтаксисом. В том же делфи, меня к примеру бесит begin\end и :=. В каком-нибудь C# вообще нихрена непонятно что происходит - там конструкции совершенно немыслимые, такое ощущение, что половину кода дописывает компилятор. Но опять же - дело привычки, не спорю.
Вопрос в другом: почему С\С++ считаются самыми сложными языками для освоения? Из-за прямой работы с памятью? Или из-за отстутвия нормальных инструментов для работы со строками по умолчанию?
Те, кто осваивал язык - напишите, что вам давалось труднее всего.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 04-10-2010 в 11:00:

>> мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.

У меня это именно так и происходит.

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено PomanoB 04-10-2010 в 11:04:

Тоже думал пока учился в школе, что С++ очень сложный, но когда пошёл в универ и начали его изучать, вообще не понятно что там сложного, всё предельно логично)

Делфи тоже бесит, он наверное бесит всех кто не изучал его в школе

С# для меня казался непонятным, пока не начал его изучать, там действительно много таких вещей которые преобразует компилятор, но всё равно, достаточно похоже на С

Особо сложного в С++ вроде нет, но труднее всего виртуальные функции, мне кажется, но, опять же, это не так трудно разобраться с ними


Отправлено Дядя Миша 04-10-2010 в 12:24:

Цитата:
PomanoB писал:
С# для меня казался непонятным, пока не начал его изучать, там действительно много таких вещей которые преобразует компилятор, но всё равно, достаточно похоже на С

Это современная замена бейсику, микрософт его позиционерует именно так.
Цитата:
PomanoB писал:
Особо сложного в С++ вроде нет, но труднее всего виртуальные функции, мне кажется, но, опять же, это не так трудно разобраться с ними

Самое жуткое в С++ - создать указатель на функцию внутри класса и правильно к ней чего-то присвоить. Я до сих пор этого толком не умею кстати. Да и сам Страуструп не одобряет указатели на функции ЕМНИП, как раз и рекомендует юзать виртуальные функции, хотя они не перекрывают указатели на функции по возможностям.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 04-10-2010 в 14:57:

Что мне даётся труднее всего? А то, что препод. в универе несёт ахинею себе под нос, видимо считая, что всем всё понятно у всех до у до универа уже была какая-то база знаний. А при попытке одновременно втыкать какую-нибудь книгу, типа Язык программирования Си от Б. Кернингана и Д. Ритчи - получается когнитивный диссонанс и в итоге вообще ничего непонятно.

Фух, высказался.


Отправлено Дядя Миша 05-10-2010 в 09:43:

Цитата:
DEAD MAN писал:
препод. в универе несёт ахинею себе под нос

например?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 09:50:

С++ - очень простой язык для тех, кто его не знает, и очень сложный для тех, кто его знает. Звучит как парадокс? Вовсе нет. Просто многие видят в нем "Си с структурами, в которые можно пихать функции". Если же смотреть глубже, начать работать с шаблонными классами и функциями, реализовывать в нем различные паттерны, тщательно разобраться с STL и Boost (я уж не говорю о том, чтобы попробовать самому написать шаблоны, подобные бустовским!) - приходит понимание того, что язык очень сложен. Но тот, кто разобрался во всём этом - сможет писать эффективный и (внимание!) читабельный код, который в дальнейшем легко поддерживать другим людям.
В С# все эти же вещи реализуются зачастую скрыто от пользователя, поэтому нечитабельный код на нём написать несколько сложнее
Современная замена бейсику - это вовсе не С#, а VB.Net. Но я его смотреть так и не стал. С# пришлось изучать и даже сдавать по нему экзамен, впечатление осталось примерно такое "ну java как java..."
Обжект паскаль - очень мощный язык, содержащий в себе практически весь функционал Си и при этом намного читабельнее. Но увы, ООП-надстройки его сильно изуродовали, да и видно, что не только VCL для языка, но и местами язык под VCL подгоняли

Что в С++ было сложно для меня, когда я начал его изучать? Ну вот примерный список:
1) Что такое void и почему оно встречается в таких количествах?
2) Почему нельзя просто присваивать строки? Почему надо постоянно юзать strcpy? (до этого я работал в бейсике и делфи, ну вы понели)
3) Почему конструкция for выглядит так дико?
4) Почему у массивов нет функций LBound и UBound?
5) В чем разница между указателем на константу и константным указателем?
6) Зачем нужна эта сцаная стрелка у указателей? Почему нельзя обходиться той же самой точкой?

Ну может, что-то еще было. Всего не вспомнишь

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-10-2010 в 09:59:

Цитата:
XaeroX писал:
Почему нельзя просто присваивать строки? Почему надо постоянно юзать strcpy? (до этого я работал в бейсике и делфи, ну вы понели)

это по-моему для всех было больным местом. Ведь даже в примитивном куси строки можно присваивать.
Цитата:
XaeroX писал:
Почему конструкция for выглядит так дико?

а как надо?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Wealth 05-10-2010 в 11:39:

А может ктота посоветовать хорошый учебник ?


Отправлено Дядя Миша 05-10-2010 в 12:31:

Цитата:
Wealth писал:
А может ктота посоветовать хорошый учебник ?

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 13:37:

Цитата:
Дядя Миша писал:
а как надо?

Ну, как во всех остальных языках.

паскаль:
for i = 0 to 10 do
begin
...
end;

бейсик:
For i = 0 to 10
...
Next i

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-10-2010 в 15:28:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 15:37:

Дядя Миша вложенные вот так:

for i := 0 to 10 step 2 do begin
for j := 0 to 10 do begin
...
end;
end;

For i = 0 to 10 Step 2
For j = 0 to 10
...
Next j
Next i

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

__________________

xaerox on Vivino


Отправлено Government-Man 05-10-2010 в 16:10:

Тем кому C++ кажется слишком трудным для изучения - не надо пытаться сразу освоить весь язык. Пишите сначала простые программки с использованием самых простых возможностей. Когда начнете писать их уверенно - переходите к более сложному. Главное - практика. Лично я до сих пор иногда узнаю какие-нибудь новые для себя нюансы, хотя C++ начал изучать почти 5 лет назад...


Отправлено FiEctro 05-10-2010 в 16:49:

Government-Man
Можешь привести пример таких задачек? Я и сам простенькое писал, но написать что то сложнее, даже в голову не пришло.
Особенно интересуют матрицы, обратные матрицы, и т.п.


Отправлено Government-Man 05-10-2010 в 17:04:

Цитата:
FiEctro писал:
Можешь привести пример таких задачек?


Каких именно?


Отправлено Дядя Миша 05-10-2010 в 17:27:

Цитата:
FiEctro писал:
Я и сам простенькое писал, но написать что то сложнее, даже в голову не пришло.

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 05-10-2010 в 17:38:

Дядя Миша
Это уже ГЛ.
Government-Man
Для начинающих программистов . Тока не 'Hello world!", а что нить более полезное.


Отправлено Дядя Миша 05-10-2010 в 18:01:

Цитата:
FiEctro писал:
Это уже ГЛ.

есть еще DirectDraw в старом директе. Если игрушщка 2д юзать гл совсем необязательно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Government-Man 05-10-2010 в 18:27:

FiEctro дык пиши то что тебе самому интересно. Ну а если фантазии нет - то без фантазии программистом делать нечего...


Отправлено qpAHToMAS 05-10-2010 в 18:33:

Пиши 2D змейку, по идеи легче тетриса.


Отправлено Дядя Миша 05-10-2010 в 18:34:

Ну да, или хотя бы змейку.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PomanoB 05-10-2010 в 19:14:

Змейку и тетрис можно сделать даже консольными


Отправлено Дядя Миша 05-10-2010 в 19:42:

Цитата:
PomanoB писал:
Змейку и тетрис можно сделать даже консольными

змейка и тетрис были ажно на китайской игрушке, в которые они были прошиты намертво.
http://brickgame.ru/
Не знаю, может подобных игрушек уже и не делают, но в 1992 году я вместе с остальной школотой был в шоке )

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 05-10-2010 в 19:52:

PomanoB
Да, выведи ты в cmd, ASCII символы >(. А из обычных ололо получится. Хотя там можно что то с цветами манипулировать, но это уже HACK HACK HACK .


Отправлено XaeroX 05-10-2010 в 21:15:

Дядя Миша
Эх, а у меня тоже в детстве была такая

__________________

xaerox on Vivino


Отправлено Government-Man 05-10-2010 в 23:08:

XaeroX а у меня аж целых три!
Одно печалило - экран не светился и нельзя было играть ночью под одеялом в отсутствии дополнительных осветительных приборов...


Отправлено PomanoB 06-10-2010 в 04:49:

Да, у меня тоже таких много было))
До умопомрачения играл, думал будет какой-то бонус если наберу максимум очков, но нет((

FiEctro в ASCII таблице куча символов же, там есть как раз подходящий символ прямоугольника такого заполненного


Отправлено FiEctro 06-10-2010 в 06:22:

PomanoB
>> в ASCII таблице куча символов же

Теперь вопрос на миллион -> Как ты собрался его выводить в cmd?
Во первых большинство ASCII символов в студии заменяются знаком "?" в том числе и прямоугольник.
Во вторых те символы что всё же смогли напечататься в студии, в cmd выдает лишь их адрес.
Я гуглил на эту тематику ничего не нашел.


Отправлено adamix 06-10-2010 в 07:00:

Самым сложным были указатели и работа с памятью Но за несколько дней разобрался.


Отправлено kogemyaka 06-10-2010 в 07:43:

Диаграмма как бы намекает.


Отправлено Дядя Миша 06-10-2010 в 09:19:

Хех, ну правильно! Чистый Си - где-то в самом низу
Хотя кол-во лексем еще не показатель сложности языка.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено qpAHToMAS 07-10-2010 в 14:04:

А кто-нибудь может привести пример простого кода (или алгоритма, если достаточно) для того, что бы показать различия с использованием ООП и без?
Например, какая-нибудь работа с файлом, если можно.


Отправлено Дядя Миша 07-10-2010 в 14:44:

qpAHToMAS писать код с применением ООП можно и на чистом Си.
Это уже как голова работает.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PomanoB 07-10-2010 в 16:15:

FiEctro, вот так:

C++ Source Code:
1
#include <stdio.h>
2
 
3
int main()
4
{
5
  printf("%c %c %c\n", 178, 177, 219);
6
  return 0;
7
}




Мы в универе делали много таких программ с ASCII графикой, красивым оформелние


Отправлено FiEctro 07-10-2010 в 18:06:

PomanoB
Блин, спс, я то весь инет перерыл, не мог этого найти....


Отправлено Дядя Миша 07-10-2010 в 18:43:

FiEctro чего не мог найти? Под какими номерами прячутся символы псевдографики?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 07-10-2010 в 19:53:

Дядя Миша
Смешно. Как их выводить с помощью printf. Вроде даже у тебя спрашивал.


Отправлено Government-Man 08-10-2010 в 00:45:

FiEctro ну... можно так:

C++ Source Code:
char s[] = { 0xXX, 0xXX, 0xXX, ... NULL };
printf( "%s", s );


Отправлено qpAHToMAS 08-10-2010 в 01:13:

Ух, на сколько же мне непривычна такая работа со строками:

code:
printf("Value of some variable is: %i", integer); // Как-то так

Очень не привычно после работы в моем любимом PureBasic'е, где это делается так:
code:
Debug "Value of some variable is: " + Str(integer) + ". Add string variable now: " + string.s + "."


Дядя Миша, хм, т.е. это больше стиль программирования, нежели фишка ЯП?
FiEctro, за змейку все-таки взялся?


Отправлено PomanoB 08-10-2010 в 01:43:

qpAHToMAS можно воспользоваться ООП и написать:

C++ Source Code:
cout<<"Value of some variable is: "<<integer<<". Add string variable now: "<<s<<'.'<<endl;


Отправлено Government-Man 08-10-2010 в 03:43:

PomanoB в общем-то C++ так и принято. Не путайте C и C++.


Отправлено Дядя Миша 08-10-2010 в 08:13:

Цитата:
FiEctro писал:
Смешно. Как их выводить с помощью printf. Вроде даже у тебя спрашивал.

ты спрашивал про то как их раскрасить.
Цитата:
qpAHToMAS писал:
хм, т.е. это больше стиль программирования, нежели фишка ЯП?

ну поскольку большинство вообще плохо понимает, что такое ООП - вон в посту ниже вывод текста почему-то выдается за ООП.
Хотя это всё равно что сравнить ежа и фтуболку.
http://ru.wikipedia.org/wiki/Объект...рограммирование
Смысл объектно-ориентированного программирования в том, чтобы оперировать некими объектами. Это необязательно классы, в том же Си роль объектов выполняют структуры, а имена функций, относящихся к этой структуре начинаются с определенного префикса.
Нунапример кастомная файловая система: имеет некий универсальный объект file_t, который может быть объявлен только в самом файле описания файловой, а в остальных местах представлен необъявленной структурой, или проще говоря void*. Это типичный случай дата-хидинга.
Ну или создания приватных членов структуры на Си. Вы спросите, а можно ли в такой структуре объявить публичные переменные?
Да легко! Верхнюю часть переменных мы объявляем везде, а нижнюю, приватную прячем внутри собственно файла, описывающего методы работы с объектом. Наглядный пример: cvar_t в ксаше. В сдк в структуре cvar_t 5-6 переменных, а в движке их 12.
Теперь про методы: в С++ конечно с этим проще: там можно объявлять методы непосредственно внутри класса, получая к ним доступ автоматически и попутно решая проблему с пространством имен.
В Си это придется делать вручную. Так, например, возвращаясь к вышеупомянутому file_t - для него существует набор методов, начинающийся с префикса FS_.
Вообщем-то все кваки юзают ООП в той или иной мере.
Вот взять те же эдикты

Добавлено 08-10-2010 в 12:13:

Или тот самое место где лифы превращаются в ноды и наоборот

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 08-10-2010 в 09:36:

>> за змейку все-таки взялся?

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


Отправлено PomanoB 08-10-2010 в 14:31:

Government-Man в общем-то я показывал пример вывода символов в консоль, а не отличие С от С++


Отправлено Дядя Миша 08-10-2010 в 15:26:

Вообщем-то ни один из примеров вывода символов в консоль не имеет ничего общего с ООП.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 08-10-2010 в 18:40:

PomanoB
А не в курсе как использовать ANSI графику и его цвета? А так же цвета ASCII ( кроме system("COLOR A"); ).
В гугле нашел только для жабы.


Отправлено Дядя Миша 08-10-2010 в 19:08:

http://en.wikipedia.org/wiki/Code_page_437

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 08-10-2010 в 19:21:

Дядя Миша
Это всё конечно хорошо, но мну нужен пример реализации этого в си. А это я в гугле уже читал.


Отправлено Skaarj 08-10-2010 в 19:46:

Для меня всё сложно круче кубейсика.

Управление
Z - <-
C - ->
X - Юзать
Q - выход
[ и ] - должна меня задержку каждого цикла, но я уже хз почему не пашет.
10 лет прошло.

code:
start: SCREEN 13: CLS GOTO a p1: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 10 + y)-(13 + x, 10 + y) IF k = 0 THEN LINE (10 + x, 11 + y)-(10 + x, 12 + y) ELSE LINE (13 + x, 11 + y)-(13 + x, 12 + y) LINE (10 + x, 13 + y)-(13 + x, 17 + y), , BF LINE (10 + x, 19 + y)-(13 + x, 19 + y) LINE (10 + x, 22 + y)-(13 + x, 22 + y) RETURN p2: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 11 + y)-(13 + x, 11 + y) IF k = 0 THEN LINE (10 + x, 12 + y)-(10 + x, 13 + y) ELSE LINE (13 + x, 12 + y)-(13 + x, 13 + y) LINE (10 + x, 14 + y)-(13 + x, 18 + y), , BF LINE (11 + x, 20 + y)-(14 + x, 20 + y) LINE (9 + x, 22 + y)-(12 + x, 22 + y) RETURN p3: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 12 + y)-(13 + x, 12 + y) IF k = 0 THEN LINE (10 + x, 13 + y)-(10 + x, 14 + y) ELSE LINE (13 + x, 13 + y)-(13 + x, 14 + y) LINE (10 + x, 15 + y)-(13 + x, 19 + y), , BF LINE (12 + x, 21 + y)-(15 + x, 21 + y) LINE (8 + x, 22 + y)-(11 + x, 22 + y) RETURN p4: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 13 + y)-(13 + x, 13 + y) IF k = 0 THEN LINE (10 + x, 14 + y)-(10 + x, 15 + y) ELSE LINE (13 + x, 14 + y)-(13 + x, 15 + y) LINE (10 + x, 16 + y)-(13 + x, 20 + y), , BF LINE (13 + x, 22 + y)-(16 + x, 22 + y) LINE (7 + x, 22 + y)-(10 + x, 22 + y) RETURN p5: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 12 + y)-(13 + x, 12 + y) IF k = 0 THEN LINE (10 + x, 13 + y)-(10 + x, 14 + y) ELSE LINE (13 + x, 13 + y)-(13 + x, 14 + y) LINE (10 + x, 15 + y)-(13 + x, 19 + y), , BF LINE (8 + x, 21 + y)-(11 + x, 21 + y) LINE (12 + x, 22 + y)-(15 + x, 22 + y) RETURN p6: LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF LINE (10 + x, 11 + y)-(13 + x, 11 + y) IF k = 0 THEN LINE (10 + x, 12 + y)-(10 + x, 13 + y) ELSE LINE (13 + x, 12 + y)-(13 + x, 13 + y) LINE (10 + x, 14 + y)-(13 + x, 18 + y), , BF LINE (9 + x, 20 + y)-(12 + x, 20 + y) LINE (11 + x, 22 + y)-(14 + x, 22 + y) RETURN a: GOSUB la1 x = 100 u$ = "pl1" o = 1 y = 165: c = 0 amy = 90: amx = 90 freg = 250 DO k$ = INKEY$ IF POINT(x + 6, y + 23) = 0 AND POINT(x + 17, y + 23) = 0 THEN t = 1: y = y + 1 ELSE t = 0 IF t = 0 AND (PEEK(10333) = 75 OR k$ = "z") AND POINT(x + 5, y + 9) = 0 AND POINT(x + 5, y + 22) = 0 THEN t = 0: x = x - 1: k = 1: o = o + 1 IF t = 0 AND (PEEK(10333) = 77 OR k$ = "c") AND POINT(x + 18, y + 9) = 0 AND POINT(x + 18, y + 22) = 0 THEN t = 0: x = x + 1: k = 0: o = o + 1 IF a = 0 AND t = 0 AND (PEEK(10333) = 80 OR k$ = "x") AND POINT(x + 6, y + 23) = 4 AND POINT(x + 17, y + 23) = 4 THEN a = 1 IF a = 0 AND t = 0 AND (PEEK(10333) = 80 OR k$ = "x") AND POINT(x + 6, y + 23) = 14 AND POINT(x + 17, y + 23) = 14 THEN a1 = 1 IF PEEK(10333) = 1 OR k$ = "q" THEN END IF o = 7 THEN o = 1 IF o = 1 AND k = 0 THEN GOSUB p1 ELSE IF o = 1 AND k = 1 THEN GOSUB p6 IF o = 2 AND k = 0 THEN GOSUB p2 ELSE IF o = 2 AND k = 1 THEN GOSUB p5 IF o = 3 AND k = 0 THEN GOSUB p3 ELSE IF o = 3 AND k = 1 THEN GOSUB p4 IF o = 4 AND k = 0 THEN GOSUB p4 ELSE IF o = 4 AND k = 1 THEN GOSUB p3 IF o = 5 AND k = 0 THEN GOSUB p5 ELSE IF o = 5 AND k = 1 THEN GOSUB p2 IF o = 6 AND k = 0 THEN GOSUB p6 ELSE IF o = 6 AND k = 1 THEN GOSUB p1 IF l = 1 THEN GOSUB l1 IF l = 2 THEN GOSUB l2 IF freg > 1 AND (PEEK(10333) = 2 OR k$ = "[") THEN freg = freg - 10: LOCATE 1, 1: PRINT freg * 100; " " IF freg < 1000 AND (PEEK(10333) = 3 OR k$ = "]") THEN freg = freg + 10: LOCATE 1, 1: PRINT freg * 100; " " FOR n = 0 TO 100 * freg: NEXT IF fg1 = 0 THEN IF l = 1 THEN LINE (100, 100)-(gf + 75, 170), 0 LOOP la1: LINE (0, 190)-(320, 200), 2, BF LINE (30, 150)-(35, 189), 6, BF LINE (280, 150)-(285, 189), 6, BF CIRCLE (32, 150), 18, 2: PAINT (32, 145), 2 CIRCLE (282, 150), 18, 2: PAINT (282, 145), 2 LINE (199, 190)-(221, 200), 0, BF l = 1: py = 0 FOR qweer = 0 TO 100: PSET (RND * 320, RND * 120): NEXT CIRCLE (100, 50), 20, 7: PAINT (100, 50), 7 CIRCLE (135, 50), 40, 0: PAINT (120, 50), 0 CIRCLE (100, 90), 40, 1, , , .2: PAINT (100, 90), 1 df = 41 RETURN l1: IF fg1 = 1 THEN df = df - 1: IF INT(df) = 0 THEN fg1 = 2 IF fg1 = 1 THEN CIRCLE (100, 90), df, 0, , , .2 IF fg1 = 0 THEN fg = fg + 1: IF fg = 100 THEN fg1 = 1 IF fg1 = 0 THEN gf = gf + 5: IF INT(gf) > 50 THEN gf = 0 IF fg1 = 0 THEN LINE (100, 100)-(gf + 75, 170), RND * 15 IF a = 1 THEN py = py + .5: LINE (200, 189 + py)-(220, 189 + py), 0 LINE (200, 190 + py)-(220, 193 + py), 4, BF IF INT(py) = 10 THEN a = 0: l = 2: GOSUB la2 RETURN la2: CLS LINE (0, 0)-(320, 10), 3, BF LINE (199, 0)-(221, 10), 0, BF LINE (100, 40)-(320, 50), 3, BF LINE (199, 40)-(221, 43), 0, BF LINE (0, 10)-(10, 200), 3, BF LINE (310, 10)-(320, 150), 3, BF LINE (250, 40)-(270, 41), 14, BF LINE (115, 9)-(120, 41), 5, BF LINE (0, 190)-(320, 200), 3, BF LINE (0, 80)-(270, 120), 3, BF LINE (100, 80)-(250, 110), 0, BF LINE (100, 90)-(250, 110), 10, BF LINE (126, 80)-(149, 91), 6, BF LINE (151, 80)-(199, 91), 6, BF LINE (201, 80)-(249, 91), 6, BF LINE (260, 42)-(260, 45), 4 LINE (118, 45)-(260, 45), 4 LINE (118, 42)-(118, 45), 4 LINE (80, 140)-(310, 150), 3, BF qww = 1: py = -5 y = -20: re = 1 rew = 0 RETURN l2: IF qww = 1 THEN py = py + .5: LINE (200, 9 + py)-(220, 9 + py), 0 IF qww = 1 THEN LINE (200, 10 + py)-(220, 13 + py), 4, BF IF INT(py) = 30 THEN qww = 0 IF re1 = 1 THEN a1 = 0 IF a1 = 1 AND (re = 1 OR re = 2) AND re1 = 0 THEN re1 = 1: a1 = 0 IF re = 1 AND re1 = 1 THEN rew = rew + .5: LINE (115, 26 - rew)-(120, 26 - rew), 0: LINE (115, 25 + rew)-(120, 25 + rew), 0: IF INT(rew) = 15 THEN re1 = 0: re = 2: a1 = 0: RETURN IF re = 2 AND re1 = 1 THEN rew = rew - .5: LINE (115, 25 - rew)-(120, 25 - rew), 5: LINE (115, 26 + rew)-(120, 26 + rew), 5: IF INT(rew) = -1 THEN re1 = 0: re = 1: a1 = 0 IF pus = 5 THEN GOTO sl2 IF pus <> 2 AND POINT(71 + jx, 74 + jy) = 15 THEN jx = jx + 1: pus = 1 LINE (76 + jx, 68 + jy)-(99 + jx, 79 + jy), 6, BF: IF pus = 1 THEN LINE (75 + jx, 68 + ly)-(75 + jx, 79 + jy), 0 IF POINT(75 + jx, 80 + jy) <> 3 THEN jy = jy + 1: pus = 2 IF POINT(75 + jx, 77 + jy) = 10 THEN pus = 5 IF pus = 2 THEN LINE (76 + jx, 67 + jy)-(99 + jx, 67 + jy), 0, BF sl2: IF POINT(x + 10, y + 23) = 10 THEN CLS : LOCATE 12, 14: PRINT "GAME OVER": SLEEP: GOTO start RETURN


Отправлено XaeroX 08-10-2010 в 19:49:

Skaarj
Сам писал?

__________________

xaerox on Vivino


Отправлено Skaarj 08-10-2010 в 20:03:

Вспомнил, что почему-то PEEK перестаёт работать когда ЕХЕшку делаю, хотя если в самом КуБэйсике запускаю то всё ОК.

Добавлено 08-10-2010 в 22:50:

Сам. Щас в шоке от обилия непонятных переменных. %)

Добавлено 08-10-2010 в 22:58:

У меня все такие поделки сводились к "IF THEN ELSE" с огромной кипой переменных.

Добавлено 08-10-2010 в 23:03:

Хоть 10 лет прошло, всё ещё порнимаю где и что.
Первые блоки с p1 по p6 - отрисовка 6-ти кадров движения персонажа.
Затем блок с "физикой" игрока, опросом клавиш и проверкой "коллизии".
la1 и la2 - отрисовка 2-х уровней.
Последний блок я уже хз. Возможно динамические объекты на самих картах.


Отправлено Дядя Миша 08-10-2010 в 20:19:

Ой какая красотища! А мы еще в 8 классе на уроке информатики кубейсили потихонечку

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PomanoB 09-10-2010 в 04:23:

FiEctro функция SetConsoleTextAttribute в windows.h
Первый параметр - указатель на консоль - GetStdHandle(STD_OUTPUT_HANDLE);
Второй атрибуты текста


Отправлено kogemyaka 09-10-2010 в 14:58:

Всем, кто интересуется сравнением сложности языков можно прочитать первую часть и конец книги "Языки программирования и методы трансляции".

В ней сравниваются C++/C, ПЛ/2, Фортран, Паскаль, Модула, Java, C# и Оберон.


Отправлено Skaarj 12-06-2023 в 13:01:

Я тот мой код выше в этой теме попытался доработать, некоторые вещи не заработали как задумано, слишком всё накостыленно.
Перешёл на QB64Phoenix, там годные операторы, можно одной строчкой установить лимит в 30 фепесов и нажатие кнопок через _KEYDOWN вообще шикарно.
И экзешка даже под виндой запускается.
Управление стрелочками, взаимодействие - стрелочка вниз.

Должен был быть ивент "прилетело нло и высадило чувачка", но он неправильно работает, а если вырезать этот кусок кода то ломается всё.

Нашёл баг, одновременное нажатие влево+вправо приводит к залипанию персонажа.
Даже придумал костыль это обойти.

Добавлено 12-06-2023 в 14:57:

Перезалив.

Зато теперь другой баг, при нажатии влево+вправо в падении персонаж зависает в воздухе, но потом падает если отпустить. )

Добавлено 12-06-2023 в 15:01:

И это починил.


Отправлено ZGreen 12-06-2023 в 13:07:

Скарж -- программист. Сейчас, похоже, ХЛ3 анонсируют. Или Анрыл 3. Тектонические сдвиги :-D


Отправлено Дядя Миша 12-06-2023 в 16:54:

Прошло 13 лет. Теперь я автор собственного крестоподобного языка.
Офигеть.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 12-06-2023 в 17:29:

Дядя Миша
Так ещё Мастер требовал, чтобы мы на AngelScript переходили, потому что он более крестообразный. И вот ты наконец пошёл у него на поводу.

__________________

xaerox on Vivino


Отправлено (_-=ZhekA=-_) 12-06-2023 в 18:08:

Цитата:
ZGreen писал:
Или Анрыл 3

Анрил 5 уже давно вышел ) Возможно ты имел 6 ?!

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено XaeroX 12-06-2023 в 18:53:

Цитата:
(_-=ZhekA=-_) писал:
Анрил 5 уже давно вышел )

Не слышал, чтобы вышел даже Анрил 3, не говоря уже о 5-6.
Вот УТ3 - да, тот вышел. Но речь, как я понимаю, про сингл.

__________________

xaerox on Vivino


Отправлено Дядя Миша 12-06-2023 в 19:34:

Цитата:
XaeroX писал:
Мастер требовал, чтобы мы на AngelScript переходили, потому что он более крестообразный

Я рассматривал AS как альтернативу написанию собственного языка.
Некоторые вещи мне там категорически не понравились.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ZGreen 12-06-2023 в 23:45:

Я имел в виду Анрыл 3.


Отправлено (_-=ZhekA=-_) 13-06-2023 в 05:38:

Ааа, все я пони ))) Я просто имел ввиду двиг ue5 )))

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Временная зона GMT. Текущее время 11:06.
Показать все 64 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024