Покерный бот

Тема в разделе "WASM.WIN32", создана пользователем Naruto, 17 янв 2011.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    GetDIBits
    GetBitmapBits

    что-то из этого
     
  2. Naruto

    Naruto New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    28
    Всё спасибо разобрался!
    Если кому интересно вот два рабочих кода(с разными способами получения указателей на массив пикселей):
    Работают в отдельных потоках, внутри цикл.
    1)
    Код (Text):
    1. EventStop:boolean;
    2. mas2:array [0..2600] of dword;
    3. WHandle,DC,CCDC:DWORD;             //глобальные переменные
    4.  
    5. Function TRD:boolean;
    6. {********* Функция треда (потока) ***************************}
    7. type mas=array [0..0] of dword;
    8. var BInfo: tagBITMAPINFO;
    9.     i,j:dword;
    10.     bmp:Hbitmap;
    11.     Mbp: Pointer; //будет судержать указатель на массив пикселей
    12. begin
    13. DC:=GetDCEx(WHandle,0,DCX_WINDOW);//дескриптор контекста окна
    14. CCDC:=CreateCompatibleDC(DC); //дескриптор контекста устройства в памяти
    15.  
    16.   BInfo.bmiHeader.biSize := sizeof(tagBITMAPINFOHEADER);
    17.   BInfo.bmiHeader.biWidth := 50;
    18.   BInfo.bmiHeader.biHeight := 50;
    19.   BInfo.bmiHeader.biPlanes := 1;
    20.   BInfo.bmiHeader.biBitCount := 32;
    21.   BInfo.bmiHeader.biCompression := BI_RGB;
    22.  
    23.   bmp:= CreateDIBSection(DC, BInfo, DIB_RGB_COLORS, Mbp, 0, 0);
    24.  
    25.   SelectObject(CCDC,bmp);
    26.  
    27. repeat
    28. //sleep(100);
    29. bitblt(CCDC,0,0,50,50,DC,0,0, SRCCOPY);
    30.  
    31. for i := 0 to 49 do
    32. for j := 0 to 49 do
    33. mas2[50*(50-j)+i]:=mas(Mbp^)[50*(50-j)+i];
    34. WaitForSingleObject(hEventStart,INFINITE);
    35. until EventStop=true;
    36. DeleteObject(bmp);
    37. ReleaseDC(WHandle,DC);
    38. DeleteDC(CCDC);
    39. end;
    Для меня первый предпочтительней

    2)
    Код (Text):
    1. Function TRD2:boolean;
    2. {********* Функция треда (потока) ***************************}
    3. var BInfo: tagBITMAPINFO;
    4.     i,j:dword;
    5.     bmp:Hbitmap;
    6.     mas3:array [0..2600] of dword;//массив будет судержать пиксели
    7. begin
    8.   BInfo.bmiHeader.biSize := sizeof(tagBITMAPINFOHEADER);
    9.   BInfo.bmiHeader.biWidth := 50;
    10.   BInfo.bmiHeader.biHeight := 50;
    11.   BInfo.bmiHeader.biPlanes := 1;
    12.   BInfo.bmiHeader.biBitCount := 32;
    13.   BInfo.bmiHeader.biCompression := BI_RGB;
    14. DC:=GetDCEx(WHandle,0,DCX_WINDOW);
    15. CCDC:=CreateCompatibleDC(DC);
    16. bmp:=CreateCompatibleBitmap(DC,50,50);
    17. SelectObject(CCDC,bmp);
    18. repeat
    19. //sleep(100);
    20. bitblt(CCDC,0,0,50,50,DC,0,0, SRCCOPY);
    21. GetDIBits(CCDC,bmp,0,49,@mas3,BInfo,DIB_RGB_COLORS);
    22. for i := 0 to 49 do
    23. for j := 0 to 49 do
    24. mas2[50*(50-j)+i]:=mas3[50*(50-j)+i];
    25. WaitForSingleObject(hEventStart,INFINITE);
    26. until EventStop=true;
    27. DeleteObject(Bmp);
    28. ReleaseDC(WHandle,DC);
    29. DeleteDC(CCDC);
    30. end;
     
  3. Naruto

    Naruto New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    28
    Как можно рассчитать вероятность выигрыша на флопе???
    Формулу какую нить кто знает??
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    калькуляторы оддсов, в которых я рылся, формулы не считали. Просто брали коэффициенты из табличек, забитых хардкодом или в ини-файлах. Комбинаций в принципе не астрономическое количество, чтобы считать формулами. можно и таблички позабивать.
     
  5. EOT

    EOT New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2010
    Сообщения:
    181
    WIN32, расплатился тоже со всеми? :)
     
  6. Naruto

    Naruto New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    28
    Кто знает как можно в винде расширить рабочий стол на несколько мониторов и как с ними работать (какими апи функциями?) .

    Чтоб окна одного приложения были на разных мониторах но на одном рабочем сттоле?
    Подскажите пожалуйста

    Или как можно реализовать управления несколькимх окон???

    А как можно создать виртуальный монитор и расширить на него рабочий стол ??????
     
  7. maksimmaltcev

    maksimmaltcev Максим

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1
    Адрес:
    Украина
    а как можно статистику собрать?
     
  8. Naruto

    Naruto New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    28
    А кто знает что за боты всякие в сети есть например "Holdem bot 2010", они рабочие или эт какой нить лохотрон ???
     
  9. Naruto

    Naruto New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2010
    Сообщения:
    28
    А как можно сделать виртуальный монитор, то есть так чтоб он как бы был (можно на него окна перетаскивать и тд.)
    а фактическое его присутствие не обязательно (т.е. ообще нету) ?
    Как это все сделать програмно в Delphi?????