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