[ Foro de C ]
void cambiar_color(int i1,int j1,int i2,int j2,int color){ //i1 y j1 es la fila y columna de la ficha que colocamos
if (i1==i2 ){
if (j1<j2){ //comprueba que la columna donde colocamos la ficha es menor que la columna de la ficha del otro extremo
for (j1;j1<j2;j1++){
tablero[i1][j1]=color;
mostrar_tablero();
}
return 0;
}
else {
for (j1;j1>=j2;j1--){
tablero[i1][j2]=color;
mostrar_tablero();
}
return 0;
}
}
if (j1==j2 ){
if (i1<i2){
for (i1;i1<i2;i1++){
tablero[i1][j1]=color;
mostrar_tablero();
}
return 0;
}
else {
for (i1;i1>=i2;i1--){
tablero[i2][j2]=color;
mostrar_tablero();
}
return 0;
}
}
}
no tenemos que tener en cuenta las diagonales para el trabajo, no sabemos como afrontar el problema, suponemos que el if esta mal, si alguien quiere y nos puede ayudar le pasamos el programa entero
hola alumno
he cambiado un poco tu programa para verlo más claro,
creo que ahora hace un poco más lo que tu querías
https://linkode.org/#EYanGu9YFQY9dLaKehCus3
lo que he visto es que como te he puesto los for del
array tablero no tenía función ya que sus indices
siempre eran los mismos
tambien si se cumplia el primer if no pasaba por le segundo
no se si he hecho bien
pero return 0 no estaba bien ya que
no debvuelve nada (void) si acaso añade un return; antes de
la llave final del primer if y así no hará el segundo if
no conozco el juego de reversi y no tengo el programa
completo para ver que tratas de hacer
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)