cdsc
unknown
c_cpp
3 years ago
1.6 kB
5
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...