MQL5 및 MQL5 Cloud Network에서 범용 수학 계산을 추가로 지원하려면 무엇을 추가해야 합니까? - 페이지 9

 

예, 게임은 성능과 기술에 활력을 불어넣습니다. 그들은 철 조각을 질적 수준으로 끌어 당기기 때문입니다. (내가 대학에서 아는 한 교수는 어떤 이유로 게임을 보편적인 악으로 간주했지만 :)

기능의 보편성과 관련하여 다음은 추가 단계적 구현을 위한 방향입니다.

- 일기 예보
- 과학 데이터 처리(우주, 핵물리학)
- 의약품
- 3D 렌더링(돈을 위한 실용적인 응용 프로그램으로)

글쎄, 당신은보고 우리는 증권 거래소의 예측에 도달 할 것입니다 ...

추신.
그리고 UCI를 통해 말씀드린 대로 MT를 신청할 수 있었습니다. :)

 
sergeev :

클라우드에 대해 말하는 것이 아닙니다. 클라우드의 기능으로 모든 것이 명확해집니다. MT 외부에서도 사용할 수 있습니다.

MT에 대해 이야기하고 있습니다.

MT를 기반으로 체스봇 대회를 치른다고 해서 질책할 일은 없다고 본다. 또한 이러한 동일한 봇은 클라우드의 컴퓨팅 리소스 를 사용합니다.

 

정말 외환을 그만두고 체스를 할 수 있습니까? 그것은 잘 작동했습니다.

그러나 나는 주사위 놀이를 선호합니다. 누군가가 MT5에서 주사위 놀이를 프로그래밍할 수도 있습니다. 저는 영원히 감사할 것입니다.

 
포커! EPT를 깨자!)))
 
pronych :
포커! EPT를 깨자!)))
그런 힘은 필요하지 않습니다.
 
우리는 신호로 바쁜 동안 신경 엔진 프로젝트 를 확실히 구현할 것입니다. 우리는 MT5의 신경망에 대한 큰 계획을 가지고 있습니다.

우리가 착수한다면, 우리는 그것을 끝까지 가져옵니다. 예를 들어 AlgLib은 커뮤니티를 참여시키려는 아이디어가 있었지만 완전히 독립적으로 구현되었습니다.

지금까지 정말 소수의 사람들이 오페라 프로젝트에 참여하고 시간을 낭비하고 싶어한다는 느낌이 있습니다.
 
Renat :

지금까지 정말 소수의 사람들이 오페라 프로젝트에 참여하고 시간을 낭비하고 싶어한다는 느낌이 있습니다.

경험이 없습니다. 당신은 당신의 팀에서 누군가를 프로젝트 의 큐레이터로 만들겠다고 약속했습니다.

그러나 목자가 없으면 양이 흩어질 것입니다. 그러므로 누구든지 공동체에서 어떤 일을 하면 그 사람만이 그의 일을 책임집니다.

 
sergeev :

경험이 없습니다. 당신은 당신의 팀에서 누군가를 프로젝트의 큐레이터로 만들겠다고 약속했습니다.

그러나 목자가 없으면 양이 흩어질 것입니다. 그러므로 누구든지 공동체에서 어떤 일을 하면 그 사람만이 그의 일을 책임집니다.

Boltology의 경험 이상입니다. 그렇게 눈 멀자, 그렇게 앉자 등등. 등. 사중주라고 불리는 할아버지 Krylov의 우화에 따르면. 아무도 아무것도 하지 않고 똑똑한 얼굴을 가진 사람은 모두 자신의 의견을 표현할 뿐입니다.

막대기로 모든 사람을 격려하기 위해 큐레이터가 필요하지 않습니다. 프로젝트 관리자는 코드의 첫 번째 줄, 즉 미래 클래스의 인터페이스를 만들어야 합니다. 이 인터페이스에서 어디에서 더 춤을 출지, 막다른 골목이 어디인지 이미 어느 정도 명확하게 될 것입니다. 그런 다음 일부 프로젝트 참가자는 정확히 자신이 할 일을 정당화하고 잠재적 활동이 일반적인 방향과 모순되지 않으면 아이디어의 구현을 위임받습니다. 그런 다음 다른 참가자가 연결됩니다. 등. 등.

예를 들어 여기에는 자유 시간이 있었습니다. 여기에 체스 프로그램에 대한 수업 스케치를 몇 개 던졌습니다.

 //+------------------------------------------------------------------+
//|                                                    CChessman.mqh |
//|                                 Copyright 2012, Yury V. Reshetov |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Yury V. Reshetov"
#property link       "http://www.mql5.com"

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CChessman // Класс: шахматная фигура
  {
private :
   int                type; // Тип фигуры: 
                           // 0 - пешка,
   // 1 - ладья
   // 2 - конь
   // 3 - слон
   // 4 - ферзь
   // 5 - король
   int                c; // Цвет фигуры: 0 - белый, 1 - черный 
   int                h; // Положение фигуры по горизонтали
   int                v; // Положение фигуры по вертикали
   bool               state; // Состояние фигуры: true - на доске, false - взята противником

public :
   void               CChessman( int t, int horisontal, int vertical, int group ); // Конструктор
   void              ~CChessman(); // Деструктор
                                   // Изменение местонахождения фигуры на доске
   // Возвращает результат, если изменение корректно и было выполнено
   bool               setPosition( int horisontal, int vertical); // Изменение позиции фигуры на доске
   void               erase(); // Вызывается, если фигура взята противником
   int                getType(); // Возвращает тип фигуры
   int                getHPosition(); // Возвращает положение фигуры на доске по вертикали
   int                getVPosition(); // Возвращает положение фигуры на доске по горизонтали
   int                getColor(); // Возвращает цвет фигуры
   bool               getState(); // Возвращает текущий статус фигуры
  };
//+------------------------------------------------------------------+
//|    Конструктор                                                   |
//+------------------------------------------------------------------+
void CChessman::CChessman( int t, int horisontal, int vertical, int group ) 
  {
   state= true ;
   type = t;
   h = horisontal;
   v = vertical;
   c = group ;
  }
//+------------------------------------------------------------------+
//|      Изменение позиции фигуры на доске                           |
//+------------------------------------------------------------------+
bool CChessman::setPosition( int horisontal, int vertical) 
  {
   if (!state) 
     {
       return ( false );
     }
   if (horisontal< 0 ) 
     {
       return ( false );
     }
   if (horisontal> 7 ) 
     {
       return ( false );
     }
   if (vertical< 0 ) 
     {
       return ( false );
     }
   if (vertical> 7 ) 
     {
       return ( false );
     }
   h = horisontal;
   v = vertical;
   return ( true );
  }
//+------------------------------------------------------------------+
//|       Удаление фигуры с доски                                    |
//+------------------------------------------------------------------+
void CChessman::erase( void ) 
  {
   state= false ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CChessman::getType( void ) 
  {
   return (type);
  }
//+------------------------------------------------------------------+
//|         Возвращает горизонтальное положение фигуры на доске      |
//+------------------------------------------------------------------+
int CChessman::getHPosition( void ) 
  {
   return (h);
  }
//+------------------------------------------------------------------+
//|         Возвращает вертикальное положение фигуры на доске        |
//+------------------------------------------------------------------+
int CChessman::getVPosition( void ) 
  {
   return (v);
  }
//+------------------------------------------------------------------+
//|        Возвращает цвет фигуры                                    |
//+------------------------------------------------------------------+
int CChessman::getColor( void ) 
  {
   return (c);
  }
//+------------------------------------------------------------------+
//|         Возвращает статус фигуры                                 |
//+------------------------------------------------------------------+
bool CChessman::getState( void ) 
  {
   return (state);
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|                                              CChessmansArray.mqh |
//|                                 Copyright 2012, Yury V. Reshetov |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Yury V. Reshetov"
#property link       "http://www.mql5.com"
#include <Chess/CChessman.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CChessmansArray // Класс: Шахматная доска
  {
private :
   CChessman        *table[]; // Массив шахматных фигур

public :
   void               CChessmansArray(); // Конструктор
   void              ~CChessmansArray(); // Деструктор
   CChessman        *getChessman( int i);
   void               goWhite(); // Ход белых
   void               goBlack(); // Ход черных
  };
//+------------------------------------------------------------------+
//|          Конструктор                                             |
//+------------------------------------------------------------------+
void CChessmansArray::CChessmansArray( void ) 
  {
   ArrayResize (table, 32 );

   table[ 0 ] = new CChessman( 1 , 0 , 0 , 1 ); // Левая белая ладья
   table[ 1 ] = new CChessman( 2 , 1 , 0 , 1 ); // Левый белый конь
   table[ 2 ] = new CChessman( 3 , 2 , 0 , 1 ); // Левый белый слон
   table[ 3 ] = new CChessman( 4 , 3 , 0 , 1 ); // Белый ферзь
   table[ 4 ] = new CChessman( 5 , 4 , 0 , 1 ); // Белый король
   table[ 5 ] = new CChessman( 3 , 5 , 0 , 1 ); // Правый белый слон
   table[ 6 ] = new CChessman( 2 , 6 , 0 , 1 ); // Правый белый конь
   table[ 7 ] = new CChessman( 1 , 7 , 0 , 1 ); // Правая белая ладья

   table[ 0 ] = new CChessman( 0 , 0 , 1 , 1 ); // Белая пешка
   table[ 1 ] = new CChessman( 0 , 1 , 1 , 1 ); // Белая пешка
   table[ 2 ] = new CChessman( 0 , 2 , 1 , 1 ); // Белая пешка
   table[ 3 ] = new CChessman( 0 , 3 , 1 , 1 ); // Белая пешка
   table[ 4 ] = new CChessman( 0 , 4 , 1 , 1 ); // Белая пешка
   table[ 5 ] = new CChessman( 0 , 5 , 1 , 1 ); // Белая пешка
   table[ 6 ] = new CChessman( 0 , 6 , 1 , 1 ); // Белая пешка
   table[ 7 ] = new CChessman( 0 , 7 , 1 , 1 ); // Белая пешка

   table[ 0 ] = new CChessman( 1 , 0 , 7 , - 1 ); // Левая черная ладья
   table[ 1 ] = new CChessman( 2 , 1 , 7 , - 1 ); // Левый черный конь
   table[ 2 ] = new CChessman( 3 , 2 , 7 , - 1 ); // Левый черный слон
   table[ 3 ] = new CChessman( 4 , 3 , 7 , - 1 ); // Черный ферзь
   table[ 4 ] = new CChessman( 5 , 4 , 7 , - 1 ); // Черный король
   table[ 5 ] = new CChessman( 3 , 5 , 7 , - 1 ); // Правый черный слон
   table[ 6 ] = new CChessman( 2 , 6 , 7 , - 1 ); // Правый черный конь
   table[ 7 ] = new CChessman( 1 , 7 , 7 , - 1 ); // Правая Черная ладья

   table[ 0 ] = new CChessman( 0 , 0 , 6 , - 1 ); // Черная пешка
   table[ 1 ] = new CChessman( 0 , 1 , 6 , - 1 ); // Черная пешка
   table[ 2 ] = new CChessman( 0 , 2 , 6 , - 1 ); // Черная пешка
   table[ 3 ] = new CChessman( 0 , 3 , 6 , - 1 ); // Черная пешка
   table[ 4 ] = new CChessman( 0 , 4 , 6 , - 1 ); // Черная пешка
   table[ 5 ] = new CChessman( 0 , 5 , 6 , - 1 ); // Черная пешка
   table[ 6 ] = new CChessman( 0 , 6 , 6 , - 1 ); // Черная пешка
   table[ 7 ] = new CChessman( 0 , 7 , 6 , - 1 ); // Черная пешка

  }
//+------------------------------------------------------------------+
//|       Возвращает объект фигуры по индексу в массиве              |
//+------------------------------------------------------------------+
CChessman *CChessmansArray::getChessman( int i) 
  {
   return (table[i]);
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|                                                    CChessBot.mqh |
//|                                 Copyright 2012, Yury V. Reshetov |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Yury V. Reshetov"
#property link       "http://www.mql5.com"
#include <Chess/CChessman.mqh>
#include <Chess/CChessmansArray.mqh>
//+------------------------------------------------------------------+
//|      Класс: бот-шахматист                                        |
//+------------------------------------------------------------------+
class CChessBot // Класс: бот-шахматист
  {
private :
   CChessman        *chessmans[]; // Шахматные фигуры
   int                table[]; // Шахматная доска
   int                c; // Цвет фигур: 0 - белый, 1 - черный

public :
   void               CChessBot( int group); // Конструктор
   void              ~CChessBot(); // Деструктор
   void               setTable(CChessmansArray *t); // Расставляет фигуры
   int                go(); // Ход. Возвращает индекс своей фигуры, которой был сделан ход. 
   int                analitic(); // Анализ ходов 
  };
//+------------------------------------------------------------------+
//|                  Конструктор                                     |
//+------------------------------------------------------------------+
void CChessBot::CChessBot( int group) 
  {
   c=group;
  }
//+------------------------------------------------------------------+
//|                  Расстановка фигур на шахматной доске            |
//+------------------------------------------------------------------+
void CChessBot::setTable(CChessmansArray *mans) 
  {
   ArrayResize (chessmans, 32 );
   ArrayResize (table, 64 );
   for ( int i= 0 ; i< 32 ; i++) 
     {
      chessmans[i]=mans.getChessman(i);
      table[chessmans[i].getHPosition() * 8 + chessmans[i].getVPosition()] = chessmans[i].getType() * 2 + chessmans[i].getColor();
     }
  }
//+------------------------------------------------------------------+
//|             Полуход                                              |
//+------------------------------------------------------------------+
int CChessBot::go( void ) 
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                   CChessGame.mqh |
//|                                 Copyright 2012, Yury V. Reshetov |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Yury V. Reshetov"
#property link       "http://www.mql5.com"
#include <Chess/CChessBot.mqh>
#include <Chess/CChessmansArray.mqh>
#include <Chess/CChessman.mqh>
//+------------------------------------------------------------------+
//|    Класс: Шахматная доска                                        |
//+------------------------------------------------------------------+
class CChessGame  
  {
private :
   CChessmansArray  *chessmans; // Шахматная массив шахматных фигур
   CChessBot        *whitebot; // Бот, играющий белыми
   CChessBot        *blackbot; // Бот, играющий черными

public :
   void               CChessGame(CChessBot *w,CChessBot *b); // Конструктор
   void              ~CChessGame(); // Деструктор
   void               game();   // Игра
   int                goWhite(); // Ход белых
   int                goBlack(); // Ход черных
  };
//+------------------------------------------------------------------+
//|                 Конструктор                                      |
//+------------------------------------------------------------------+
void CChessGame::CChessGame(CChessBot *w,CChessBot *b)
  {
   chessmans= new CChessmansArray();
   whitebot=w;
   whitebot.setTable(chessmans);
   blackbot=b;
   blackbot.setTable(chessmans);
  }
//+------------------------------------------------------------------+
//|           Полуход белых                                          |
//+------------------------------------------------------------------+
int CChessGame::goWhite( void )
  {
   return (whitebot.go());
  }
//+------------------------------------------------------------------+
//|         Полуход черных                                           |
//+------------------------------------------------------------------+
int CChessGame::goBlack( void )
  {
   return (blackbot.go());
  }
//+------------------------------------------------------------------+
//|            Игра                                                  |
//+------------------------------------------------------------------+
void CChessGame::game( void )
  {
   bool stopflag= false ;
   while (!stopflag)
     {
       if (goWhite()>= 0 )
        {
         if (goBlack()>= 0 )
           {
             // ...
           } else {
                  stopflag= false ;
           }
        } else {
               stopflag= false ;
        }
     }
  }
//+------------------------------------------------------------------+


이제 저장소에서 프로젝트를 만들고 추가 개발자를 연결할 수 있습니다. 그러나 거기에서 어떤 종류의 의견을 표현하려는 모든 사람들이 아니라 특정 작업을 수행하려는 사람들 중에서.

 

Yuri, 체스 엔진을 사용하는 것은 꽤 분명합니다. 주제는 다른 사람들에 의해 매우 잘 해결되었습니다.

사업을 시작하려면 축적된 경험과 10,000% 세트의 초기 및 극도로 격렬한 최적화(비트맵, 사전 설정 등)를 사용해야 합니다.

알파벳 갈퀴와 실수로 처음부터 시작하는 것은 불가능합니다. "조기 최적화는 악입니다"는 없습니다. 여기서 체스 번호 구현에 대한 극도의 경험이 즉시 필요합니다.

다행스럽게도 공개 도메인에는 많은 기사, 소스 코드 및 자세한 설명이 있습니다. 주제에 대해 읽기 시작하면 도달한 결정의 극한 수준을 즉시 이해하게 될 것입니다.

 
Renat :

Yuri, 체스 엔진을 사용하는 것은 꽤 분명합니다. 주제는 다른 사람들에 의해 매우 잘 해결되었습니다.

사업을 시작하려면 축적된 경험과 10,000% 세트의 초기 및 극도로 격렬한 최적화(비트맵, 사전 설정 등)를 사용해야 합니다.

알파벳 갈퀴와 실수로 처음부터 시작하는 것은 불가능합니다. "조기 최적화는 악입니다"는 없습니다. 여기서 체스 번호 구현에 대한 극도의 경험이 즉시 필요합니다.

다행스럽게도 공개 도메인에는 많은 기사, 소스 코드 및 자세한 설명이 있습니다. 주제에 대해 읽기 시작하면 도달한 결정의 극한 수준을 즉시 이해하게 될 것입니다.

그래서 나는 또한 문학을 가지고 있으며 Botvinnik은 여전히 종이 형식입니다. 그리고 일부 개발이 있지만 물론 MQL5가 아니라 muLisp에 있습니다.

프로젝트 에 감독자가 필요하지 않다는 것을 일부 지역 영사자들에게 분명히 하고 싶었습니다. 그리고 우리는 모든 기술에 도킹하지 않더라도 협소하게 적용되는 전문가일 수 있지만 그럼에도 불구하고 해당 분야에서 유능한 특정 개발자 팀이 필요합니다. 그리고 우리는 프로젝트가 처음부터 시작하지 않고 약간의 소개를 생략한 후 즉시 시작할 수 있도록 초기에 나머지 팀을 위해 이 모든 것을 철저히 생각하고 준비해야 하는 프로젝트 관리자가 필요합니다. 결국, 그렇지 않으면 사건이 진행되지 않을 것입니다.