Domingo 22 de Diciembre de 2024, 16:19
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Recorrer Arreglo
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Recorrer Arreglo (Leído 2318 veces)
Perrero
Miembro MUY activo
Mensajes: 209
Recorrer Arreglo
«
en:
Jueves 11 de Mayo de 2006, 04:00 »
0
Holas, Tengo problemas al tratar de recorrer un arreglo de forma diagonal, horizontal y vertical, es decir, especifico la posicion en la que quiero empezar (debe de ser en donde este a), luego desde esa posicion eliminar todas las x que se encuentran entre las a, por ejemplo:
Inicial:
a x a o o
x x o o o
x o x o o
x o o a o
a o o o o
Para i=1y j=1, se tendria:
a o a o o
o o o o o
o o o o o
o o o a o
a o o o o
O para I=4 y j=4 se tendria
a x a o o
x o o o o
x o o o o
x o o a o
a o o o o
no se como ir tomando las x, solo se como tomar las x que estan a los costados de la a, pero no se como tomar la siguiente, entodo caso ese seria todo el problema que tengo, como tomar la x que sigue en la direccion de la otra a, ya que el resto de la validacion seria sencillo, weno espero me puedan ayudar.
Tweet
Enko
Miembro de PLATA
Mensajes: 1562
Nacionalidad:
Re: Recorrer Arreglo
«
Respuesta #1 en:
Jueves 11 de Mayo de 2006, 15:19 »
0
Código: Text
a x a o o
x x o o o
x o x o o
x o o a o
a o o o o
La cosa es que un for no te va servir;
Horizontalmente
Código: Text
i:=1;
j:=1;
while i<max do
begin
if matriz[i,j] = 'x' then matriz[i,j] := '0';
if matriz[i,j] = 'a' then break; {sale del ciclo}
i := i + 1;
end;
Verticalemnte
Código: Text
i:=1;
j:=1;
while j<max do
begin
if matriz[i,j] = 'x' then matriz[i,j] := '0';
if matriz[i,j] = 'a' then break; {sale del ciclo}
j := j + 1;
end;
Diagonalmente
Código: Text
i:=1;
j:=1;
while j<max do
begin
if matriz[i,j] = 'x' then matriz[i,j] := '0';
if matriz[i,j] = 'a' then break; {sale del ciclo}
j := j + 1;
i := i+1;
end;
Perrero
Miembro MUY activo
Mensajes: 209
Re: Recorrer Arreglo
«
Respuesta #2 en:
Jueves 11 de Mayo de 2006, 17:08 »
0
Estuve checando el codigo y loq ue veo es que solo me deja recorrerlos en una sola direccion, es decir, en vertical de arriba hacia abajo, en horizobtal de izquierda a derecha y en diagocal de una posicion hacia derecha abajo. Entonces tendria q hacer cosigo para cada una de las direcciones que tendria que recorrer y eso seria muy engorroso, lo unico que yo pude hacer es obtener cualquier x que este a su costado de esta manera:
Código: Text
For fil:=-1 to 1 do
For j:=-1 to 1 do
If not ((fil=0) and (col=0)) then {No tiene que ser el centro}
If ((fil+ i) in [1..5]) and ((j+col) in [1..5]) then {Para no salirme del rango
por si estoy en una esquina}
If (Tablero[i+fil,j+col]=x) then {Analizo su vecino}
{Ya no se que iria aqui}
Lo que estoy haciendo con ese codigo (ya sabiendo la posicion escogida i,j)de esa posicion saco un cuadro de 3 por 3 donde (0,0) es el centro del cuadrado, algo asi:
________________________
|_(-1,1 )_|_( 0,1 )_|_( 1,1)_|
|_(-1,0 )_|_( 0,0 )_|_( 1,0)_|
|_(-1,-1)_|_(0,-1)_|_(1,-1)_|
De tal manera que la posicion que elija, siempre va hacer (0,0) y voy cotejando los valores que estan alrededor del (0,0), pero al tomar un valor vecino tendria que analizar su vecino que apunta a la direccion de a (indiferente si esta arriba o abajo), bueno ojala me puedan ayudar con sugerencias, ya que no deseo hacer codigo para cada direccion, sino un codigo para todas las direcciones...
juancpalmajr
Miembro activo
Mensajes: 51
Re: Recorrer Arreglo
«
Respuesta #3 en:
Miércoles 24 de Mayo de 2006, 03:53 »
0
pero que queres hacer un juego monocromatico?
a base de caracteres, en modo texto.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Recorrer Arreglo