国际象棋棋子输入-如何使我的输入与国际象棋程序交互?

时间:2019-05-06 18:14:33

标签: python user-interface chess touchscreen

我正在尝试在python中创建触摸屏界面,在其中打入代数棋步(A1,C4等)以进行我的动作,然后以代数方式(D7,D5)读取计算机的动作,以便可以响应并直到游戏结束。到目前为止,我已经为按钮编写了代码,并且可以用python打印出合法的四个字符的动作。我的问题是如何开始使python程序与国际象棋程序进行交互,而该象棋程序将通过python触摸输入接收我的动作,并以可以在屏幕上显示的动作进行响应。我不是要构建带有棋子和正方形的棋盘图形用户界面,我只是想要4位数字的输入和输出,这是为了在触摸屏旁边的桌子上玩一个实际的棋盘。

我花了我很长时间才在python中使用tkinter来构建此gui。我的一些Google搜索使我相信“​​子过程”模块可能有用,但是对我来说太复杂了。

EDIT 是否可以将命令从我的python程序发送到unix终端,以便每次我打印移动时它都会在终端中显示并执行代替?这样一来,我就可以使用python gui按钮用食指来下棋。

import tkinter as tk
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
total_move = str("")

def write_A():
    global total_move
    while len(total_move) < 4:
        total_move = total_move + ("A")
        break
    if len(total_move) == 4:
        print (total_move)
        total_move = str("")

def write_B():
    global total_move
    while len(total_move) < 4:
        total_move = total_move + ("B")
        break
    if len(total_move) == 4:
        print (total_move)
        total_move = str("")

def write_C():
    global total_move
        while len(total_move) < 4:
        total_move = total_move + ("C")
        break
    if len(total_move) == 4:
        print (total_move)
        total_move = str("")


def write_1():
    global total_move
    while len(total_move) < 4:
        total_move = total_move + ("1")
        break
    if len(total_move) == 4:
        print (total_move)
        total_move = str("")


button1 = tk.Button(frame, 
                   text="A", 
                   fg="red", height =10, width = 20,
                   command=write_A)
button1.grid(row = 0, column = 0)

button2 = tk.Button(frame,
                   text="B", height =10, width = 20,
                   command=write_B)
button2.grid(row = 0, column = 1)

button3 = tk.Button(frame,
                   text="C", height =10, width = 20,
                   command=write_C)
button3.grid(row = 0, column = 2)

button9 = tk.Button(frame,
                   text="1", height =10, width = 20, 
                   command=write_1)
button9.grid(row = 1, column = 0)



root.mainloop()

我想使用自己的gui下棋,到目前为止,我的gui看起来还不错,但是还不能下棋,因为它只在python shell中打印我的动作,而没有与国际象棋程序进行任何交互。

0 个答案:

没有答案