Программирование (общая "болталка")

Всё, что касается программирования на старых языках или для старых систем

Re: Программирование (общая "болталка")

Сообщение uav » 04 фев 2024, 13:08

clihlt писал(а):Вы имеете ввиду по цветовой палитре?

clihlt, да. Ну и во втором случае про Марс есть в описании. Понятно, что это процедурная графика, а не попытка моделировать реальный рельеф.
Последний раз редактировалось uav 04 фев 2024, 13:08, всего редактировалось 1 раз.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 2463
Зарегистрирован: 22 дек 2008, 14:21

Re: Программирование (общая "болталка")

Сообщение longhorn_gnu » 26 фев 2024, 19:37

Мой друг (KovshKomeij) написал парсер Midi, который конвертирует музыку в чиптюн для Turbo C++ в DOS на Python. Вот сорсы. Нужна для него библиотека mido. По сути это полезный пример того, что кодить под старые ОСи можно и сегодня довольно удобно.
Вложения
main.py.tar.gz
(565 байт) Скачиваний: 271
Последний раз редактировалось longhorn_gnu 26 фев 2024, 19:40, всего редактировалось 1 раз.
its end?
Аватара пользователя
longhorn_gnu
Мастер Даунгрейда
 
Сообщения: 774
Зарегистрирован: 05 июн 2023, 08:32
Откуда: telegram: @sdl_sdl_sdl_ps_dpl
Железо: deleted

Фигуры Лиссажу

Сообщение rvg » 04 мар 2024, 20:54

Программа рисует фигуры Лиссажу - замкнутые траектории, прочерчиваемые точкой, совершающей одновременно два гармонических колебания в двух взаимно перпендикулярных направлениях.
Ранее - программа была размещена (мной) на одном из форумов. Нарисовано по формулам, средствами Windows API, такого варианта в сети - нет! Из-за многочисленных вычислений программа работает с притормаживанием.
 Развернуть: Lissajous.cpp
Код: Выделить всё
/* Lissajous.cpp
*
* Фигуры Лиссажу - замкнутые траектории, прочерчиваемые
* точкой, совершающей одновременно два гармонических
* колебания в двух взаимно перпендикулярных направлениях. */

#include <math.h>
#include <windows.h>
#ifndef   M_PI
const double M_PI=3.14159265358979323846;
#endif
char* GAppname="Фигуры Лиссажу";
HWND g_hwndStatic[3]; /* Четыре хэндла рамки "static". */

void DrawFigure_1(HWND hWnd) {
   RECT rect;
   HDC hDC=GetDC(g_hwndStatic[0]);
   GetClientRect(g_hwndStatic[0],&rect);
   HPEN hPen=CreatePen(PS_SOLID,3,RGB(0,0,255));
   HGDIOBJ gdi=SelectObject(hDC,hPen);
   double t=0;
   int x=static_cast<int>((-90.5*sin(3*t)+rect.right/2));
   int y=static_cast<int>((90.5*cos(t)-1.3*cos(2*t)-0.6*cos(3*t)-0.2*cos(4*t)+rect.bottom/2));
   MoveToEx(hDC,x,y,NULL);
   for(double p=0;p<M_PI*10;p+=M_PI/36) {
      for(t=0;t<2*M_PI;t+=M_PI/500) {
         x=static_cast<int>((90.5*sin(3*t)+rect.right/2));
         y=static_cast<int>((90.5*cos(t)-1.3*cos(2*t)-0.6*cos(3*t)-0.2*cos(4*t)+rect.bottom/2));
         LineTo(hDC,x,y);
      }
   }
   SelectObject(hDC,gdi);
   //SetBkColor(hDC,GetSysColor(COLOR_WINDOW));/* Можно назначить цвет фона. */
   //SetBkColor(hDC,GetSysColor(COLOR_BTNFACE));/* Можно назначить цвет фона. */
   SetBkMode(hDC,TRANSPARENT);
   DrawText(hDC,/* Формула по которой строится фигура. */
   " x=5 sin3t,\r\ny=4 cos(t)-1.3 cos(2t)-0.6 cos(3t)-0.2 cos(4t)",
   -1,&rect,DT_EXTERNALLEADING|DT_NOPREFIX|DT_WORDBREAK);
   ReleaseDC(g_hwndStatic[0],hDC);
   DeleteObject(gdi);
   ValidateRect(hWnd,NULL);
}

void DrawFigure_2(HWND hWnd) {
   RECT rect;
   HDC hDC=GetDC(g_hwndStatic[1]);
   GetClientRect(g_hwndStatic[1],&rect);
   HPEN hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));
   HGDIOBJ gdi=SelectObject(hDC,hPen);
   double t=0;
   int x=static_cast<int>((-80.5*sin(t)+rect.right/2));
   int y=static_cast<int>((80.5*cos(3*t)+rect.bottom/2));
   MoveToEx(hDC,x,y,NULL);
   for(double p=0;p<M_PI*10;p+=M_PI/36) {
      for(t=0;t<2*M_PI;t+=M_PI/500) {
         x=static_cast<int>((80.5*sin(t)+rect.right/2));
         y=static_cast<int>((80.5*cos(3*t)+rect.bottom/2));
         LineTo(hDC,x,y);
      }
   }
   SelectObject(hDC,gdi);
   //SetBkColor(hDC,GetSysColor(COLOR_WINDOW));
   //SetBkColor(hDC,GetSysColor(COLOR_BTNFACE));
   SetBkMode(hDC,TRANSPARENT);
   DrawText(hDC," x=sin(t), y=cos(3t)",/* Формула по которой строится фигура. */
   -1,&rect,DT_EXTERNALLEADING|DT_NOPREFIX|DT_WORDBREAK);
   ReleaseDC(g_hwndStatic[1],hDC);
   DeleteObject(gdi);
   ValidateRect(hWnd,NULL);
}

void DrawFigure_3(HWND hWnd) {
   RECT rect;
   HDC hDC=GetDC(g_hwndStatic[2]);
   GetClientRect(g_hwndStatic[2],&rect);
   HPEN hPen=CreatePen(PS_SOLID,2,RGB(153,0,0));
   HGDIOBJ gdi=SelectObject(hDC,hPen);
   double t=0;
   int x=static_cast<int>((80.5*2*cos(t)+rect.right/2));
   int y=static_cast<int>((80.5*cos(t+4)+rect.bottom/2));
   MoveToEx(hDC,x,y,NULL);
   for(double p=0;p<M_PI*10;p+=M_PI/36) {
      for(t=0;t<2*M_PI;t+=M_PI/500) {
         x=static_cast<int>((80.5*2*cos(t)+rect.right/2));
         y=static_cast<int>((80.5*cos(t+4)+rect.bottom/2));
         LineTo(hDC,x,y);
      }
   }
   SelectObject(hDC,gdi);
   //SetBkColor(hDC,GetSysColor(COLOR_WINDOW));
   //SetBkColor(hDC,GetSysColor(COLOR_BTNFACE));
   SetBkMode(hDC,TRANSPARENT);
   DrawText(hDC," x=2 cos(t), y=cos(t+4)",/* Формула по которой строится фигура. */
   -1,&rect,DT_EXTERNALLEADING|DT_NOPREFIX|DT_WORDBREAK);
   ReleaseDC(g_hwndStatic[2],hDC);
   DeleteObject(gdi);
   ValidateRect(hWnd,NULL);
}

void DrawLogo(HWND hWnd) {
   RECT rect;
   HDC hDC=GetDC(g_hwndStatic[3]);
   GetClientRect(g_hwndStatic[3],&rect);
   HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,"Logo.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
   /*if(!hBitmap) // Можно разместить рисунок в ресурсах программы.
      hBitmap=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));*/
   if(hBitmap) {
      HDC hdcMem=CreateCompatibleDC(hDC);
      SelectObject(hdcMem,hBitmap);
      BITMAP bmp;
      GetObject(hBitmap,sizeof(BITMAP),&bmp);
      StretchBlt(hDC,0,0,rect.right-rect.left,rect.bottom-rect.top-2,hdcMem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
      DeleteObject(hBitmap);
      ReleaseDC(hWnd,hdcMem);
   } /* End "if hBitmap" */
   ReleaseDC(g_hwndStatic[3],hDC);
   ValidateRect(hWnd,NULL);
}

void OnPaint(HWND hWnd) {
   PAINTSTRUCT ps;
   BeginPaint(hWnd,&ps);
   DrawFigure_1(hWnd);
   DrawFigure_2(hWnd);
   DrawFigure_3(hWnd);
   DrawLogo(hWnd);
   //ValidateRect(hWnd,NULL);
   EndPaint(hWnd,&ps);
}

LRESULT CALLBACK StaticProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
   /* Эта подпрограмма для четвертой рамки.
   При нажатии отправимся на сайт Old-Dos.ru (только раз, нечего дидосить :-) ) */
   WNDPROC Wndproc=(WNDPROC)(LONG)GetWindowLong(hWnd,GWL_USERDATA);
   if(Wndproc) {
   switch(uMsg) {
      /*case WM_PAINT: {
         //
         // Вообще - можно рисовать здесь, вместо функции DrawLogo().
         //
         PAINTSTRUCT ps;
         HDC hDC=BeginPaint(hWnd,&ps);
         EndPaint(hWnd,&ps);
      }
      break;*/
      case WM_LBUTTONDOWN: {
         static BOOL bOpen;
         if(!bOpen) {
            ShellExecute(0,"open",/* Open URL. */
            "http://old-dos.ru",NULL,NULL,SW_SHOWNORMAL);
            bOpen=TRUE;
         }
      }
      break;
      case WM_NCDESTROY:
      SetWindowLong(hWnd,GWL_WNDPROC,(LONG)Wndproc);
      SetWindowLong(hWnd,GWL_USERDATA,0);
      break;
      } /* End "uMsg" */
#if _MSC_VER
      return CallWindowProc(Wndproc,hWnd,uMsg,wParam,lParam);
#else
/* Borland C++ */
      return CallWindowProc((int(__stdcall*)())Wndproc,hWnd,uMsg,wParam,lParam);
#endif
   } /* End "if(Wndproc)" */
   return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

void OnWindowPosChanging(WINDOWPOS FAR* lpwp) {
   /* Deferring 4 child controls. */
   HDWP hDWP=BeginDeferWindowPos(4);
   if(!hDWP) return;
   HWND hWnd=lpwp->hwnd;
   RECT rect;
   GetClientRect(hWnd,&rect);
   int cx=rect.right;
   int cy=rect.bottom;
   hDWP=DeferWindowPos(hDWP,g_hwndStatic[0]
      /*GetDlgItem(hWnd,IDC_PANE1)*/,
   NULL,
   2,
   2,
   cx/2,
   cy/2,
   SWP_NOZORDER | SWP_NOREDRAW);

   hDWP=DeferWindowPos(hDWP,g_hwndStatic[1]
      /*GetDlgItem(hWnd,IDC_PANE2)*/,
   NULL,
   2,
   cy/2,
   cx/2,
   cy/2,
   SWP_NOZORDER | SWP_NOREDRAW);

   hDWP=DeferWindowPos(hDWP,g_hwndStatic[2]
      /*GetDlgItem(hWnd,IDC_PANE3)*/,
   NULL,
   rect.right/2,
   2,
   rect.right/2,
   rect.bottom/2,
   SWP_NOZORDER | SWP_NOREDRAW);

   hDWP=DeferWindowPos(hDWP,g_hwndStatic[3]
      /*GetDlgItem(hWnd,IDC_PANE4)*/,
   NULL,
   rect.right/2,
   rect.bottom/2,
   rect.right/2,
   rect.bottom/2,
   SWP_NOZORDER | SWP_NOREDRAW);

   EndDeferWindowPos(hDWP);
   InvalidateRect(hWnd,NULL,TRUE);
}

void mb(char* svStr) {
   UINT uType=MB_OK | MB_ICONINFORMATION |
   MB_SETFOREGROUND | MB_SYSTEMMODAL;
   int n=0;
   if(strstr(svStr,"Failed") || strstr(svStr,"Error"))
   ++n;
   if(n) {
      uType &=~MB_ICONINFORMATION;
      uType |=MB_ICONWARNING;
   }
   MessageBox(GetActiveWindow(),svStr,GAppname,uType);
   if(n) ExitProcess(n);
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
   LRESULT retval=0;
   switch(uMsg) {
   case WM_CREATE: {
      LPCREATESTRUCT lpCreateStruct=reinterpret_cast<LPCREATESTRUCT>(lParam);
      for(int i=0;i<4;++i) {
         g_hwndStatic[i]=CreateWindowEx(0,"static",NULL,
         SS_NOTIFY|WS_CHILD|WS_VISIBLE|WS_BORDER,
         0,0,0,0,hWnd,(HMENU)(UINT)i,
         lpCreateStruct->hInstance,LPVOID(0));
         if(!g_hwndStatic[i]) mb("Failed create static.");

         SetWindowLong(g_hwndStatic[3],GWL_USERDATA,
         GetWindowLong(g_hwndStatic[3],GWL_WNDPROC));
         SetWindowLong(g_hwndStatic[3],GWL_WNDPROC,(LONG)StaticProc);
      }
   }
   return TRUE;
   
   case WM_WINDOWPOSCHANGING:
   case WM_WINDOWPOSCHANGED: {
      LPWINDOWPOS lpwp=reinterpret_cast<LPWINDOWPOS>(lParam);
      if(!(lpwp->flags & SWP_NOSIZE) || IsWindowVisible(hWnd))
         OnWindowPosChanging(lpwp);
   }
   return TRUE;

   case WM_PAINT:
      OnPaint(hWnd);
      break;
   case WM_CLOSE:
      DestroyWindow(hWnd);
      break;
   case WM_DESTROY:
      PostQuitMessage(0);
      break;
   default:
      retval=DefWindowProc(hWnd,uMsg,wParam,lParam);
   } /* End "uMsg" */
   return retval;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) {
   WNDCLASSEX wcex={sizeof(WNDCLASSEX),
   CS_VREDRAW | CS_HREDRAW,WndProc,
   0,0,hInstance,
   /*LoadIcon(hInstance,MAKEINTRESOURCE(IDR_MAINFRAME)),*/
   LoadIcon(NULL,IDI_APPLICATION),
   LoadCursor(NULL,IDC_ARROW),
   (HBRUSH)(COLOR_BTNFACE+1),
   /*(HBRUSH)(COLOR_WINDOW+1),*/
   NULL,"wnd_lissajous",NULL,};
   ATOM Atom=RegisterClassEx(&wcex);
   if(!Atom) {
      Atom=RegisterClass((LPWNDCLASS)&wcex.style);
      if(!Atom) mb("Cannot register class");
   }
   /* Style window default. */
   DWORD dwExStyle=WS_EX_WINDOWEDGE;
   //DWORD dwExStyle=WS_EX_CLIENTEDGE;
   DWORD dwStyle=WS_OVERLAPPEDWINDOW;
   /* Style window no change blocking maximize.
   DWORD dwExStyle=WS_EX_WINDOWEDGE;
   DWORD dwStyle=WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX;*/
   /* Window position default.
   HWND hWnd=CreateWindowEx(dwExStyle,
   MAKEINTATOM(Atom),GAppname,dwStyle,
   CW_USEDEFAULT,0,CW_USEDEFAULT,0,
   HWND_DESKTOP,NULL,hInstance,NULL);*/
   /* Window position center desktop. */
   int nWidth=800;
   int nHeight=600;
   HWND hWnd=CreateWindowEx(dwExStyle,
   MAKEINTATOM(Atom),GAppname,dwStyle,
   ((GetSystemMetrics(SM_CXSCREEN)-nWidth)/2),
   ((GetSystemMetrics(SM_CYSCREEN)-nHeight)/2),
   nWidth,nHeight,HWND_DESKTOP,NULL,hInstance,NULL);
   if(!hWnd) mb("Cannot create window");
   ShowWindow(hWnd,nCmdShow);
   UpdateWindow(hWnd);
   MSG msg;
   while(GetMessage(&msg,NULL,0,0)) {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
   }
   return (int)msg.wParam;
}
Вложения
Lissajous.zip
(34.38 Кб) Скачиваний: 185
prew_Lissajous.png
prew_Lissajous.png (47.25 Кб) Просмотров: 8329
Последний раз редактировалось rvg 05 мар 2024, 10:08, всего редактировалось 1 раз.
Аватара пользователя
rvg
Мастер Даунгрейда
 
Сообщения: 661
Зарегистрирован: 18 июл 2023, 14:12

Re: Программирование (общая "болталка")

Сообщение aarsen2020@yandex.ru » 27 мар 2024, 12:54

https://hi-aga.ru/ - новый сайт по ЯП Forth.

Начать изучать программирование на языке Forth настолько просто, что материал данного сайта можно использовать для детей, не говоря уже обучение, этому прекрасному виду человеческой деятельности, для школьников, абитуриентов и студентов.
aarsen2020@yandex.ru
Новичок
 
Сообщения: 4
Зарегистрирован: 27 мар 2024, 12:47

Re: Программирование (общая "болталка")

Сообщение oldpcfan82 » 29 мар 2024, 11:41

Здравствуйте, извиняюсь если не по теме. Я хочу программировать на PureBasic под платформу AMIGA см. тут в самом низу, есть бесплатная версия для AMIGA. Когда скачиваешь программу, там расширения файла lzx. Скачал я ещё эмулятор амиги WinUAE, но эмулятор WinUAE что-то не запускается, требует какие-то образы, которых у меня нет. Добавляю в эмулятор какие-то образы, а они не запускаются. Эмулятор WinUAE тоже не хочет PureBasic.lzx грузить. Когда запустишь PureBasic, должно так выглядеть https://i.imgur.com/MqSF01r.png. Есть один соотечественник, он тоже программирует на PureBasic см. https://www.youtube.com/watch?v=oouxu5XdOno. Смотрю тут http://guide.abime.net/gguides/winuaea.htm, делаю как там нарисовано, а не запускется ничего.
Последний раз редактировалось oldpcfan82 29 мар 2024, 11:43, всего редактировалось 2 раз(а).
Аватара пользователя
oldpcfan82
Мастер Даунгрейда
 
Сообщения: 303
Зарегистрирован: 01 окт 2023, 22:57

Re: Программирование (общая "болталка")

Сообщение uav » 29 мар 2024, 15:20

Сам эмулятор-то я запустил, вот портативная версия с нужными ROM'ами и образом HDD:
http://downgradefiles.pdp-11.ru/downloa ... ab49ea6acc
(Осторожно, при распаковке займёт больше 600 МБ!)
Запускать через winuae.bat
А вот PureBasic не пошёл почему-то, т.е. я подключил LZX (это архив такой), установка запустилась и прошла нормально, а вот при попытке запуска уже установленного или вылетает, или ошибку какую-то пишет.
Может, ему другая версия ОС нужна или другая эмулируемая модель компьютера.
Пока не разбирался, времени сейчас нет, нужно 46-й номер журнала доделывать...
Последний раз редактировалось uav 29 мар 2024, 15:21, всего редактировалось 1 раз.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 2463
Зарегистрирован: 22 дек 2008, 14:21

Re: Программирование (общая "болталка")

Сообщение oldpcfan82 » 30 мар 2024, 07:06

Спасибо!
Аватара пользователя
oldpcfan82
Мастер Даунгрейда
 
Сообщения: 303
Зарегистрирован: 01 окт 2023, 22:57

Re: Программирование (общая "болталка")

Сообщение oldpcfan82 » 21 апр 2024, 08:42

Всем привет!
Подскажите как правильно программировать в Visual FoxPro 6, (на скринах Visual FoxPro 7 т.к. на русской версии Windows 2000 установлена именно эта версия). Хотелось бы приступить к программированию быстро, у меня проблема с пониманием текста в книгах.
1. Проблема с автоматическим счётчиком см. https://i.ibb.co/VDDK2gW/foxpro-table-designer-06-55-21-04-2024-min.jpg. Я раньше работал в среде Microsoft Access, и там можно было указать для поля автоматический счётчик. Как указать автоматический счётчик для поля ID в FoxPro?
2. Правильно ли я понимаю, работу с БД на FoxPro:
Код: Выделить всё
* Допустим, чтобы использовать таблицу или базу данных нужно написать так, правильно?
USE Database1.Table1

* А чтобы перемещаться по записям так, правильно?
* Вперёд
SKIP 1

* Назад
SKIP -1

* Чтобы данные обновились в полях, когда вызываешь SKIP
thisform.Refresh


Вот полный код, так правильно?:
Код: Выделить всё
* Command1.Click (при нажатии на кнопку "предыдущая запись")
IF NOT BOF()
  SKIP -1
  thisform.Refresh
ENDIF

* Command2.Click (при нажатии на кнопку "следующая запись")
IF NOT EOF()
  SKIP 1
  thisform.Refresh
ENDIF


И ещё вопрос:
Код: Выделить всё
* Правильно вот так можно вызывать программу?
RUN "calc.exe"

* Почему FoxProx не ругается когда я пишу так?:
RUN calc.exe


Работает вот так https://i.ibb.co/cQWHjqF/bandicam-2024-04-21-12-06-31-983.gif.


3. Так правильно вставлять поля из таблицы в форму см. https://i.ibb.co/YPKcyK0/bandicam-2024-04-21-07-26-44-988.gif?
4. Вопрос про установщик (Install Schield) см. https://i.ibb.co/2SYMMyw/foxpro-installer-06-52-21-04-2024-min.jpg. Как распространять своё ПО написанное на FoxPro, если когда программируешь и в проекте указываешь абсолютный путь к БД или таблицы допустим C:\Documents and Settings...\FoxPro Project\? Ведь обычно программа предлагает устанавливать в папку Programm Files или Users. Можно ли допустим создать папку HOTEL на диске C, т.е. C:\HOTEL. И когда я добавлю файлы в программе Install Schield, нужно указать чтобы устанавливалась программа именно в папку C:\HOTEL?
Последний раз редактировалось oldpcfan82 21 апр 2024, 13:09, всего редактировалось 7 раз(а).
Аватара пользователя
oldpcfan82
Мастер Даунгрейда
 
Сообщения: 303
Зарегистрирован: 01 окт 2023, 22:57

Re: Программирование (общая "болталка")

Сообщение oldpcfan82 » 26 апр 2024, 14:45

Здравствуйте, разрабатываю игру "О счастливчик!" на флеш версии 6, ниже 6-й версии не получается сделать. Это нормально если у меня будет очень сильно много swf-файлов? Есть ещё пару вопросов.
Вот код:
Код: Выделить всё
// Когда загрузится флеш
onSelfEvent (load) {
aw._visible = false; // Мигалка бежево-оранжевого цвета, для выбора ответа делаем невидимой
var ev:Number = 0; // Событие, 0 - ничего, 1 - включить мигалку, 2 - показать
var ticks:Number = 0; // Счётчик
mc.loadMovie("intro_mus.swf");
}

// Нет таймера, но есть прерывание при смене кадра
onSelfEvent (enterFrame) {
// Если ev == 1, то мигаем
if(ev  == 1)
{
if(ticks >= 20)
{
aw._visible = false; // Прячем

}
if(ticks >= 40)
{
ticks = 0; // Сброс счётчика
aw._visible = true; // Показываем
}
ticks++; // Увеличиваем счётчик
}
// Если ev == 2, то перемещаем панель с деньгами
if(ev == 2)
{
mcmoney._x--;  // Перемещаем панель
// Если показали панель с деньгами
if(mcmoney._x<= 400) ev = 0;
}


//a4 неправильный ответ
// Если нажали на кнопку
on (press) {
ev = 1; // Включаем мигалку
aw._x = a4._x; // Перемещаем оранжево бежевую фигуру по x координате, где находится a4
aw._y = a4._y; // Перемещаем оранжево бежевую фигуру по y координате, где находится a4
mc.loadMovie("wrong50k.swf"); // Загружаем звуковой файл wrong50k.swf, т.е. неправильный ответ
}


//a2 неправильный ответ
// Если нажали на кнопку
on (press) {
ev = 1; // Включаем мигалку
aw._x = a2._x; // Перемещаем оранжево бежевую фигуру по x координате, где находится a2
aw._y = a2._y; // Перемещаем оранжево бежевую фигуру по y координате, где находится a2
mc.loadMovie("wrong50k.swf"); // Загружаем звуковой файл wrong50k.swf, т.е. неправильный ответ
}

//a3 неправильный ответ
on (press) {
ev = 1; // Включаем мигалку
aw._x = a3._x; // Перемещаем оранжево бежевую фигуру по x координате, где находится a3
aw._y = a3._y; // Перемещаем оранжево бежевую фигуру по y координате, где находится a3
mc.loadMovie("wrong50k.swf"); // Загружаем звуковой файл wrong50k.swf, т.е. неправильный ответ
}

//a1 - правильный ответ
// Если нажали на кнопку
on (press) {
ev = 1; // Включаем мигалку
aw._x = a1._x; // Перемещаем оранжево бежевую фигуру по y координате, где находится a1
aw._y = a1._y; // Перемещаем оранжево бежевую фигуру по y координате, где находится a1
mc.loadMovie("yes50k.swf"); // Загружаем звуковой файл yes50k.swf, т.е. правильный ответ
}

// btnmoney
// Если нажали на кнопку
on (press) {
mcmoney.loadMovie("money.swf"); // Загружаем файл money.swf
mcmoney._y = 0; // Перемещаем флеш файл по y=0
mcmoney._x = 600; // Перемещаем флеш файл по x=600
ev = 2; // Устанавливаем ev=2, т.е. чтобы перемещалась панелька с деньгами
}


Вот что я уже сделал см. http://downgradefiles.pdp-11.ru/download.php?file=cff5653ed01c5023fda77dc2eafb36cb. Звуки брал тут.

Так называются элементы в сцене:
Вложения
o_schaflivchik_13_30_26_04_2024-min.jpg
o_schaflivchik_13_30_26_04_2024-min.jpg (38.18 Кб) Просмотров: 7418
Последний раз редактировалось oldpcfan82 26 апр 2024, 14:50, всего редактировалось 2 раз(а).
Аватара пользователя
oldpcfan82
Мастер Даунгрейда
 
Сообщения: 303
Зарегистрирован: 01 окт 2023, 22:57

Re: Программирование (общая "болталка")

Сообщение Мария Константиновна » 30 май 2024, 17:59

Язык C++ я не люблю во-первых из-за слишком сложного синтаксиса (постоянно приходится заглядывать в справочник по поводу значков логических операций - гораздо удобнее использовать английские слова), во-вторых из-за того, что индексы массивов могут начинаться только с нуля (в старых версиях Фортрана и то было удобнее -там они начинались с единицы), в третьих из-за того, что конструкция выбора в C++ реализована не просто плохо, а безобразно плохо - в каждой ветви можно указывать только единственное значение (тогда как, например, в Паскале - также несколько значений, интервал(ы) значений и комбинации нескольких отдельных значений и их интервалов). Поэтому в программировании я предпочитаю Паскаль/Делфи и Фортран.
Cito liquescunt anni, nivis particulae,
Et cogitare terribile est, et cogitare de aeternitate.
Humano modo iam volo vivere,
Non saepe, sed interdum, saltem semel per hebdomadam.
Аватара пользователя
Мария Константиновна
Опытный даунгрейдер
 
Сообщения: 22
Зарегистрирован: 22 май 2014, 13:24

Re: Программирование (общая "болталка")

Сообщение krotan » 30 май 2024, 21:27

Язык C++ был придуман с одной единственной целью: чтобы программиста можно было выгнать с работы. До этого программиста было не уволить, потому что никто в его коде разобраться не мог. Программисты начали наглеть, требовать уважения и зарплату, вот и создали такой язык.
Аватара пользователя
krotan
Мастер Даунгрейда
 
Сообщения: 250
Зарегистрирован: 03 фев 2022, 20:16

Re: Программирование (общая "болталка")

Сообщение clihlt » 30 май 2024, 21:59

krotan писал(а):Язык C++ был придуман с одной единственной целью: чтобы программиста можно было выгнать с работы.

Сами придумали, али надоумил кто?
С уважением,
Владислав Васильев (aka clihlt).
Аватара пользователя
clihlt
Мастер Даунгрейда
 
Сообщения: 317
Зарегистрирован: 20 мар 2023, 21:17
Откуда: Брянск, СССР

Re: Программирование (общая "болталка")

Сообщение Мария Константиновна » 01 июн 2024, 09:51

krotan писал(а):Язык C++ был придуман с одной единственной целью: чтобы программиста можно было выгнать с работы. До этого программиста было не уволить, потому что никто в его коде разобраться не мог. Программисты начали наглеть, требовать уважения и зарплату, вот и создали такой язык.


А в коде на языке C++ кто-нибудь может разобраться???
Cito liquescunt anni, nivis particulae,
Et cogitare terribile est, et cogitare de aeternitate.
Humano modo iam volo vivere,
Non saepe, sed interdum, saltem semel per hebdomadam.
Аватара пользователя
Мария Константиновна
Опытный даунгрейдер
 
Сообщения: 22
Зарегистрирован: 22 май 2014, 13:24

Re: Программирование (общая "болталка")

Сообщение krotan » 01 июн 2024, 16:21

Мария Константиновна писал(а):А в коде на языке C++ кто-нибудь может разобраться???
Язык С++ предполагает разделённую работу группы программистов. Каждому выдают какой-нибудь класс и он его пишет. Если одного программиста убили, его место занимает новый гасторбайтер.
Аватара пользователя
krotan
Мастер Даунгрейда
 
Сообщения: 250
Зарегистрирован: 03 фев 2022, 20:16

Re: Программирование (общая "болталка")

Сообщение uav » 01 июн 2024, 17:14

Ну, прямой связи между разделённой работой и C++ нет, а классы и объекты есть в том же Turbo Pascal (и много где ещё).
Последний раз редактировалось uav 01 июн 2024, 17:16, всего редактировалось 2 раз(а).
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 2463
Зарегистрирован: 22 дек 2008, 14:21

Пред.След.

Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5