Les dejo un script en bash que automatiza algunas acciones en una mesa de pokerstars.
Basicamente hace lo siguiente; cada vez que aparece el boton "No ir", es decir cada vez que nos toca jugar, reconoce las cartas de la mano y si alguna es A o K pulsa el boton "Subir" sino pulsa el boton "No ir".
Deberia funcionar bien en cualquier distro o gestor de ventanas ajustando los valores de las geometrias y de las coordenadas ($GEO_* y $POS_* en el script).
Con los mismos comandos del script y un poco de programacion pueden hacerse muchas cosas mas, como por ejemplo elegir rango de manos y de posicion preflop, conocer el color de cartas, etc.
Es necesario tener instalado los siguientes paquetes/programas:
- xdotool (permite simular entradas de teclado, actividad del mouse, etc)
- gocr (reconocedor de texto en imagenes)
- imagemagick ( procesamiento de imagenes, generalmente instalado por defecto en las distros)
Estoy corriendo Pokerstars con el emulador Wine en la distro Slackware 14.1 y el gestor de ventanas XFCE.
Cualquier duda pregunten. Salute
#############################################################################
#!/bin/bash
# geometrias "ancho"x"alto"+"posicion x"+"posicion y"
GEO_MANO=100x30+331+338
GEO_NOIR=65x25+411+499
# coordenadas
POS_SUBIR='714 512'
POS_NOIR='441 512'
# archivos de imagenes
MESA=./mesa.mpc
MANO=./mano.jpg
NOIR=./noir.jpg
# id de ventana de la mesa
WID=$(xwininfo -tree -root | grep PokerStars | grep -v "has no name" |
grep -v Lobby | cut -d ' ' -f 9)
while true; do
echo -n "*"
# trae a primer plano la ventana
xdotool windowactivate --sync $WID
# hace una captura de la ventana y la guarda
import -w $WID $MESA
# corta geometria
convert $MESA -crop $GEO_NOIR $NOIR
# reconoce texto en imagen
OCR=$(gocr $NOIR)
# si $OCR es igual a "No ir", nuestro turno para jugar
if [ "$OCR" == "No ir" ]; then
convert $MESA -crop $GEO_MANO $MANO
OCR=$(gocr -u "" -C 0-9AKQJ -l 60 -s 5 -a 85 $MANO)
# si hay un as o un rey en la mano
if [[ "$OCR" == *[AK]* ]]; then
# entonces pulsa boton subir
xdotool mousemove --window $WID $POS_SUBIR click 1
echo "$OCR-Subir."
else
# sino pulsa boton no ir
xdotool mousemove --window $WID $POS_NOIR click 1
echo "$OCR-No ir."
fi
fi
# espera 5 segundos
sleep 5
done
#############################################################################
Basicamente hace lo siguiente; cada vez que aparece el boton "No ir", es decir cada vez que nos toca jugar, reconoce las cartas de la mano y si alguna es A o K pulsa el boton "Subir" sino pulsa el boton "No ir".
Deberia funcionar bien en cualquier distro o gestor de ventanas ajustando los valores de las geometrias y de las coordenadas ($GEO_* y $POS_* en el script).
Con los mismos comandos del script y un poco de programacion pueden hacerse muchas cosas mas, como por ejemplo elegir rango de manos y de posicion preflop, conocer el color de cartas, etc.
Es necesario tener instalado los siguientes paquetes/programas:
- xdotool (permite simular entradas de teclado, actividad del mouse, etc)
- gocr (reconocedor de texto en imagenes)
- imagemagick ( procesamiento de imagenes, generalmente instalado por defecto en las distros)
Estoy corriendo Pokerstars con el emulador Wine en la distro Slackware 14.1 y el gestor de ventanas XFCE.
Cualquier duda pregunten. Salute
#############################################################################
#!/bin/bash
# geometrias "ancho"x"alto"+"posicion x"+"posicion y"
GEO_MANO=100x30+331+338
GEO_NOIR=65x25+411+499
# coordenadas
POS_SUBIR='714 512'
POS_NOIR='441 512'
# archivos de imagenes
MESA=./mesa.mpc
MANO=./mano.jpg
NOIR=./noir.jpg
# id de ventana de la mesa
WID=$(xwininfo -tree -root | grep PokerStars | grep -v "has no name" |
grep -v Lobby | cut -d ' ' -f 9)
while true; do
echo -n "*"
# trae a primer plano la ventana
xdotool windowactivate --sync $WID
# hace una captura de la ventana y la guarda
import -w $WID $MESA
# corta geometria
convert $MESA -crop $GEO_NOIR $NOIR
# reconoce texto en imagen
OCR=$(gocr $NOIR)
# si $OCR es igual a "No ir", nuestro turno para jugar
if [ "$OCR" == "No ir" ]; then
convert $MESA -crop $GEO_MANO $MANO
OCR=$(gocr -u "" -C 0-9AKQJ -l 60 -s 5 -a 85 $MANO)
# si hay un as o un rey en la mano
if [[ "$OCR" == *[AK]* ]]; then
# entonces pulsa boton subir
xdotool mousemove --window $WID $POS_SUBIR click 1
echo "$OCR-Subir."
else
# sino pulsa boton no ir
xdotool mousemove --window $WID $POS_NOIR click 1
echo "$OCR-No ir."
fi
fi
# espera 5 segundos
sleep 5
done
#############################################################################