tenhou-python-bot icon indicating copy to clipboard operation
tenhou-python-bot copied to clipboard

Special melding rules for honitsu/chinitsu

Open bogachev-pa opened this issue 5 years ago • 0 comments

Дефолтное правило у нас сейчас такое, что мы открываемся только, если у нас уменьшается число шантен. Но т.к. мы не умеем считать число шантен для конкретного яку, то для руки, например, 34556778m3p78s77z, возможность открыться на поне якухаев пропускалась, т.к. число шантен она формально не уменьшает (с точки зрения руки в общем виде это ишантен и им же рука и останется после открытия пона драконов, но с точки зрения хоницу это 3 шантена, а после открытия пона она будет иметь 2 шантена на хоницу). Чтобы покрыть большую часть таких кейсов, сделан квикфикс. Однако по-хорошему, мы должны сделать более умную логику. Например, разбросать все тайлы невстраивающихся мастей по изолированным, а дальше смотреть:

  1. Уменьшает ли открытие число шантен.
  2. Даже если не уменьшает число шантен, посмотреть, увеличивает ли оно укеире при том же числе шантен.

Проверить можно на следующих примерах: 1134556m3p78s777z надо брать пон на 1m для хоницу 1134556778m3p78s надо брать пон на 1m для чиницу

Если у нас все еще есть тайлы других мастей, но пункт 2 всегда будет полезным открытием. В принципе, второе можно распространить и на ситуацию, когда у нас нет тайлов других мастей - т.е. пробовать делать открытие, которое удлиняет форму. Однако этот случай посложнее и, возможно, стоит его пока отложить.

bogachev-pa avatar Sep 03 '18 11:09 bogachev-pa