gpt4 book ai didi

python - 我如何跟踪用户在棋盘上的点击?

转载 作者:行者123 更新时间:2023-12-04 09:00:29 27 4
gpt4 key购买 nike

我正在使用 Python 3.7.4。我使用 Pycharm 2020 社区作为我的 IDE。我使用 Pygame 1.9.6 作为我的游戏解释器。
我想知道如何跟踪棋盘上的玩家点击。我在想它应该在我的 main() 运行操作中,但它在哪里?
所以在棋盘上它是一个 8x8 的棋盘,所以 64 个方格。就像说他们单击正方形一次以选择上面有一块的正方形,然后如果正方形是空的,则单击另一个正方形将所述一块移动到另一个正方形。我棋盘上的一个空方格是:“01”。就像我需要某种方式来获得板的尺寸,比如一行或一列?
我有板的尺寸。

WIDTH = HEIGHT = 512  # 400 is another option
DIMENSION = 8 # dimensions of a chess board are 8x8
SQ_SIZE = HEIGHT // DIMENSION
MAX_FPS = 15 # for animations later on
IMAGES = {}

def main():
p.init()
screen = p.display.set_mode((WIDTH, HEIGHT))
clock = p.time.Clock()
screen.fill(p.Color("white"))
gs = ChessEngine.GameState()
loadImages() # only do this once, before the while loop
running = True
while running:
for e in p.event.get():
if e.type == p.QUIT:
running = False

drawGameState(screen, gs)
clock.tick(MAX_FPS)
p.display.flip()
我以前从未做过鼠标点击,所以我想知道我怎么能做到这一点?

最佳答案

单击字段的索引可以通过 // 来计算(楼层划分)运算符。获取 MOUSEBUTTONDOWN事件(见 pygame.event )并将鼠标位置坐标除以 SQ_SIZE :

def main():
# [...]

while running:
for e in p.event.get():
if e.type == p.QUIT:
running = False

if e.type == p.MOUSEBUTTONDOWN:
mousePos = e.pos
column, row = mousePos[0] // SQ_SIZE, mousePos[1] // SQ_SIZE
columnName, rowName = chr(ord('a') + column), str(row+1)
print("clicked at " + columnName + rowName)

关于python - 我如何跟踪用户在棋盘上的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63584252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com