当我使用时
ch = wnd.getch()
在Python下的curses
中,我可以捕获wnd.getch
返回10的回车键。但是当我用getch
替换get_wch
时它不起作用。 get_wch
是否有任何问题?
答案 0 :(得分:0)
函数//global variables
guessX = document.querySelector("#guess-x-input"),
guessY = document.querySelector("#guess-y-input"),
boardSize, /*defined by user. must be between 7 and 12 */
playerGuess = [],
allPlayerGuesses = [],
fireButton.addEventListener("click", function(){
var sameGuess = false,
if (guessX.value === undefined || guessX.value < 1 || guessX.value > boardSize || guessY.value === undefined || guessY.value < 1 || guessY.value > boardSize ) {
alert("Wrong coordinates!");
} else if (allPlayerGuesses.length === 0) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
allPlayerGuesses.push(playerGuess);
} else if (allPlayerGuesses.length !== 0) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
for (var i = 0; i < allPlayerGuesses.length; i++) {
if (playerGuess[0] === allPlayerGuesses[i][0] && playerGuess[1] === allPlayerGuesses[i][1] ) {
alert("Coordinate already uncovered. Select another!");
sameGuess = true;
}
}
if (!sameGuess) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
allPlayerGuesses.push(playerGuess);
}
}
if (board[playerGuess[0]][playerGuess[1]] === "bp") {
document.querySelector(".ship-cell-" + playerGuess[0] + "-" + playerGuess[1]).classList.remove("hid");
} else {
document.querySelector(".miss-cell-" + playerGuess[0] + "-" + playerGuess[1]).classList.remove("hid");
}
});
和getch
具有不同的接口:
get_wch
会返回字符 getch
返回状态代码,通过作为参数传递的指针设置宽字符。它们使用不同的接口,因为特殊键(例如get_wch
)可以用KEY_HOME
作为超出“普通”(8位)字符范围的“额外”字符来处理。你不能用宽字符做到这一点(不是那么容易,因为宽字符范围的末尾不太明确),所以getch
使用状态代码来判断它通过指针设置的值是否是宽字符或特殊的钥匙。
虽然手册页足够清楚,但是在将该功能添加到curses包装器时,python开发人员并没有注意到这种区别。 Python文档中的 description 对应get_wch
而不是getch
:
Issues #15785: curses.get_wch() returns keypad codes incorrectly
错误报告表明修复已应用于python 3.4 。
16.10. curses — Terminal handling for character-cell displays
window.get_wch([y, x])
获得广泛的性格。返回大多数键的字符,或功能键,小键盘键和其他特殊键的整数。
版本3.3中的新内容。
进一步阅读: