/* 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();
}