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

时间:2020-07-18 16:44:10

标签: python chess

作为一个前提,我想说我是编程的新手,而且我不是计算机科学专业的学生,​​所以对不起,如果我的代码让您畏缩,我最近有一些python类并且很喜欢我想加深一点,所以我觉得做一个简单的象棋游戏会很有趣。

您可以想象我正在使用pygame。

就目前而言,我“画出”一个棋盘,然后将棋子涂抹在适当的位置,我的想法是,如果坐标与该被涂抹的图像的变量相同(或在范围内),我将获得每次点击的坐标会随着第二次点击而更新,我该如何进行设置,以便系统识别“第一”和“第二”点击。

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)

[... omissis]

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

这是我关于移动功能的第一个想法,ctorrensx是我要尝试的一个示例,它们是左黑色车的坐标,一旦我单击它,我希望它移动到坐标(200,200)却没有发生。

这是我第一次使用堆栈溢出,所以我希望我不要对我的问题造成太大的困惑。 谢谢大家。

1 个答案:

答案 0 :(得分:0)

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

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