cdsc
unknown
c_cpp
3 years ago
1.6 kB
4
Indexable
#include <iostream> #include <string> #include <ncurses.h> using namespace std; class Arrows { private: string sequence; int cursor; public: Arrows(string seq) { sequence = seq; cursor = 0; } void moveUp() { if (cursor > 0) { cursor--; } } void moveDown() { if (cursor < 3) { cursor++; } } void moveLeft() { if (cursor > 0) { cursor--; } } void moveRight() { if (cursor < 3) { cursor++; } } void setChar(char c) { sequence[cursor] = c; } char getChar() { return sequence[cursor]; } string getSequence() { return sequence; } }; int main() { initscr(); // inicjalizacja biblioteki ncurses Arrows arrows("ABCD"); char ch; while ((ch = getch()) != 'q') { // pętla wykonywana do momentu naciśnięcia klawisza 'q' switch (ch) { case KEY_UP: arrows.moveUp(); break; case KEY_DOWN: arrows.moveDown(); break; case KEY_LEFT: arrows.moveLeft(); break; case KEY_RIGHT: arrows.moveRight(); break; default: arrows.setChar(ch); // jeśli naciśnięty został inny klawisz, zmieniamy znak pod kursorem break; } cout << arrows.getSequence() << endl; } endwin(); // kończymy pracę z biblioteką ncursed return 0; }
Editor is loading...