<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>