/* SE PINTA UNA "O" Y SE MUEVE CON LAS TECLAS DE FLECHAS */ /* SE ADAPTA A LAS DIMENSIONES DE LA VENTANA USANDO "LINES" Y "COLS" YA DEFINIDAS POR NCURSES LINES = RENGLONES COLS = COLUMNAS */ #include <stdio.h> #include <stdlib.h> #include <curses.h> void IniVideo( void ); void Exit( void ); void Ciclo( void ); #define DIM 200 // 200 RENGLONES DE 200 LETRAS CADA UNO #define RENG 20 // 20 RENGLONES DE ALTO #define COLS 80 // 80 LETRAS POR RENGLON WINDOW *win; int Ren = 0, Col = 0; // POSICION INICIAL DEL CURSOR EN LA VENTANA void IniVideo( void ) { win=initscr(); clear(); refresh(); cbreak(); keypad(win, TRUE); start_color( ); init_pair(1, COLOR_BLUE, COLOR_YELLOW); init_pair(2, COLOR_BLUE, COLOR_YELLOW); bkgd(COLOR_PAIR( 2 )); attron(COLOR_PAIR( 1 )); } void Exit( void ) { refresh( ); endwin( ); exit(1); } int main () // (#, FONT, BACKGROUND) { IniVideo( ); Ciclo( ); } void Ciclo(void) { int Tecla = 0, X=0, Y=0; getch(); clear( ); for(;;) { clear(); move(Y, X); printw("O"); Tecla = getch(); switch ( Tecla ) { case KEY_DOWN: Y = (Y > LINES) ? 1 : Y + 1; break; case KEY_UP: Y = (Y < 0) ? LINES : Y - 1; break; case KEY_LEFT: X = (X < 0) ? COLS : X - 1; break; case KEY_RIGHT: X = (X > COLS) ? 1 : X + 1; break; } refresh(); } Exit(); }