Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Vicente Castellano Gómez
/
robotAmbientales
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d29bd8bc
authored
Apr 24, 2024
by
almagosi
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Camino Optimo Finalizado
parent
c1aa5849
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
36 deletions
camino.py
camino.py
View file @
d29bd8bc
...
...
@@ -81,38 +81,45 @@ def encontrarCamino(matriz,posicionInicial, posicionFinal):
def
factible
(
direc
,
pos
):
def
movimientoAceptado
(
direccion
:
Direccion
,
bloque
:
int
):
#print(direccion.name, bloque)
if
(
direccion
==
Direccion
.
Arriba
):
#arriba = [2,4,5,8,9,10,11]
arriba
=
[
2
,
3
,
6
,
7
,
8
,
10
,
11
]
if
(
bloque
in
arriba
):
return
True
return
False
if
(
direccion
==
Direccion
.
Abajo
):
#abajo = [2,3,6,7,8,10,11]
abajo
=
[
2
,
4
,
5
,
8
,
9
,
10
,
11
]
if
(
bloque
in
abajo
):
return
True
return
False
#if(bloquePosterio.value == 2 or bloquePosterio.value == 3
# or bloquePosterio.value == 6 or bloquePosterio.value == 7
# or bloquePosterio.value == 10 or bloquePosterio.value == 11):
# return True
#return False
if
(
direccion
==
Direccion
.
Izquierda
):
#izquierda = [1,3,4,7,8,9,11]
izquierda
=
[
1
,
5
,
6
,
7
,
9
,
10
,
11
]
if
(
bloque
in
izquierda
):
return
True
return
False
if
(
direccion
==
Direccion
.
Derecha
):
#derecha = [1,6,7,9,10,11]
derecha
=
[
1
,
3
,
4
,
7
,
8
,
9
,
11
]
if
(
bloque
in
derecha
):
return
True
return
False
def
movimientoAceptado
(
direccion
:
Direccion
,
bloque
:
int
,
bloqueSiguiente
:
int
):
def
moviAcept
(
direccion
:
Direccion
,
bloque
:
int
):
#print(direccion.name, bloque)
if
(
direccion
==
Direccion
.
Arriba
):
#arriba = [2,4,5,8,9,10,11]
arriba
=
[
2
,
3
,
6
,
7
,
8
,
10
,
11
]
if
(
bloque
in
arriba
):
return
True
return
False
if
(
direccion
==
Direccion
.
Abajo
):
#abajo = [2,3,6,7,8,10,11]
abajo
=
[
2
,
4
,
5
,
8
,
9
,
10
,
11
]
if
(
bloque
in
abajo
):
return
True
return
False
#if(bloquePosterio.value == 2 or bloquePosterio.value == 3
# or bloquePosterio.value == 6 or bloquePosterio.value == 7
# or bloquePosterio.value == 10 or bloquePosterio.value == 11):
# return True
#return False
if
(
direccion
==
Direccion
.
Izquierda
):
#izquierda = [1,3,4,7,8,9,11]
izquierda
=
[
1
,
5
,
6
,
7
,
9
,
10
,
11
]
if
(
bloque
in
izquierda
):
return
True
return
False
if
(
direccion
==
Direccion
.
Derecha
):
#derecha = [1,6,7,9,10,11]
derecha
=
[
1
,
3
,
4
,
7
,
8
,
9
,
11
]
if
(
bloque
in
derecha
):
return
True
return
False
direcSiguiente
=
Direccion
((
direccion
.
value
+
2
)
%
4
)
if
(
moviAcept
(
direccion
,
bloque
)
and
moviAcept
(
direcSiguiente
,
bloqueSiguiente
)):
return
True
return
False
#pos = sol[-1]
if
(
pos
==
posicionInicial
):
...
...
@@ -131,7 +138,7 @@ def encontrarCamino(matriz,posicionInicial, posicionFinal):
#print(f"Descartado Edificio {direccion} : {pos}")
return
False
if
(
not
movimientoAceptado
(
direc
,
matriz
[
sol
[
-
1
][
0
]][
sol
[
-
1
][
1
]])):
if
(
not
movimientoAceptado
(
direc
,
matriz
[
sol
[
-
1
][
0
]][
sol
[
-
1
][
1
]]
,
matriz
[
pos
[
0
]][
pos
[
1
]]
)):
#print(f"Descartado Movimiento no aceptado {direccion} : {sol[-1]}")
return
False
...
...
@@ -226,8 +233,9 @@ matriz = [["02","02","00","01","05"],
#pos = mAdy[6][0]
#mAdy[6][0] = 2
sol
=
encontrarCamino
(
matriz
,(
5
,
2
),(
0
,
3
))
sol
=
encontrarCamino
(
matriz
,(
5
,
2
),(
6
,
0
))
#mAdy[6][0] = pos
print
(
sol
)
\ No newline at end of file
for
s
in
sol
:
print
(
s
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment