Also, ich lehre mich etwas Golang, indem ich ein einfaches Ressourcen-Management-Spiel mit Ncurses. Ich verwende this library, um Golang mit ncurses zu verbinden.Akzeptieren nur alphanumerische Zeichen in Golang und ncurses
Ich habe ein einfaches Texteingabefeld erstellt, das jeweils ein Zeichen aufnimmt, anzeigt und dann zu einer Zeichenfolge hinzufügt, die die Antwort des Benutzers enthält. Hier ist, wie es aussieht:
// 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)
}
jedoch die Pfeil und Funktionstasten scheinen, als keycodes bereits mit den normalen a-zA-Z-Zeichen assoziiert kommen zu werden. Zum Beispiel, Pfeil nach rechts kommt als 67 und F1 als 80. Irgendwelche Ideen, was ich hier falsch mache, oder wenn es einen besseren Ansatz gibt, um alphanumerics durch Ncurses aufzunehmen? Ich möchte ncurses Felder und Klassen so gut wie möglich meiden, denn hier geht es darum, Golang zu lernen, nicht ncurses. Vielen Dank!
Ja, das war es genau. Vielen Dank! –