Я хочу сделать в Python непослушные крестики (или крестики-нолики в некоторых местах). Здесь - мой код.
import curses
board = {"1A": " ", "2A": " ", "3A": " ", "1B": " ", "2B": " ", "3B": " ",
"1C": " ", "2C": " ", "3C": " "}
s = curses.initscr()
sh, sw = s.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
curses.mousemask(1)
w.nodelay(False)
def printboard():
w.addstr(sh // 2 - 2, sw // 2 - 4, "{} | {} | {}".format(board.get("1A"), board.get("2A"), board.get("3A")))
w.hline(sh // 2 - 1, sw // 2 - 4, "-", 9)
w.addstr(sh // 2, sw // 2 - 4, "{} | {} | {}".format(board.get("1B"), board.get("2B"), board.get("3B")))
w.hline(sh // 2 + 1, sw // 2 - 4, "-", 9)
w.addstr(sh // 2 + 2, sw // 2 - 4, "{} | {} | {}".format(board.get("1C"), board.get("2C"), board.get("3C")))
while True:
printboard()
w.addstr(sh // 2 + 4, 1, "Naught's turn. Click on where you would like to place your naught.")
w.refresh()
event = w.getch()
if event == curses.KEY_MOUSE:
_, mousex, mousey, _, _ = curses.getmouse()
print(mousex, mousey)
w.refresh()
Я прочитал документы, и код выглядит правильно.Когда я запускаю его в терминале, появляется доска, и она печатает текст.Но когда я щелкаю левой кнопкой мыши, программа ничего не делает.Я не знаю, что с ним не так.
РЕДАКТИРОВАТЬ:
Узнайте, почему это не работает.Я просто добавил curses.mousemask(curses.BUTTON1_CLICKED)
до w.nodelay(False)
и w.keypad(True)
после w.nodelay(False)
.