Среда, 16 Июля 2025, 21:45

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
PBPROGДата: Вторник, 26 Октября 2010, 15:32 | Сообщение # 241 | Тема: Помогите пожалуйста определится с ЯП.
постоянный участник
Сейчас нет на сайте
Quote (Arab-Emir)
вот про программы особо ничего не было написано
Для этого подойдут многие современные языки, скажем, этот

Quote (Arab-Emir)
Высокая скорость компиляции. Мой двиг (приблизительно 7 000 строк кода) компилится за 104 секунды.
Разве 7 тысяч сторок это так много, чтобы на это тратилось аж 104 секунды?
Такое число строк должно компилироватся за время, не больше 10 секунд, иначе, компилятор жутко неопимизированыеый (тормознутый)!
PBPROGДата: Вторник, 19 Октября 2010, 17:18 | Сообщение # 242 | Тема: Помогите пожалуйста найти учебник по Basik'y
постоянный участник
Сейчас нет на сайте
Quote (Stalker_Shooter)
выучив его, вам не станет легче изучать другие ЯП
API зависит не от языка, а от системы, так что это заблуждение. По крайней мере, это не соответствует истине для современных реализаций бейсика.

Quote (Stalker_Shooter)
Тем более он сложнее Паскаля.
По мнению большенста людей, бейсик проще паскаля.
Он более понятен на интуитивном уровне.

Quote (Stalker_Shooter)
Лучше конечно (для 80% населения планеты)). На нем сейчас весь мир держится. Мне, как русскому, он не привычный, но он важный и нужный язык.
А если представить ситуацию что русский и английский одинаково распространены и на одном и на другом, общается весь мир, тогда что?

PS.
Не в языке дело, а в умении им грамотно пользоватся!

PBPROGДата: Вторник, 19 Октября 2010, 11:14 | Сообщение # 243 | Тема: Помогите пожалуйста найти учебник по Basik'y
постоянный участник
Сейчас нет на сайте
Quote (Stalker_Shooter)
Лучше уже Паскаль
А чем он лучше?

PS
Еще скажите что английский лучше русского!

PBPROGДата: Пятница, 15 Октября 2010, 21:13 | Сообщение # 244 | Тема: Помогите пожалуйста найти учебник по Basik'y
постоянный участник
Сейчас нет на сайте
Вот учебник по бейсику http://pure-basic.narod.ru/docs.html

Сообщение отредактировал PBPROG - Пятница, 15 Октября 2010, 21:17
PBPROGДата: Пятница, 24 Сентября 2010, 12:15 | Сообщение # 245 | Тема: Стоит ли изучать бейсик?
постоянный участник
Сейчас нет на сайте
Quote (Spihex)
Basic - язык для обучения? Если так, то я - дурак
Вас никто за язык не тянул, сами так себя назвали biggrin
Бейсик подходит не только для обучения, но и для разработки "приличных" прикладных прог и игр.
Но многое зависит от компилятора.
Вот один из лучших не данный момент.
PBPROGДата: Вторник, 07 Сентября 2010, 19:28 | Сообщение # 246 | Тема: Стоит учить Питона или сразу браться за Си++?
постоянный участник
Сейчас нет на сайте
Quote (QWER56)
Нет. Я так понимаю автор хочет игры создавать. А питон и С++ ближе к геймдеву чем бейсик.
Вы сильно ошибаетесь!
Бейсик тоже подходит для создания игр!
PBPROGДата: Суббота, 04 Сентября 2010, 16:45 | Сообщение # 247 | Тема: Какой ЯП лучше всего изучать первым?
постоянный участник
Сейчас нет на сайте
Если уж начинать с бейсика, то лучше выбрать нормальный компилятор, скажем, PureBasic.
PBPROGДата: Четверг, 02 Сентября 2010, 22:26 | Сообщение # 248 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (bum)
С современными объемами жестких дисков это не имеет значения.
Не у всех есть быстрый безлимитный инет чтобы скачать "лишних" несколько десятков метров! Проще и быстрее скачать скомпилированую прогу, размером, несколько сотен килобайт!

Quote (bum)
Не поверите, в *nix расширение файла не имеет никакого значения. За возможность запуска файла как программы отвечает соответствующий флаг в правах доступа
Я это знаю. А в никсах, скомпилированые исполняемые файлы почти всегда без расширения.

Quote (bum)
Не является большой проблемой? Сильно сказано.
Ну не проблема это. Ну потрачу на одну минуту больше - скомпилирую прогу под нужную платформу. Что сложного?
PBPROGДата: Четверг, 02 Сентября 2010, 21:44 | Сообщение # 249 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
ведь для того чтобы перенести код под другую платформу его надо перекмпилировать...
Это ложится на плечи разработчика и не является большой проблемой - юзеры получат самостоятельные скомпилированые исполняемые файлы для интерисующей их платформы.
А в случае, интерпретации, поиск интерпретатора под нужную платформу - проблема юзеров.
PBPROGДата: Четверг, 02 Сентября 2010, 21:17 | Сообщение # 250 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
Имелось в виду "НЕ ИСПОЛЬЗУЯ ДИРЕКТИВЫ КОМПИЛЯТОРА"...
В том коде использована кроссплаторменная библиотека функций, не API конкретной платформы.
Теперь по существу.
Вот весь код:
Code
   ; Эта процедура открывает файл, указанный в переменной File и загружает данные из него в редактор.
Procedure LoadFile(File.s)
  If ReadFile(0, File) ; Открытие файла.
     FileSize=Lof(0) ; Определение размера файла в байтах.
     FormatFile=ReadStringFormat(0) ; Определение кодировки файла (Ascii, UTF8 или Unicode).
     *mem=AllocateMemory(FileSize+1) ; Выделение памяти на 1 байт больше размера файла.
     ReadData(0, *mem, FileSize) ; Копирование данных из файла в память.
     SetGadgetText(1, PeekS(*mem,FileSize, FormatFile)) ; Преобразование кодировки и загрузка текста в редактор.
     FreeMemory(*mem) ; Освобождение памяти.
     CloseFile(0)     ; Закрытие файла.
     StatusBarText(1,0,File) ; Отображение пути к файлу в строке состояния.
  Else
     MessageRequester("Ошибка", "Не удалось открыть файл")     
  EndIf
EndProcedure

    ; Эта процедура сохраняет данные из редактора в файл.
Procedure SaveFile()
   ; Создание стандартного окна сохранения файла.
   File.s=SaveFileRequester("Сохраняем файл","","Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*",0)
   If File<>""
        If GetExtensionPart(File)="" And SelectedFilePattern()=0 ; Если не заданно расширение файла
          File=File+".txt"                    ; добавляем его
        EndIf
      If CreateFile(0,File) ; Создание файла на диске
         Text.s=GetGadgetText(1) ; Копирование текста из редактора в строковую переменную Text
         CompilerIf #PB_Compiler_OS = #PB_OS_Linux ; Это код для операционки Linux
           WriteStringFormat(0, #PB_Unicode) ; Запись в файл специальной метки, сообщающей что кодировка Unicode
           FormatFile=#PB_Unicode
         CompilerElse ; Это код для операционок Windows, MacOS и AmigaOS
           FormatFile=#PB_Ascii
         CompilerEndIf
         WriteString(0, Text,  FormatFile) ; Запись текста в файл в требуемой кодировке
         CloseFile(0) ; Закрытие файла.
      Else
        MessageRequester("Ошибка", "Не удалось сохранить файл")
      EndIf
   EndIf
EndProcedure

ProgPath.s=GetPathPart(ProgramFilename()) ; Получаем путь к исполняемому файлу

Gosub LoadSetting ; Вызов подпрограммы, читающей настройки программы из файла SettingEdit.ini

If Window_X<2 : Window_X=100 : EndIf
If Window_Y<2 : Window_Y=100 : EndIf

   ; Открытие главного окна
OpenWindow(1,Window_X,Window_Y,Window_Width,Window_Height,"Текстовый редактор",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_Invisible)
  SmartWindowRefresh(1,1) ; Активация функции, уменьшающей мерцания окна при изменении его размеров
   
   If CreateMenu(0,WindowID(1)) ; Создание главного меню
    MenuTitle("Файл")
      MenuItem(1,"Открыть"+Chr(9)+"Ctrl+O")
      MenuItem(2,"Сохранить"+Chr(9)+"Ctrl+S")
      MenuBar()
      MenuItem(3,"Выход")
    MenuTitle("Формат")
      MenuItem(4,"Шрифт")
    MenuHeight=MenuHeight() ; Высота меню
   EndIf  
    
   If CreateToolBar(1,WindowID(1)) ; Создание панели инструментов
      ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
         ToolBarToolTip(1,1,"Открыть файл")
      ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
          ToolBarToolTip(1,2,"Сохранить файл")  
    ToolBarHeight=ToolBarHeight(1)  ; Высота панели инструментов
   EndIf
    
       ; Регистрация "горячих клавиш", дублирующих меню
   AddKeyboardShortcut(1, #PB_Shortcut_Control | #PB_Shortcut_O, 1)
   AddKeyboardShortcut(1, #PB_Shortcut_Control | #PB_Shortcut_S, 2)
    
     
   If CreateStatusBar(1,WindowID(1)) ; Создание строки состояния
      AddStatusBarField(#PB_Ignore) ; Создание одного раздела на всю строку состояния  
      StatusBarHeight = StatusBarHeight(1)  ; Высота строки состояния
   EndIf
    
   CompilerIf #PB_Compiler_OS = #PB_OS_Linux ; Код для Linux
      EditorX=2 ; Верхняя позиция редактора в окне
   CompilerElse
      EditorX=ToolBarHeight+2 ; Верхней позиция редактора смещена вниз на высоту панели инструментов
   CompilerEndIf
     ; Собственно редактор текста
  EditorGadget(1,1,EditorX, Window_Width-2, Window_Height-StatusBarHeight-MenuHeight-ToolBarHeight-4)
     SetGadgetColor(1,#PB_Gadget_FrontColor, $950121) ; Цвет текста
     SetGadgetColor(1,#PB_Gadget_BackColor, RGB(237, 255, 246)) ; Фон
      
     LoadFont(1, FontName.s, FontSize, FontStyle) ; Шрифт для редактора
     SetGadgetFont(1,FontID(1))
      
     File.s=ProgramParameter() ; Командная строка переданная программе при старте
     If File<>"" And FileSize(File)>=0 ; Передан путь к файлу
       LoadFile(File) ; Загружаем файл
     EndIf
      
        ; Активация функций, позволяющих открывать файл просто перетащив его в окно программы
     EnableWindowDrop(1, #PB_Drop_Files, #PB_Drag_Link)
     EnableGadgetDrop(1, #PB_Drop_Files, #PB_Drag_Link)

  HideWindow(1,0) ; Отображение окна
   
  Repeat ; Главный цикл Repeat - Until
     
    Event=WaitWindowEvent() ; Получаем идентификатор события в программе
     
    If Event=#PB_Event_SizeWindow ; Размер окна изменился
          ; Изменение размеров редактора
          ResizeGadget(1, #PB_Ignore, #PB_Ignore, WindowWidth(1)-2, WindowHeight(1)-StatusBarHeight-MenuHeight-ToolBarHeight-2)
     
    ElseIf Event=#PB_Event_WindowDrop Or Event=#PB_Event_GadgetDrop ; На окно перетащали файл
      If EventDropAction()=#PB_Drag_Link
        File=EventDropFiles() ; Получаем путь к файлу
        If FileSize(File)>=0 ; Файл существует
          LoadFile(File) ; Загружаем файл
        EndIf
      EndIf
       
    ElseIf Event=#PB_Event_Menu ; Событие в меню
       Menu=EventMenu() ; Определение выбранного пункта меню
       Select Menu
          Case 1 ; Пункт "Открыть"
             File.s=OpenFileRequester("Открываем файл","","Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*",0)
             If File<>""
               LoadFile(File)
             EndIf
              
          Case 2 ; Пункт "Сохранить"
             SaveFile()
             
          Case 3 ; Пункт "Выход"
             Break
             
          Case 4 ; Пункт "Шрифт"
             If FontRequester(FontName.s, FontSize,0,0, FontStyle)
               FontName=SelectedFontName()
               FontSize=SelectedFontSize()
               FontStyle=SelectedFontStyle()
               LoadFont(1, FontName, FontSize, FontStyle)
               SetGadgetFont(1,FontID(1))
             EndIf
             
       EndSelect
    EndIf
     
  Until Event=#PB_Event_CloseWindow ; Прерывание главного цикла при закрытии окна
  Gosub SaveSetting ; Вызов подпрограммы, сохраняющей настройки программы ф файле SettingEdit.ini
  End
   
   
LoadSetting: ; Подпрограмма читающая из файла SettingEdit.ini настройки программы
   OpenPreferences(ProgPath+"SettingEdit.ini")
     PreferenceGroup("Window")
       Window_X=ReadPreferenceLong("Window_X", 200)
       Window_Y=ReadPreferenceLong("Window_Y", 200)
       Window_Width=ReadPreferenceLong("Window_Width", 500)
       Window_Height=ReadPreferenceLong("Window_Height", 400)
     PreferenceGroup("Editor")
       CompilerIf #PB_Compiler_OS = #PB_OS_Windows
         FontName.s=ReadPreferenceString("FontName","Lucida Console")
       CompilerElse
         FontName.s=ReadPreferenceString("FontName","Liberation Mono")
       CompilerEndIf
       FontSize=ReadPreferenceLong("FontSize", 10)
       FontStyle=ReadPreferenceLong("FontStyle", 0)
   ClosePreferences()
Return

SaveSetting: ; Подпрограмма сохраняющая в файле SettingEdit.ini настройки программы
   If CreatePreferences(ProgPath+"SettingEdit.ini")
     PreferenceGroup("Window")
       WritePreferenceLong("Window_X", WindowX(1))
       WritePreferenceLong("Window_Y", WindowY(1))
       WritePreferenceLong("Window_Width", WindowWidth(1))
       WritePreferenceLong("Window_Height", WindowHeight(1))
     PreferenceGroup("Editor")
       WritePreferenceString("FontName", FontName)
       WritePreferenceLong("FontSize", FontSize)  
       WritePreferenceLong("FontStyle", FontStyle)
     ClosePreferences()
   EndIf
Return

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

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

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

PBPROGДата: Четверг, 02 Сентября 2010, 20:27 | Сообщение # 251 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (bum)
Это не проблема. Есть способы запаковать все необходимые файлы вместе с интерпретатором в один контейнер и получить exe файл.
И какой будет размер исполняемого файла? biggrin

Quote (bum)
В *nix системах это вообще не проблема, поскольку там интерпретатор питона обычно всегда присутствует в системе
Но на большенстве компов установлена винда! И не стоит забывать про юзверей, котрые владеют тока мышкой и не додумаются что для проги нужен интерпретатор! А таких, сами понимаете, не мало!

Quote (bum)
exe файлов там нет.
Ага, там исполняемое файло без расшиерния. smile

Quote (bum)
Это может быть просто только с программами на уровне Hello World.
Вот вам пример, по сложнее хеловорда.
Оконная прога - текстовый редактор. Его исходик без модификаций можно скомпилировать под Windows x86, Windows x64, Linux x86, Linux x64, MacOS X Intel, MacOS X PowerPC и AmigaOS
http://pure-basic.narod.ru/docs/MultiOS.html


Сообщение отредактировал PBPROG - Четверг, 02 Сентября 2010, 20:28
PBPROGДата: Четверг, 02 Сентября 2010, 17:12 | Сообщение # 252 | Тема: На каком ЯПе лучше писать игры?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
В нём нет нормального ООП
Это всего лишь способ программирования.
Раньше без него прекрасно программирования, так что это не аргумент.

Quote (ezhickovich)
изживший себя синтаксис
Вот тут вы не правы. Сильно не правы! Языки ведь соврешенствуются!

Quote (ezhickovich)
отсутствует низкоуровневая работа с памятью
Работа с памятью есть, на том уровне, который допускает ОС.
PBPROGДата: Четверг, 02 Сентября 2010, 17:05 | Сообщение # 253 | Тема: На каком ЯПе лучше писать игры?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
Он устарел морально
В чем это проявляется?
И как он устарел?

PS.
Если так думать, то дельфи тоже устарел, ведь он базируется на паскале!
Ну и Си тоже стааааренький! biggrin

Сообщение отредактировал PBPROG - Четверг, 02 Сентября 2010, 17:06
PBPROGДата: Четверг, 02 Сентября 2010, 17:03 | Сообщение # 254 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
Не нужно переписывать одну и туже программу под разные платформы
А в чем плюс?
Один и тот же исходник можно просто перекомпилировать под требуемую платформу и все будет работать нативно без интерпретаторов! smile
PBPROGДата: Четверг, 02 Сентября 2010, 17:00 | Сообщение # 255 | Тема: На каком ЯПе лучше писать игры?
постоянный участник
Сейчас нет на сайте
Бейсик это лишь название языка, а возможности зависят от компилятора.
Никому не приходило в голову что существуют нормальные компиляторы бейсика, не хуже Дельфи или Си?
PBPROGДата: Четверг, 02 Сентября 2010, 16:57 | Сообщение # 256 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (ezhickovich)
Python
Все бы ничего, если бы не нужен был интерпретатор...
Это не всегда удобно, особено при распростанении программы! Так что все же предпочтительнее компилируемые языки программирования, желательно без runtime (.NET то же можно считать как гигансткий runtime).
PBPROGДата: Четверг, 02 Сентября 2010, 16:53 | Сообщение # 257 | Тема: На каком ЯПе лучше писать игры?
постоянный участник
Сейчас нет на сайте
Quote (Поварёнок)
Думал блитц3д учить, но он оказался слабым и малофункциональным. На нём мало, что сделать можно. А С++ для новичка это очень сложно. Так какой ЯП учить?
Попробуй PureBasic.
Он использует движок OGRE, но можно другой прикрутить если требуется.
PBPROGДата: Четверг, 02 Сентября 2010, 16:47 | Сообщение # 258 | Тема: Питон, игры делать на нём можно?
постоянный участник
Сейчас нет на сайте
Питон - интерпретируемый язык программирования, поэтому игры будут тормознутые!
PBPROGДата: Четверг, 02 Сентября 2010, 16:45 | Сообщение # 259 | Тема: Какой ЯП выбрать?
постоянный участник
Сейчас нет на сайте
Quote (TimKruz)
Чтобы быстро научиться программировать и писать крутые программы - конечно, Delphi
Не поверите, но бейсик можно выучить еще быстрее, а программы, созданые на нем, буду не менее круты, а может ещё круче! biggrin
PBPROGДата: Воскресенье, 01 Августа 2010, 22:41 | Сообщение # 260 | Тема: Каким ЯП вы даёте предпочтение
постоянный участник
Сейчас нет на сайте
В основном использую компилятор PureBasic при разработке прог для Windows x86, x64 и Linux.
Нравится его кроссплатформенность и легкая переносимость программ с одной платформы на другую.
Поиск:

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