Control de usuario
Patrocinadores
Estadísticas
Miembros:
334.520
Online:
657
Hilos:
1.380.409
Mensajes:
24.871.328
Stats

Índice de foros Off-Topic Miscelánea

ayuda con ajedrez y movimiento de la reina (c++)

¿Quieres hablar de algo que no tiene lugar en el resto de foros?

Moderadores: Thonolan, Campanilla

SiC002
Avatar de usuario
MegaAdicto!!!
 
Mensajes: 1865
Registrado: 03 Jun 2002
Ubicación: de Bilbao, la hostia

Mensajepor SiC002 04 Ene 2006 14:35

Puede que diga una barbaridad pero estoy sobao y practicamente no he dormido nada...

Imaginemos que tenemos la ficha en 2,2

Pues en una diagonal podrian ser
1,1
3,3
4,4
5,5
6,6
7,7

por lo que sumanos o restamos el mismo número a "i" y a "j"

y para la otra diagonal bastaria con restas a "i" y sumar a "j" el mismo número y restar a "i" y sumar a "j" el mismo numero.

Y para arriba, abajo, izq y dch bastaria con restar o sumar un numero o a "i" o a "j".

¿¿¿no??

¿Se nota que hace un año sólo estudié c++ durante unos pocos meses?
[angelito]

krausen
Avatar de usuario
Chopsuei!
 
Mensajes: 2384
Registrado: 13 Ene 2002
Ubicación: スペイン

Mensajepor krausen 04 Ene 2006 15:07

wow, otro de la univerisidad de alicante [666]

Aunque me he visto por encima tu practica la verdad es que no parece muy complicado, me recuerda bastante a la que tuve que hacer el año pasado por estas fechas (contar en una matriz el numero de diagonales derechas y diagonales izquierda que tenia). Aunque este tuyo me parece un poquitillo mas sencillo.

Por cierto: la reina se puede mover en todas las direcciones un total de n pasos (es decir, puede moverse tantas casillas como le dé la gana) hacia:

  • arriba
  • abajo
  • izquieda
  • derecha
  • diagonal derecha (tanto para arriba para abajo)
  • diagonal izquierda (ídem que el anterior)


Para los curiosos aqui pongo tambien el pdf de mi practica del año pasado
Adjuntos
practica6. fp1 2005.rar
(0 Bytes) 45 veces

Maestro Yoda
Avatar de usuario
Ab absurdum
 
Staff
 
Mensajes: 10568
Registrado: 24 Jun 2004
Fotos: 2

Mensajepor Maestro Yoda 04 Ene 2006 16:09

Lo prometido es deuda, aquí os dejo mi propuesta de solución ;) .

Joer, qué recuerdos he tenido al desempolvar el TurboC XD . Uno ya anda tan acostumbradito al Web Sphere o al JBuilder que se le hace muy pesado tener que echar mano de un programita de los antiguos, sin poder usar el ratón, sin copy & paste... [mad] XD .
Adjuntos
reina.rar
(0 Bytes) 62 veces

Teniente Dan
Avatar de usuario
Enamorado :P
 
Mensajes: 5146
Registrado: 28 Abr 2004
Ubicación: Alicante

Mensajepor Teniente Dan 04 Ene 2006 20:06

gracias a todos por vuestra ayuda [fies]


os pongo como lo estoy haciendo, lo que son las paralelas me salen

pero unica diagonal que consigo poner me sale torcida, no veo el error llevo mucho tiempo delante del pc xD

X es una constante y las coordenadas son x,y fila,columna

Código: Seleccionar todo

for(i=x;i<=X;i++){
                     
         tablero[y][i]='?';
         
         }
         
     for(j=y;j<=Y;j++){
                     
          tablero[j][x]='?';}
         
         
     for(k=1;k<=y;k++){
                     
          tablero[k][x]='?';}   
         
     for(l=1;l<x;l++){
                     
         tablero[y][l]='?';
         
         }



alguien me puede mostrar como hacer una diagonal, aunque no sea con mis datos
Ultima edición por Teniente Dan el 04 Ene 2006 21:30, editado 1 vez
Me gusta mucho tener ideas contradictorias porque asi, aunque siempre estoy equivocado, siempre tengo la razón.

Maestro Yoda
Avatar de usuario
Ab absurdum
 
Staff
 
Mensajes: 10568
Registrado: 24 Jun 2004
Fotos: 2

Mensajepor Maestro Yoda 04 Ene 2006 23:23

Teniente Dan escribió:alguien me puede mostrar como hacer una diagonal, aunque no sea con mis datos


En la solución que he propuesto uso la siguiente idea: una casilla accesible por la reina que esté en diagonal cumple una propiedad: la distancia de esa casilla a cada una de los ejes que atraviesan la casilla donde está la dama es la misma.

Por ejemplo: si la dama está en 3,3 , podría ir a 5,1 , que está a 2 unidades de cada una de las coordenadas de la casilla de la dama.

Eso en mi programa lo modelo con la condición if (abs(casillaInicial[0]-64 - j)==abs(casillaInicial[1]-48 - i)) , que es la que cumplen las casillas visitables por la dama y que estén en diagonal con respecto a ella.

Previo

Volver a Miscelánea

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 1 invitado