我正在尝试在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中打印我的动作,而没有与国际象棋程序进行任何交互。