MQL5 ve MQL5 Cloud Network'te evrensel matematiksel hesaplamaların ek desteği için ne eklenmelidir? - sayfa 9

 

Evet, oyunlar performansa ve teknolojiye tekme verir. Demir parçasını niteliksel bir seviyeye çektikleri için. (Üniversitede tanıdığım bir profesör, oyunları nedense evrensel bir kötülük olarak görse de :)

işlevlerin evrenselliğine gelince, daha fazla aşamalı uygulama için talimatlar

- hava Durumu tahmini
- bilimsel veri işleme (uzay, nükleer fizik)
- ilaç
- 3D render (para için pratik bir uygulama olarak)

peki, sonra bakarsın ve borsadaki tahmine geçeceğiz ...

not.
Ve UCI ile dediğim gibi MT başvurusu yapabilirim :)

 
sergeev :

Buluttan bahsetmiyorum. bulutun yetenekleri ile her şey açıktır. MT dışında da kullanılabilirler.

ve MT'den bahsediyorum.

Satranç botu yarışmaları MT bazında yapılırsa, ayıplanacak bir şey görmüyorum. Ayrıca, aynı botlar bulutun bilgi işlem kaynaklarını kullanacak.

 

Gerçekten forex oynamayı bırakıp satranç oynayabilir misin? Daha önce iyi çalıştı.

Ama tavlayı tercih ederim. Belki birisi MT5'te tavla programlayacaktır, sonsuza kadar minnettar olacağım.

 
Poker! EPT'yi kıralım!)))
 
pronych :
Poker! EPT'yi kıralım!)))
böyle bir güce gerek yok.
 
Biz sinyallerle meşgulken nöromotor projesini mutlaka hayata geçireceğiz. MT5'te sinir ağları için büyük planlarımız var.

Taahhüt edersek, sonuna kadar getiririz. Örneğin, topluluğu dahil etmek için bir fikir olmasına rağmen, AlgLib tamamen bağımsız olarak uygulandı.

Şimdiye kadar, çok az insanın gerçekten operasor projelerine katılmak ve zamanını boşa harcamak istediği hissi var.
 
Renat :

Şimdiye kadar, çok az insanın gerçekten operasor projelerine katılmak ve zamanını boşa harcamak istediği hissi var.

tecrübesiz. Ekibinizden birini proje için küratör yapmaya söz verdiniz.

ama çoban olmadan koyunlar dağılacak. Bu nedenle, eğer biri topluluk içinde bir şey yaparsa, o zaman yalnızca o, yaptığı işten sorumludur.

 
sergeev :

tecrübesiz. Ekibinizden birini proje için küratör yapmaya söz verdiniz.

ama çoban olmadan koyunlar dağılacak. Bu nedenle, eğer biri topluluk içinde bir şey yaparsa, o zaman yalnızca o, yaptığı işten sorumludur.

Boltolojide deneyimden daha fazlası. Böyle kör olalım, şöyle oturalım vs. vb. Büyükbaba Krylov'un dörtlü adlı masalına göre. Kimse bir şey yapmıyor, yüzü akıllı olan herkes sadece fikirlerini ifade ediyor.

Herkesi bir sopayla teşvik etmek için küratöre gerek yok. Proje yöneticisi ilk kod satırlarını oluşturmalıdır - gelecekteki sınıfların arayüzleri, bundan daha fazla nerede dans edileceği ve çıkmaz yolun nerede olduğu az çok net olacaktır. Ve sonra, bazı proje katılımcıları tam olarak ne yapacağını haklı çıkarır ve potansiyel faaliyeti genel yönle çelişmiyorsa, fikrinin uygulanması ona emanet edilir. Sonra başka bir katılımcı bağlanır. Vb. vb.

Burada, örneğin, boş zaman vardı, burada bir satranç programı için bazı sınıf eskizleri attım:

 //+------------------------------------------------------------------+
//|                                                    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 ;
        }
     }
  }
//+------------------------------------------------------------------+


Artık depoda bir proje oluşturabilir ve buna ek geliştiriciler bağlayabilirsiniz. Ancak orada bir tür görüş ifade etmek isteyenler değil, belirli bir şey yapacak olanlar arasından.

 

Yuri, satranç motorlarıyla bu oldukça açık - konu diğer insanlar tarafından çok iyi işlenmiş.

İşe başlarsanız, o zaman birikmiş deneyimi ve yüzde 10.000'lik bir ilk ve son derece öfkeli optimizasyon setini (bitmap'ler, ön ayarlar, vb.) kullanmanız gerekir.

Alfabetik bir komisyon ve hatalarla sıfırdan başlamak imkansızdır. Hiçbir "erken optimizasyon kötülük değildir". Burada, satranç numaralarının uygulanmasında aşırı deneyime hemen ihtiyaç vardır.

Neyse ki, kamuya açık birçok makale, kaynak kodu ve ayrıntılı açıklama var. Konuyu okumaya başladığınızda, alınan kararların aşırı seviyesini hemen anlayacaksınız.

 
Renat :

Yuri, satranç motorlarıyla bu oldukça açık - konu diğer insanlar tarafından çok iyi işlenmiş.

İşe başlarsanız, o zaman birikmiş deneyimi ve yüzde 10.000'lik bir ilk ve son derece öfkeli optimizasyon setini (bitmap'ler, ön ayarlar, vb.) kullanmanız gerekir.

Alfabetik bir komisyon ve hatalarla sıfırdan başlamak imkansızdır. Hiçbir "erken optimizasyon kötülük değildir". Burada, satranç numaralarının uygulanmasında aşırı deneyime hemen ihtiyaç vardır.

Neyse ki, kamuya açık birçok makale, kaynak kodu ve ayrıntılı açıklama var. Konuyu okumaya başladığınızda, alınan kararların aşırı seviyesini hemen anlayacaksınız.

Yani benim de edebiyatım var, üstelik Botvinnik hala kağıt halinde. Ve bazı gelişmeler var ama tabii ki MQL5'te değil, muLisp'te.

Projelerin gözetmenlere ihtiyacı olmadığını bazı yerel projektörlere açıklamak istedim. Ve tüm teknolojilere hakim olmasalar da, dar uygulamalı uzmanlar bile olabilecek, ancak yine de kendi alanlarında yetkin olan belirli geliştiricilerden oluşan bir ekibe ihtiyacımız var. Ve projenin sıfırdan başlamaması ve bazı giriş bölümlerinden sonra hemen başlatılabilmesi için başlangıçta tüm bunları ekibin geri kalanı için düşünmesi ve hazırlaması gereken bir proje yöneticisine ihtiyacımız var. Sonuçta, aksi takdirde dava ilerlemeyecektir.

Neden: