[ Foro de C ]

Lenguaje C Problema cambiar color reversi

08-Jan-2021 21:43
Invitado (Alumno en apuros)
1 Respuestas

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


10-Jan-2021 16:10
Invitado (pedro)

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