<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
hola miren tengo un problema con este juego de 4 en linea el problema es que me falta evaluar si gano en direccion diagonal de derecha a izquierda lo intente acer decrementando los rangos de valor como si estuviera evaluadno las diagonasles de izquierda a derecha pero no me da si lo ago de esa manera se cicla espero me puedan ayudar <br>desde ya gracias<br><br><br>#include <stdlib.h><br>#include <stdio.h><br>#include <conio.h><br>int tablero[6][7];<br>int indice[2];<br>int ctr,lineas,a;<br>int f=0,c=0;<br>int h1=0,h2=0,n=0,d1=0;<br>int ctrplayer=1;<br>//<br>//<br>//<br>int main(int argc, char** argv) {<br>textbackground(1);<br>    for (f=0;f<6;f++) {<br>        for (c=0;c<7;c++) {<br>            tablero[f][c]='-';<br>        }<br>    }<br>    for (c=0;c<7;c++) {<br>        tablero[5][c]='_';<br>    }<br>    for (ctr=0;ctr<42;) {<br>clrscr();<br>        printf("\n\n\n\n\n\n");<br>        cprintf("     0  1  2  3  4  5  6");<br>        for (f=0;f<6;f++) {<br>            printf("   \n   ");<br>            textbackground(1);<br>            cprintf("\n%d", f);<br>            textbackground(1);<br>            for (c=0;c<7;c++) {<br>                cprintf(" %c ", tablero[f][c]);<br>                textbackground(1);<br>            }<br>        }<br>        printf("\n\n turno fichas %c. Introduce el indice del tiro (fil):",ctrplayer);<br>        scanf("%d",& indice[0]);<br>        printf("\n\n turno fichas %c. Introduce el indice del tiro (col):",ctrplayer);<br>        scanf("%d",& indice[1]);<br>        f=indice[0];<br>        c=indice[1];<br>        if (ctrplayer==1) {<br>            if (tablero[f][c]=='_') {<br>                tablero[f][c]=1;<br>                ctr++;<br>                ctrplayer++;<br>                tablero [--f][c]='_';<br>                ++f;<br>                n=0;<br>                /*Filtro para las verticales*/<br>                for (n=0;n<5;) {<br>                    if (tablero[n][c]==1) {<br>                        if (tablero[++n][c]==1) {<br>                            if (tablero[++n][c]==1) {<br>                                if (tablero[++n][c]==1) {<br>                                    h1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                else n++;<br>                }<br>                /*filtro para horizontales*/<br>                for (n=0;n<6;) {<br>                    if (tablero[f][n]==1) {<br>                        if (tablero[f][++n]==1) {<br>                            if (tablero[f][++n]==1) {<br>                                if (tablero[f][++n]==1) {<br>                                    h1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br>                /*Filtro para las diagonales / fila5*/<br>                for (n=0;n<4;) {<br>                    if (tablero[5][n]==1) {<br>                        if (tablero[4][++n]==1) {<br>                            if (tablero[3][++n]==1) {<br>                                if (tablero[2][++n]==1) {<br>                                    h1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }/*Filtro para las diagonales / fila 4*/<br>                for (n=0;n<4;) {<br>                    if (tablero[4][n]==1) {<br>                        if (tablero[3][++n]==1) {<br>                            if (tablero[2][++n]==1) {<br>                                if (tablero[1][++n]==1) {<br>                                    h1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }/*Filtro para las diagonales / fila 3*/<br>                for (n=0;n<4;) {<br>                    if (tablero[3][n]==1) {<br>                        if (tablero[2][++n]==1) {<br>                            if (tablero[1][++n]==1) {<br>                                if (tablero[0][++n]==1) {<br>                                    h1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br>                /*Filtro para las diagonales \ fila 3*/<br>                for (n=0;n<4;) {<br>                    if (tablero[5][n--]==1) {<br>                        if (tablero[4][n--]==1) {<br>                            if (tablero[3][n--]==1) {<br>                                if (tablero[2][n--]==1) {<br>                                    d1=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br><br>                if (h1==1 || d1=1) {<br>clrscr();<br>                    for (f=0;f<6;f++) {<br>                        printf("\n \n");<br>                        for (c=0;c<7;c++) {<br>                            cprintf(" %c ", tablero[f][c]);<br>                            textbackground(1);<br>                        }<br>                    }<br>                    printf("\n \n Fichas Negras Ganan");<br>getch();<br>                    return 0;<br>                }<br>            }<br>            else if (tablero [f][c]==1 || tablero [f][c]==2) {<br>                printf(" \n La localidad ya ha sido ocupada \n");<br>getch();<br>            }<br>            else if (tablero [f][c]=='-') {<br>                printf("\n La localidad esta desactivada \n");<br>getch();<br>            }<br>        }<br>        else if (ctrplayer==2)<br>        {<br>            if (tablero[f][c]=='_') {<br>                tablero[f][c]=2;<br>                ctr++;<br>                ctrplayer--;<br>                tablero [--f][c]='_';<br>                ++f;<br>                n=0;<br>                /*Filtro para las verticales*/<br>                for (n=0;n<5;) {<br>                    if (tablero[n][c]==2) {<br>                        if (tablero[++n][c]==2) {<br>                            if (tablero[++n][c]==2) {<br>                                if (tablero[++n][c]==2) {<br>                                    h2=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br>                /*filtro para horizontales*/<br>                for (n=0;n<6;) {<br>                    if (tablero[f][n]==2) {<br>                        if (tablero[f][++n]==2) {<br>                            if (tablero[f][++n]==2) {<br>                                if (tablero[f][++n]==2) {<br>                                    h2=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br>                /*Filtro para las diagonales / fila5*/<br>                for (n=0;n<4;) {<br>                    if (tablero[5][n]==2) {<br>                        if (tablero[4][++n]==2) {<br>                            if (tablero[3][++n]==2) {<br>                                if (tablero[2][++n]==2) {<br>                                    h2=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }/*Filtro para las diagonales / fila 4*/<br>                for (n=0;n<4;) {<br>                    if (tablero[4][n]==2) {<br>                        if (tablero[3][++n]==2) {<br>                            if (tablero[2][++n]==2) {<br>                                if (tablero[1][++n]==2) {<br>                                    h2=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }/*Filtro para las diagonales / fila 3*/<br>                for (n=0;n<4;) {<br>                    if (tablero[3][n]==2) {<br>                        if (tablero[2][++n]==2) {<br>                            if (tablero[1][++n]==2) {<br>                                if (tablero[0][++n]==2) {<br>                                    h2=1;<br>                                }<br>                            }<br>                        }<br>                    }<br>                    else n++;<br>                }<br>                if (h2==1) {<br>clrscr();<br>                    for (f=0;f<6;f++) {<br>                        printf("\n \n");<br>                        for (c=0;c<7;c++) {<br>                            cprintf(" %c ", tablero[f][c]);<br>                            textbackground(1);<br>                        }<br>                    }<br>                    printf("\n \n Fichas Blancas Ganan");<br>                    break;<br><br>                }<br>            }<br>            else if (tablero [f][c]==1 || tablero [f][c]==2) {<br>                printf(" \n La localidad ya ha sido ocupada \n");<br>getch();<br>            }<br>            else if (tablero [f][c]=='-') {<br>                printf("\n La localidad esta desactivada \n");<br>getch();<br>            }<br>        }<br>    }<br>getch();<br>    return 0;<br>}<br><div style="text-align: center;"><font size="6"><span style="color: rgb(0, 128, 0); font-weight: bold; font-family: Arial Black,Geneva,Arial,Sans-serif;"></span></font><span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(255, 255, 0);"></span><span style="color: rgb(255, 255, 0);"></span><span style="color: rgb(255, 0, 0);"></span><span style="color: rgb(255, 0, 0);"><br></span></div><br /><hr />¿Tus fotos son un desorden? La solución a tus males se llama  <a href='http://get.live.com' target='_new'>Galería fotográfica de Windows Live </a></body>
</html>