// SUMA DE MATRICES (USO DE LA TECLA TAB)
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
struct ELE_MAT
{
int ren, col, Valor;
};
struct ELE_MAT MA[3][3], MB[3][3], MR[3][3];
WINDOW *win; /** manejaremos una Unica ventana de pantalla completa **/
/*********************************************************************/
void IniVideo()
{
win=initscr();
clear();
refresh();
noecho();
cbreak();
keypad(win, TRUE);
}
Exit()
{
refresh();
endwin();
exit(1);
}
MuestraTablero( )
{
int x, y, aba=3, der=3, espx=3, espy=10, sep=0;
for(x=0; x < 3; x++)
for(y=0; y < 3; y++)
{
sep=0; move(aba+x*espx, der+y*espy+sep); printw("_____");
MA[x][y].ren=aba+x*espx;
MA[x][y].col=der+y*espy+sep;
MA[x][y].Valor=0;
sep=35; move(aba+x*espx, der+y*espy+sep); printw("_____");
MB[x][y].ren=aba+x*espx;
MB[x][y].col=der+y*espy+sep;
MB[x][y].Valor=0;
sep=70; move(aba+x*espx, der+y*espy+sep); printw("_____");
MR[x][y].ren=aba+x*espx;
MR[x][y].col=der+y*espy+sep;
MR[x][y].Valor=0;
}
move(aba+espx, der+30); printw("+");
move(aba+espx, der+65); printw("=");
}
main ()
{
int X, Y;
int Tecla = 0; // Para guardar el cOdigo de la tecla pulsada
IniVideo();
clear();
MuestraTablero( );
X=Y=0;
move(MA[0][0].ren, MA[0][0].col);
for(;;)
{
Tecla = getch();
if ( Tecla != 9 && Tecla != 353)
{
MA[X][Y].Valor = Tecla - 48; // MENOS 48 POR LO DEL ASCII
move(MA[X][Y].ren, MA[X][Y].col); printw("_____");
move(MA[X][Y].ren, MA[X][Y].col); printw("%d", MA[X][Y].Valor);
}
if (Tecla == 353){} // SHIFT-TAB
if (Tecla == 9) // TAB
{
Y++;
move(MA[X][Y].ren, MA[X][Y].col); printw("__{}_");
}
refresh();
}
}