したがって、私はncursesを使って簡単なリソース管理ゲームを作ってGolangを教えています。私はthis libraryを使ってGolangとncursesを接続しています。Golangとncursesの英数字のみを受け入れる
私は、一度に1文字ずつ取り込んで表示し、それをユーザーの応答を構成する文字列に追加する単純なテキスト入力パネルを作成しました。ここでは次のようになります。
// Accept characters, printing them until end
ch := window.GetChar()
kstr := gc.KeyString(ch)
response := ""
cur := 0
for kstr != "enter" {
// Diagnostic print to get key code of current character
window.Move(0,0)
window.ClearToEOL()
window.MovePrint(0, 0, ch)
// If its a backspace or delete, remove a character
// Otherwise as long as its a regular character add it
if ((ch == 127 || ch == 8) && cur != 0){
cur--
response = response[:len(response)-1]
window.MovePrint(y, (x + cur), " ")
} else if (ch >= 33 && ch <= 122 && cur <= 52) {
window.MovePrint(y, (x + cur), kstr)
response = response + kstr
cur++
}
// Get next character
ch = window.GetChar()
kstr = gc.KeyString(ch)
}
しかし、矢印キーとファンクションキーは、すでに通常の-ZA-Zの文字に関連付けられたキーコードとして上がってくるように見えます。たとえば、右矢印は67、F1は80として表示されます。ここで間違っているアイデアや、ncursesを使用して英数字を入力する方が良い方法はありますか? Ncursesのフィールドやクラスを可能な限り避けたいのですが、ここでのポイントはncursesではなくGolangを学ぶことです。ありがとう!
うん、それはまさにそれだった。本当にありがとう! –