Awal yang Sederhana – Mac Poker Bot

Ini dimulai sebagai percobaan. Saya ingin melihat betapa sulitnya membangun sistem yang dapat mengikuti permainan poker di layar, dan memahami setiap langkah permainan.

Saya telah merancang hampir setiap komponen percobaan ini sedinamis mungkin, dengan tujuan jangka panjang menjadi sistem poker lengkap yang dapat dengan mudah disesuaikan kembali untuk antarmuka Texas HoldEm yang berbeda dengan kerja minimal dan lebih disukai tanpa mengkompilasi ulang seluruh proyek .

Untuk memulainya, saya memutuskan untuk menggunakan Texas HoldEm Poker berbasis facebook yang dijalankan oleh Zynga. Ini gratis untuk dimainkan, semua uang permainan adalah uang gratis (kecuali Anda membuat pilihan untuk membeli lebih banyak chip dari Zynga), dan itu harus menyediakan sistem awal yang andal untuk menguji keefektifan sistem ini di lingkungan nyata.

Karena sistem ini dirancang untuk berjalan di macbook pro pribadi saya, API dibuat dengan berbagai komponen yang ditulis dalam C, C++, atau Objective-C; tergantung pada apakah API pihak ketiga digunakan.

Berbagai fitur antarmuka dapat digunakan untuk menentukan status permainan. Status pemain telah dibagi menjadi status berikut:

  • kPlayerStateInLobby,
  • kPlayerStateMenunggu Kursi,
  • kPlayerStateSeated,
  • kPlayerStateMenungguTangan,
  • kPlayerStateMenungguUntukTurn,
  • kPlayerStateTurn,
  • kPlayerStateTidak diketahui

Masing-masing status ini adalah kunci bagi API untuk memahami apa yang dibutuhkannya. Menentukan dengan andal masing-masing ini juga memiliki sejumlah tantangan yang terkait. Ini tentu bukan tidak mungkin, tetapi tidak selalu dapat diandalkan. Seiring waktu, metode yang mendorong alur kerja ini akan meningkat, saat ini tujuannya adalah menyelesaikan bukti konsep hingga menjadi bot bingo semi-otomatis. Setelah selesai, pekerjaan akan berlanjut ke proses pengambilan keputusan yang lebih maju sampai ke tahap permainan.

Apa itu bot bingo, dalam konteks poker HoldEm? Lihat utas ini:

http://pokerbot.forumotion.com/t211-pokerman-bingo

Ini adalah bot poker yang relatif “sederhana” yang mengambil kartu saku yang memiliki kemungkinan menang lebih tinggi, dan memainkan taktik malas untuk melakukan all-in di tahap pra-gagal permainan. Itu tidak selalu dapat diandalkan, tetapi dapat membawa hasil yang signifikan dalam jangka panjang karena probabilitas yang terlibat. Tidak hanya memiliki potensi hasil yang signifikan dengan bermain dengan odds tertinggi, tetapi juga paling mudah untuk diprogram, karena kita hanya perlu memeriksa kartu saku dan probabilitas yang terlibat sebelum melakukan all-in atau fold.

Bentuk paling sederhana menggunakan kartu saku saat ini dalam proses pengambilan keputusan, dan berlaku all-in ketika kartu tertentu ditemukan. Dari percobaan sebelumnya dengan bot AutoIt untuk windows, ini adalah kartu saku yang ingin saya coba (karena mereka telah membawa hasil untuk saya di masa lalu): AA KK QQ JJ AJ AK TT 99 88 77 AQ KQ.

Dalam keadaan bot poker saya untuk mac saat ini, ini relatif mudah untuk diperiksa:

NSString *Kartu Saku = diri sendiri.meja poker.pemainku.dapatkanPocketCards;

NSLog(@”mendapat kartu saku: %@”,Kartu Saku);

NSString *allInCardsStr = @ ”AA KK QQ JJ AJ AK TT 99 88 77 AQ KQ”;

NSset *allInCardsSet = [NSSet setWithArray:[allInCardsStr componentsSeparatedByString:@” “]];

NSLog(@”memeriksa apakah kartu (%@) ditemukan di set: %@”,pocketCards, allInCardsStr);

bool mustAllIn = [allInCardsSet containsObject:pocketCards];

Jika kecocokan ditemukan, bot akan masuk semua.

Dalam satu contoh, hasilnya sangat menggembirakan, tetapi kumpulan datanya terlalu kecil untuk menjadi signifikan:

bingoSederhana

Metrik “putaran dimainkan” belum akurat, tetapi relatif mendekati jumlah tangan yang sebenarnya dimainkan. Dengan asumsi jumlahnya akurat, bot memainkan 12 tangan di tirai $ 2/4k dan menghasilkan untung $ 4,6 juta. Secara teknis itu mungkin satu atau dua kemenangan yang benar-benar beruntung, atau beberapa gabungan. Bagaimanapun, hasil adalah hasil, dan tanda-tanda kemajuan adalah motivasi untuk terus menggali lebih jauh ke dalam tantangan ini.

Bentuk bingo-botting ini tidak cukup andal untuk selera saya. Mengapa? Ini menggunakan kartu saku yang telah ditentukan daripada peluang nyata. Probabilitas menang bervariasi tidak hanya tergantung pada kartu di tangan Anda, tetapi juga jumlah pemain yang terlibat. Pengenalan preflop semacam ini tidak memperhitungkan itu. Posting berikutnya akan membahas bagaimana saya mengatasinya.

Author: info

Leave a Reply

Your email address will not be published.