微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在pygame中获取输入和更新文本?

如何解决如何在pygame中获取输入和更新文本?

我使用 pygame 在 python 中创建了一个数独求解器。当前,当用户点击空格键时,这可以解决板子问题。我想升级游戏,以便用户可以在板上输入数字。我不确定如何获取输入和更新板显示。还有我应该添加的任何其他功能吗?

unsolved_board = [
    [8,0],[0,3,6,7,9,2,5,4,1,8],8,0]
]

def draw_numbers():
    row = 0
    offset = 37
    while row < 9:
        col = 0
        while col < 9:
            output = unsolved_board[row][col]
            n_text = font.render(str(output),True,pg.Color("black"))
            screen.blit(n_text,pg.Vector2((col*80)+offset,(row*80)+offset))
            col += 1
        row += 1

def draw_background():
    screen.fill(pg.Color("white"))
    pg.draw.rect(screen,pg.Color("black"),pg.Rect(15,15,720,720),10)

    i = 1
    while (i*80) < 720:
        if i%3 == 0:
            width = 7
        else:
            width = 3
        pg.draw.line(screen,pg.Vector2((i*80)+15,15),735),width)
        pg.draw.line(screen,pg.Vector2(15,(i*80)+15),pg.Vector2(735,width)
        i+=1

def game_loop():
    for event in pg.event.get():
        if event.type == pg.QUIT:
            sys.exit()
        if event.type == pg.KEYDOWN:
            if event.key == pg.K_SPACE:
                new_board = solve_sudoku(unsolved_board)
        if event.type == pg.MOUSEBUTTONUP:
            pos = pg.mouse.get_pos()
            print(pos)
    
    draw_background()
    draw_numbers()
    pg.display.flip()

def main():
    clock = pg.time.Clock()
    while True:
        clock.tick(FPS)
        game_loop()

if __name__ == "__main__":
    main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。