• Sábado 28 de Septiembre de 2024, 23:53

Autor Tema:  programa en c movimientos de un alfil  (Leído 7230 veces)

templalbo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
programa en c movimientos de un alfil
« en: Viernes 12 de Junio de 2009, 04:42 »
0
Hola a todos!!!

les escribo porque necesito ayuda con un programa en C el cual muestra los posibles movimientos de un alfil en un ajedrez a partir de una posicion, la idea es basicamente que el programa solicite al usuario una posicion en el tablero de ajedrez como un par de numeros (filas y columnas entre 1 y 8) para ubicar el alfil. Con esto ahí que dibujar el tablero, con filas y columnas de 1 a 8 y con la posicion del alfil identificada con la letra 'A', y cada posible posicion marcada con un '*'.

aqui tengo el codigo fuente que hice

#include<stdio.h>

main()
{
int i,j,a,b,m;
char tabla[8][8];
printf("Ingrese la fila:n");
scanf("%d",&a);
printf("Ingrese la columna:n");
scanf("%d",&b);
printf("nn+--+--+--+--+--+--+--+--+n");
for(i=1;i<=8;i++)
{
m=a-i;
for(j=1;j<=8;j++)
{

if (a==i && b==j)
{
tabla[j]='A';
}
else
{
tabla[j]=' ';
}
printf("| %c",tabla[j]);
if (j+m==b || j-m==b)
{
printf("*");
}
else
{
printf(" ");
}
}

printf("|n");
printf("+--+--+--+--+--+--+--+--+n");
}
getc(stdin);
getc(stdin);
}

el programa me funciona pero al momente de mostra los movimientos del alfil se modifica, si alguien puede revisarlo y ver en que me equivoco porfavor ayudeme

de antemano muchas gracias

PD: El programa esta hecho en Dev-C++

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: programa en c movimientos de un alfil
« Respuesta #1 en: Viernes 12 de Junio de 2009, 14:24 »
0
Usa las etiquetas de código.

haidion

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: programa en c movimientos de un alfil
« Respuesta #2 en: Viernes 12 de Junio de 2009, 14:34 »
0
No se si este es tu problema, pero los arrays en c, se inician desde 0 asi que donde tienes
for(i=1;i<=8;i++) deberias poner for(i=0;i<8;i++) y poner i+1 donde sea necesario o en su defecto cuando llames a tabla[j] reemplaz por tabla[i-1][j-1] para que empiece desde 0.

Espero que te ayude.