Ajedrez desde Python.

Juan Carlos Sey seymurx en gmail.com
Mar Mayo 29 23:06:52 CEST 2007


Encontre este codigo.

*Example: Using the popen2 module to control gnuchess*

 <http://effbot.org/librarybook/popen2-example-2.py>import popen2
import string

class Chess:
      "Interface class for chesstool-compatible programs"

      def __init__(self, engine = "gnuchessc"):
          self.fin, self.fout = popen2.popen2(engine)
        s = self.fin.readline()
        if s != "Chess\n":
              raise IOError, "incompatible chess program"

    def move(self, move):
          self.fout.write(move + "\n")
          self.fout.flush()
        my = self.fin.readline()
        if my == "Illegal move":
              raise ValueError, "illegal move"
        his = self.fin.readline()
        return string.split(his)[2]

    def quit(self):
          self.fout.write("quit\n")
          self.fout.flush()

#
# play a few moves

g = Chess()

print g.move("a2a4")
print g.move("b2b3")

g.quit()

b8c6
e7e5

http://effbot.org/librarybook/popen2.htm

Es para controlar un motor de ajedrez, en concreto el GNUCHESS, no he
conseguido hacerlo funcionar en Windows
supongo que estara pensado para el motor de linux.

Bueno, la verdad es que me gustaria usarlo con otro motor, el Crafty,
usa el mismo protocolo habitualmente los usan
los interfaces Winboard.

Persigo controlar el motor desde Python como principio para
desarrollar una GUI, nuestro compañero "Gabriel Genellina"
me sugirio usar "subprocess" he incluso me facilito codigo pero no lo consigo.

Nota: como se responde en el hilo? desde el correo veo vuestras
respuestas pero no se
como responder en el mismo tema.

Gracias.




Más información sobre la lista de distribución Python-es