如何在国际象棋程序中移动棋子
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
作为一名初学者,我想说我是编程新手,我不是计算机科学专业的学生,所以如果我的代码让你感到畏缩,我很抱歉,我最近有一些 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