如何在国际象棋程序中移动棋子

How to move pieces in chess program

作为一名初学者,我想说我是编程新手,我不是计算机科学专业的学生,​​所以如果我的代码让你感到畏缩,我很抱歉,我最近有一些 python 类 并且很喜欢它们,所以我想加深一点,所以我觉得做一个简单的国际象棋游戏会很有趣。

如你所想,我正在使用 pygame。

至于现在我“画”了一个棋盘并且我将棋子放到位,我的想法是我会得到每次点击的坐标,如果坐标与 blitt 图像相同(或在范围内)第二次点击时变量会更新,我怎样才能让系统识别“第一次”和“第二次”点击。

import pygame as pg
import sys
pg.init()
schermo = pg.display.set_mode((640,540))
def coordinate():
    while True:
        for event in pg.event.get():
            if event.type == pg.QUIT:
                pg.quit()
                sys.exit()
            if event.type == pg.MOUSEBUTTONUP:
                mx1, my1 = pg.mouse.get_pos()
                print (mx1,my1)
                return mx1,my1
    pg.display.update()

这就是我获取坐标的方式

ctorrensx = (53,53)

[...遗漏]

def move():
    result = coordinate()
    global ctorrensx
        if result == ctorrensx:
            ctorrensx = (200,200)

这是我对移动功能的第一个想法,ctorrensx 是我想尝试的一个例子,它们是左边黑车的坐标,一旦我点击它我想让它移动到坐标( 200,200) 但它没有发生。

这是我第一次使用堆栈溢出,所以我希望我没有对我的问题造成太多混淆。 谢谢大家

您可以设置一个标志来确定点击是第一次还是第二次。 例如:

firstClick = True

while True:
    for event in pg.event.get():
            if event.type == pg.MOUSEBUTTONDOWN:
                if(firstClick):
                    firstClick = False
                    #Code for first click
                else:
                    #code for second click
                    firstClick = True #resets the flag