eugeneyakub/h_evaluator — Issue #1: please make it as library
Author: lazarev
Created: 2012-03-06 07:38:23+00:00
State: open

//
// holdem.h
// ViewsPlayground
//
// Created by Андрей Лазарев on 03.03.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#ifndef ViewsPlayground_holdem_h
#define ViewsPlayground_holdem_h

/*
результат работы:
winOdds -- вероятность выйгрыша против игроков
tieOdds -- вероятность нечьих против игроков
winCount -- количество побед
tieCount -- количнство нечьих
globalCount -- сколько всего итераций

*/
typedef struct resultGame{
float winOdds;
float tieOdds;
int winCount;
int tieCount;
int globalCount;
} resultGame;

/*
симуляция методом Монте-Карло.
1. Случайно создаем карты на столе (3-5 в зависимости от фазы) и начальные карты противникам (2)
2. Вычисляем качество руки игрока и противниковс помощью handEval
3. Если у игрока рука лучше, то winCount++; если все равны, то tieCount++
4. повторяем шаг 1 globalCount число раз

*/
resultGame monteCarloSimulation(int cards[], int l, int ph, int playerCount, int monteCarloMaxIteration);

typedef struct winnerData{
int number; //номер победителя
int handValue; //значение его руки
int handType;
} winnerData;

//определяет победителя среди множества рук
winnerData findWinner(int cards[][7], int playerCount, int cardCount);

typedef struct resultGetHand{
float getOdds[9];
int handType;
} resultGetHand;

resultGetHand monteCarloSimulation_getHand(int cards[], int l, int ph, int playerCount, int monteCarloMaxIteration);

#endif